Index: trunk/core/admin_templates/groups/groups_list.tpl =================================================================== diff -u -N --- trunk/core/admin_templates/groups/groups_list.tpl (revision 0) +++ trunk/core/admin_templates/groups/groups_list.tpl (revision 4596) @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + +
+ + +
+ + + + \ No newline at end of file Index: trunk/kernel/admin_templates/groups/groups_list.tpl =================================================================== diff -u -N --- trunk/kernel/admin_templates/groups/groups_list.tpl (revision 0) +++ trunk/kernel/admin_templates/groups/groups_list.tpl (revision 4596) @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + +
+ + +
+ + + + \ No newline at end of file Index: trunk/kernel/admin_templates/incs/script.js =================================================================== diff -u -N -r4524 -r4596 --- trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 4524) +++ trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 4596) @@ -277,9 +277,26 @@ // alert(RegExp.$2); openwin($help_link,'HelpPopup',750,400); } + +function openEmailSend($url, $type, $prefix_special) +{ + var $kf = document.getElementById($form_name); + var $prev_action = $kf.action; + var $prev_opener = get_hidden_field('m_opener'); + + $kf.action = $url; + set_hidden_field('m_opener', 'p'); + $kf.target = 'sendmail'; + set_hidden_field('idtype', 'group'); + set_hidden_field('idlist', Grids[$prefix_special].GetSelected().join(',') ); + openwin('','sendmail',750,400); + submit_kernel_form(); + + $kf.action = $prev_action; + set_hidden_field('m_opener', $prev_opener); +} // in-portal compatibility functions: end - function PreSaveAndOpenTranslator(prefix,field,t,multi_line,$width,$height) { if(!isset($window_name)) var $window_name = 'select_'+t.replace(/(\/|-)/g, '_'); Index: trunk/core/units/groups/groups_config.php =================================================================== diff -u -N --- trunk/core/units/groups/groups_config.php (revision 0) +++ trunk/core/units/groups/groups_config.php (revision 4596) @@ -0,0 +1,114 @@ + 'g', + + 'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), + 'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), + 'EventHandlerClass' => Array('class' => 'GroupsEventHandler', 'file' => 'groups_event_handler.php','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class' => 'kDBTagProcessor', 'file' => '','build_event'=>'OnBuild'), + + 'AutoLoad' => true, + + 'QueryString' => Array( + 1 => 'id', + 2 => 'page', + 3 => 'event', + 4 => 'mode', + ), + + 'IDField' => 'GroupId', + + 'StatusField' => Array('Enabled'), + + 'TitleField' => 'Name', + + 'TitlePresets' => Array( + 'default' => Array( 'new_status_labels' => Array('g' => '!la_title_Adding_Group!'), + 'edit_status_labels' => Array('g' => '!la_title_Editing_Group!'), + 'new_titlefield' => Array('g' => '!la_title_New_Group!'), + ), + + 'groups_list' => Array('prefixes' => Array('g_List'), 'format' => "!la_title_Groups! (#g_recordcount#)"), + + 'groups_edit' => Array('prefixes' => Array('g'), 'format' => "#g_status# '#g_titlefield#' - !la_title_General!"), + + 'groups_edit_users' => Array('prefixes' => Array('g', 'g-ug_List'), 'format' => "#g_status# '#g_titlefield#' - !la_title_Users! (#g-ug_recordcount#)" ), + + 'groups_select' => Array('prefixes' => Array('g_List'), 'format' => "!la_title_Groups! (#g_recordcount#) - !la_title_SelectGroup!"), + ), + + + 'Sections' => Array( + 'in-portal:user_groups' => Array( + 'parent' => 'in-portal:users', + 'icon' => 'usergroups', + 'label' => 'la_tab_User_Groups', + 'url' => Array('t' => 'groups/groups_list', 'pass' => 'm'), + 'permissions' => Array('view', 'edit', 'delete', 'advanced:send_email'), + 'priority' => 2, + 'type' => stTREE, + ), + ), + + 'TableName' => TABLE_PREFIX.'PortalGroup', + + 'ListSQLs' => Array('' => ' SELECT %1$s.* %2$s FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'UserGroup ug ON ug.GroupId = %1$s.GroupId'), + + 'ItemSQLs' => Array('' => ' SELECT %1$s.* %2$s FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'UserGroup ug ON ug.GroupId = %1$s.GroupId'), + + 'ListSortings' => Array( + '' => Array( + 'Sorting' => Array('Name' => 'asc'), + ) + ), + + 'SubItems' => Array('g-ug'), + 'CalculatedFields' => Array( + 'total' => Array( + 'UserCount' => 'COUNT(ug.PortalUserId)', + ), + ), + + 'Fields' => Array ( + 'GroupId' => Array(), + 'Name' => Array('type' => 'string', 'not_null' => '1', 'required' => 1, 'default' => ''), + 'Description' => Array('type' => 'string','default' => ''), + 'CreatedOn' => Array('type' => 'double', 'formatter' => 'kDateFormatter', 'not_null' => '1','default' => '#NOW#'), + 'System' => Array('type' => 'int','not_null' => '1','default' => '0'), + 'Personal' => Array('type' => 'int','not_null' => '1','default' => '0'), + 'Enabled' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Enabled', 0 => 'la_Disabled'), 'use_phrases' => 1, 'not_null' => '1','default' => 1), + 'ResourceId' => Array('type' => 'int','not_null' => '1','default' => '0'), + ), + + 'VirtualFields' => Array( + 'UserCount' => Array('type' => 'int', 'default' => 0), + ), + + 'Grids' => Array( + 'Default' => Array( + 'Icons' => Array(1 => 'icon16_group.gif', 0 => 'icon16_group_disabled.gif'), + 'Fields' => Array( + 'Name' => Array('title' => 'la_col_GroupName', 'data_block' => 'grid_checkbox_td'), + 'UserCount' => Array('title' => 'la_col_UserCount'), + ), + ), + + /*'GroupSelector' => Array( + 'Icons' => Array(0 => 'icon16_user_disabled.gif', 1 => 'icon16_user.gif', 2 => 'icon16_user_pending.gif'), + 'Fields' => Array( + 'Login' => Array('title' => 'la_col_Username', 'data_block' => 'grid_radio_td'), + 'LastName' => Array( 'title'=>'la_col_LastName'), + 'FirstName' => Array( 'title'=>'la_col_FirstName'), + 'Email' => Array( 'title'=>'la_col_Email'), + 'PrimaryGroup' => Array( 'title'=>'la_col_PrimaryGroup'), + 'CreatedOn_formatted' => Array('title' => 'la_col_CreatedOn', 'sort_field' => 'CreatedOn'), + ), + ),*/ + ), + + ); + +?> \ No newline at end of file Index: trunk/kernel/units/groups/groups_config.php =================================================================== diff -u -N --- trunk/kernel/units/groups/groups_config.php (revision 0) +++ trunk/kernel/units/groups/groups_config.php (revision 4596) @@ -0,0 +1,114 @@ + 'g', + + 'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), + 'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), + 'EventHandlerClass' => Array('class' => 'GroupsEventHandler', 'file' => 'groups_event_handler.php','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class' => 'kDBTagProcessor', 'file' => '','build_event'=>'OnBuild'), + + 'AutoLoad' => true, + + 'QueryString' => Array( + 1 => 'id', + 2 => 'page', + 3 => 'event', + 4 => 'mode', + ), + + 'IDField' => 'GroupId', + + 'StatusField' => Array('Enabled'), + + 'TitleField' => 'Name', + + 'TitlePresets' => Array( + 'default' => Array( 'new_status_labels' => Array('g' => '!la_title_Adding_Group!'), + 'edit_status_labels' => Array('g' => '!la_title_Editing_Group!'), + 'new_titlefield' => Array('g' => '!la_title_New_Group!'), + ), + + 'groups_list' => Array('prefixes' => Array('g_List'), 'format' => "!la_title_Groups! (#g_recordcount#)"), + + 'groups_edit' => Array('prefixes' => Array('g'), 'format' => "#g_status# '#g_titlefield#' - !la_title_General!"), + + 'groups_edit_users' => Array('prefixes' => Array('g', 'g-ug_List'), 'format' => "#g_status# '#g_titlefield#' - !la_title_Users! (#g-ug_recordcount#)" ), + + 'groups_select' => Array('prefixes' => Array('g_List'), 'format' => "!la_title_Groups! (#g_recordcount#) - !la_title_SelectGroup!"), + ), + + + 'Sections' => Array( + 'in-portal:user_groups' => Array( + 'parent' => 'in-portal:users', + 'icon' => 'usergroups', + 'label' => 'la_tab_User_Groups', + 'url' => Array('t' => 'groups/groups_list', 'pass' => 'm'), + 'permissions' => Array('view', 'edit', 'delete', 'advanced:send_email'), + 'priority' => 2, + 'type' => stTREE, + ), + ), + + 'TableName' => TABLE_PREFIX.'PortalGroup', + + 'ListSQLs' => Array('' => ' SELECT %1$s.* %2$s FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'UserGroup ug ON ug.GroupId = %1$s.GroupId'), + + 'ItemSQLs' => Array('' => ' SELECT %1$s.* %2$s FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'UserGroup ug ON ug.GroupId = %1$s.GroupId'), + + 'ListSortings' => Array( + '' => Array( + 'Sorting' => Array('Name' => 'asc'), + ) + ), + + 'SubItems' => Array('g-ug'), + 'CalculatedFields' => Array( + 'total' => Array( + 'UserCount' => 'COUNT(ug.PortalUserId)', + ), + ), + + 'Fields' => Array ( + 'GroupId' => Array(), + 'Name' => Array('type' => 'string', 'not_null' => '1', 'required' => 1, 'default' => ''), + 'Description' => Array('type' => 'string','default' => ''), + 'CreatedOn' => Array('type' => 'double', 'formatter' => 'kDateFormatter', 'not_null' => '1','default' => '#NOW#'), + 'System' => Array('type' => 'int','not_null' => '1','default' => '0'), + 'Personal' => Array('type' => 'int','not_null' => '1','default' => '0'), + 'Enabled' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Enabled', 0 => 'la_Disabled'), 'use_phrases' => 1, 'not_null' => '1','default' => 1), + 'ResourceId' => Array('type' => 'int','not_null' => '1','default' => '0'), + ), + + 'VirtualFields' => Array( + 'UserCount' => Array('type' => 'int', 'default' => 0), + ), + + 'Grids' => Array( + 'Default' => Array( + 'Icons' => Array(1 => 'icon16_group.gif', 0 => 'icon16_group_disabled.gif'), + 'Fields' => Array( + 'Name' => Array('title' => 'la_col_GroupName', 'data_block' => 'grid_checkbox_td'), + 'UserCount' => Array('title' => 'la_col_UserCount'), + ), + ), + + /*'GroupSelector' => Array( + 'Icons' => Array(0 => 'icon16_user_disabled.gif', 1 => 'icon16_user.gif', 2 => 'icon16_user_pending.gif'), + 'Fields' => Array( + 'Login' => Array('title' => 'la_col_Username', 'data_block' => 'grid_radio_td'), + 'LastName' => Array( 'title'=>'la_col_LastName'), + 'FirstName' => Array( 'title'=>'la_col_FirstName'), + 'Email' => Array( 'title'=>'la_col_Email'), + 'PrimaryGroup' => Array( 'title'=>'la_col_PrimaryGroup'), + 'CreatedOn_formatted' => Array('title' => 'la_col_CreatedOn', 'sort_field' => 'CreatedOn'), + ), + ),*/ + ), + + ); + +?> \ No newline at end of file Index: trunk/kernel/admin_templates/incs/grid.js =================================================================== diff -u -N -r1566 -r4596 --- trunk/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 1566) +++ trunk/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 4596) @@ -203,6 +203,17 @@ this.CheckDependencies(); } +Grid.prototype.GetSelected = function() { + var $ret = new Array(); + for (var i in this.Items) { + if (this.Items[i].selected) { + $ret[$ret.length] = this.Items[i].ItemId; + } + + } + return $ret; +} + Grid.prototype.InvertSelection = function() { for (var i in this.Items) { Index: trunk/kernel/admin_templates/img/itemicons/icon16_group_disabled.gif =================================================================== diff -u -N Binary files differ Index: trunk/core/admin_templates/groups/groups_edit.tpl =================================================================== diff -u -N --- trunk/core/admin_templates/groups/groups_edit.tpl (revision 0) +++ trunk/core/admin_templates/groups/groups_edit.tpl (revision 4596) @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ + + \ No newline at end of file Index: trunk/kernel/admin_templates/groups/groups_edit.tpl =================================================================== diff -u -N --- trunk/kernel/admin_templates/groups/groups_edit.tpl (revision 0) +++ trunk/kernel/admin_templates/groups/groups_edit.tpl (revision 4596) @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ + + \ No newline at end of file Index: trunk/kernel/admin_templates/groups/groups_edit_tabs.tpl =================================================================== diff -u -N --- trunk/kernel/admin_templates/groups/groups_edit_tabs.tpl (revision 0) +++ trunk/kernel/admin_templates/groups/groups_edit_tabs.tpl (revision 4596) @@ -0,0 +1,13 @@ + + + + +
+ + + + + + +
+
\ No newline at end of file Index: trunk/kernel/units/groups/groups_event_handler.php =================================================================== diff -u -N --- trunk/kernel/units/groups/groups_event_handler.php (revision 0) +++ trunk/kernel/units/groups/groups_event_handler.php (revision 4596) @@ -0,0 +1,19 @@ +Special == 'total') { + $object =& $event->getObject(); + $object->AddGroupByField('%1$s.GroupId'); + } + } + } + +?> \ No newline at end of file Index: trunk/core/admin_templates/groups/groups_edit_tabs.tpl =================================================================== diff -u -N --- trunk/core/admin_templates/groups/groups_edit_tabs.tpl (revision 0) +++ trunk/core/admin_templates/groups/groups_edit_tabs.tpl (revision 4596) @@ -0,0 +1,13 @@ + + + + +
+ + + + + + +
+
\ No newline at end of file Index: trunk/core/units/groups/groups_event_handler.php =================================================================== diff -u -N --- trunk/core/units/groups/groups_event_handler.php (revision 0) +++ trunk/core/units/groups/groups_event_handler.php (revision 4596) @@ -0,0 +1,19 @@ +Special == 'total') { + $object =& $event->getObject(); + $object->AddGroupByField('%1$s.GroupId'); + } + } + } + +?> \ No newline at end of file Index: trunk/core/units/users/users_config.php =================================================================== diff -u -N -r4524 -r4596 --- trunk/core/units/users/users_config.php (.../users_config.php) (revision 4524) +++ trunk/core/units/users/users_config.php (.../users_config.php) (revision 4596) @@ -102,16 +102,6 @@ 'type' => stTREE, ), - 'in-portal:user_groups' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'usergroups', - 'label' => 'la_tab_User_Groups', - 'url' => Array('index_file' => 'users/user_groups.php', 'pass' => 'm', 'resetpage' => 1), - 'permissions' => Array('view', 'edit', 'delete', 'advanced:send_email'), - 'priority' => 2, - 'type' => stTREE, - ), - 'in-portal:configure_users' => Array( 'parent' => 'in-portal:users', 'icon' => 'users_settings', @@ -173,7 +163,7 @@ ) ), - 'SubItems' => Array('addr', 'u-cdata'), + 'SubItems' => Array('addr', 'u-cdata', 'u-ug'), 'FilterMenu' => Array( 'Groups' => Array( Index: trunk/globals.php =================================================================== diff -u -N -r4446 -r4596 --- trunk/globals.php (.../globals.php) (revision 4446) +++ trunk/globals.php (.../globals.php) (revision 4596) @@ -1695,6 +1695,12 @@ $main =& $GLOBALS[$prefix.'_var_list']; $update =& $GLOBALS[$prefix.'_var_list_update']; + // if part of env found in POST, then use it first + $submit_value = GetVar($prefix.'_'.$name); + if ($submit_value !== false) { + return $submit_value; + } + return isset($update[$name]) ? $update[$name] : ( isset($main[$name]) ? $main[$name] : ''); } Index: trunk/core/admin_templates/groups/groups_edit_users.tpl =================================================================== diff -u -N --- trunk/core/admin_templates/groups/groups_edit_users.tpl (revision 0) +++ trunk/core/admin_templates/groups/groups_edit_users.tpl (revision 4596) @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + +
+ + +
+ + + + \ No newline at end of file Index: trunk/kernel/units/users/users_config.php =================================================================== diff -u -N -r4524 -r4596 --- trunk/kernel/units/users/users_config.php (.../users_config.php) (revision 4524) +++ trunk/kernel/units/users/users_config.php (.../users_config.php) (revision 4596) @@ -102,16 +102,6 @@ 'type' => stTREE, ), - 'in-portal:user_groups' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'usergroups', - 'label' => 'la_tab_User_Groups', - 'url' => Array('index_file' => 'users/user_groups.php', 'pass' => 'm', 'resetpage' => 1), - 'permissions' => Array('view', 'edit', 'delete', 'advanced:send_email'), - 'priority' => 2, - 'type' => stTREE, - ), - 'in-portal:configure_users' => Array( 'parent' => 'in-portal:users', 'icon' => 'users_settings', @@ -173,7 +163,7 @@ ) ), - 'SubItems' => Array('addr', 'u-cdata'), + 'SubItems' => Array('addr', 'u-cdata', 'u-ug'), 'FilterMenu' => Array( 'Groups' => Array( Index: trunk/kernel/admin/include/navmenu.php =================================================================== diff -u -N -r4457 -r4596 --- trunk/kernel/admin/include/navmenu.php (.../navmenu.php) (revision 4457) +++ trunk/kernel/admin/include/navmenu.php (.../navmenu.php) (revision 4596) @@ -330,7 +330,7 @@ NULL, "in-portal:user_groups", "in-portal:editgroup_general","in-portal:editgroup_permissions",-1); $objSections->AddSection("in-portal:editgroup_permissions", "la_tab_Permissions", NULL,$admin."/users/", - "javascript:edit_submit('editgroup','GroupEditStatus','".$admin."/users/addgroup_permissions.php',0)", + "javascript:edit_submit('editgroup','GroupEditStatus','".$admin."/index4_direct.php', 0, '&t=groups/groups_edit_permissions&prefix=g')", $admin."/icons/icon46_community.gif", $admin."/icons/icon24_usergroups.gif", NULL, "in-portal:user_groups", "in-portal:editgroup_users",NULL,-1); Index: trunk/kernel/admin_templates/groups/groups_edit_users.tpl =================================================================== diff -u -N --- trunk/kernel/admin_templates/groups/groups_edit_users.tpl (revision 0) +++ trunk/kernel/admin_templates/groups/groups_edit_users.tpl (revision 4596) @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + +
+ + +
+ + + + \ No newline at end of file Index: trunk/kernel/admin_templates/img/itemicons/icon16_group.gif =================================================================== diff -u -N Binary files differ