- Allow adding a child category to a restricted category

- Show filter for application global categories

r38832: Default owner to same as parent category when adding a child category
r38891: Fix missing parent category when adding a child when parent has acl
r38939: Apply no_acl_check to global categories too
This commit is contained in:
Nathan Gray 2012-04-17 14:46:56 +00:00
parent 9b0b3f29cb
commit 2ed67861bd
5 changed files with 28 additions and 16 deletions

View File

@ -101,7 +101,10 @@ class admin_categories
$content = array('data' => array()); $content = array('data' => array());
if(isset($_GET['parent']) && $_GET['parent'] > 0) if(isset($_GET['parent']) && $_GET['parent'] > 0)
{ {
// Sub-category - set some defaults from parent
$content['parent'] = (int)$_GET['parent']; $content['parent'] = (int)$_GET['parent'];
$parent_cat = categories::read($content['parent']);
$content['owner'] = $parent_cat['owner'];
} }
if (isset($_GET['appname']) && isset($GLOBALS['egw_info']['apps'][$_GET['appname']])) if (isset($_GET['appname']) && isset($GLOBALS['egw_info']['apps'][$_GET['appname']]))
{ {
@ -206,7 +209,7 @@ class admin_categories
{ {
$content['owner'] = $GLOBALS['egw_info']['user']['account_id']; $content['owner'] = $GLOBALS['egw_info']['user']['account_id'];
} }
else elseif (!$content['owner'])
{ {
$content['owner'] = 0; $content['owner'] = 0;
} }
@ -243,6 +246,8 @@ class admin_categories
if($this->appname == 'admin') if($this->appname == 'admin')
{ {
$content['access'] = 'public'; $content['access'] = 'public';
// Allow admins access to all categories as parent
$content['all_cats'] = 'all_no_acl';
$readonlys['owner'] = false; $readonlys['owner'] = false;
} else { } else {
$readonlys['owner'] = true; $readonlys['owner'] = true;
@ -436,8 +441,13 @@ class admin_categories
} }
$content['nm']['appname'] = $appname = $_GET['appname'] ? $_GET['appname'] : $appname; $content['nm']['appname'] = $appname = $_GET['appname'] ? $_GET['appname'] : $appname;
$content['nm']['actions'] = $this->get_actions($appname); $content['nm']['actions'] = $this->get_actions($appname);
// switch filter off for application global cats too, not only for super-global ones // switch filter off for super-global categories
$content['nm']['no_filter'] = $GLOBALS['egw_info']['flags']['currentapp'] == 'admin'; if($appname == 'phpgw')
{
$content['nm']['no_filter'] = true;
// Make sure filter is set properly, could be different if user was looking at something else
$content['nm']['filter'] = categories::GLOBAL_ACCOUNT;
}
$content['nm']['global_cats'] = true; $content['nm']['global_cats'] = true;
if (isset($_GET['global_cats']) && empty($_GET['global_cats'] )) if (isset($_GET['global_cats']) && empty($_GET['global_cats'] ))

View File

@ -2,7 +2,7 @@
/** /**
* EGroupware - eTemplates for Application admin * EGroupware - eTemplates for Application admin
* http://www.egroupware.org * http://www.egroupware.org
* generated by soetemplate::dump4setup() 2012-04-05 14:45 * generated by soetemplate::dump4setup() 2012-04-11 10:31
* *
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package admin * @package admin
@ -37,9 +37,9 @@ $templ_data[] = array('name' => 'admin.categories.delete','template' => '','lang
{ {
}','modified' => '1308076484',); }','modified' => '1308076484',);
$templ_data[] = array('name' => 'admin.categories.edit','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:2:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:12:{i:0;a:14:{s:2:"c2";s:2:"th";s:2:"c3";s:3:"row";s:2:"c4";s:7:"row,top";s:2:"c7";s:3:"row";s:2:"c6";s:3:"row";s:2:"h2";s:2:"25";s:2:"h1";s:6:",!@msg";s:2:"c9";s:3:"row";s:2:"c8";s:3:"row";s:3:"c10";s:3:"row";s:3:"h10";s:11:",!@last_mod";s:2:"h8";s:15:",@appname=phpgw";s:2:"h5";s:12:",@no_private";s:2:"c5";s:3:"nmr";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:9:",,,parent";s:5:"label";s:15:"Parent category";}s:1:"B";a:3:{s:4:"type";s:10:"select-cat";s:4:"size";s:25:"None,,,$cont[appname],,-1";s:4:"name";s:6:"parent";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,name";s:5:"label";s:4:"Name";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:6:"50,150";s:4:"name";s:4:"name";s:6:"needed";s:1:"1";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:14:",,,description";s:5:"label";s:11:"Description";}s:1:"B";a:3:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"5,50";s:4:"name";s:11:"description";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Private";}s:1:"B";a:3:{s:4:"type";s:8:"checkbox";s:4:"name";s:6:"access";s:4:"size";s:14:"private,public";}}i:6;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,cat_data[color]";s:5:"label";s:5:"Color";}s:1:"B";a:2:{s:4:"type";s:11:"colorpicker";s:4:"name";s:11:"data[color]";}}i:7;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,data[icon]";s:5:"label";s:4:"Icon";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:6:"select";s:4:"name";s:10:"data[icon]";s:4:"size";s:4:"None";s:8:"onchange";s:18:"change_icon(this);";}i:2;a:3:{s:4:"type";s:5:"image";s:4:"name";s:8:"icon_url";s:4:"span";s:9:",leftPad5";}}}i:8;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Application";}s:1:"B";a:4:{s:4:"type";s:10:"select-app";s:4:"name";s:7:"appname";s:8:"readonly";s:1:"1";s:4:"size";s:16:"All applications";}}i:9;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,owner";s:5:"label";s:14:"Category owner";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:5:"owner";s:4:"help";s:51:"Limit global category to members of a certain group";s:6:"needed";s:1:"1";s:4:"size";s:1:"3";}}i:10;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Modified";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:8:"last_mod";s:8:"readonly";s:1:"1";}}i:11;a:2:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:7:"onclick";s:40:"return check_owner(form::name(\'owner\'));";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:5:"Apply";s:4:"name";s:13:"button[apply]";s:7:"onclick";s:40:"return check_owner(form::name(\'owner\'));";}}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:10:"buttononly";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";}i:2;a:6:{s:4:"type";s:10:"buttononly";s:5:"label";s:6:"Delete";s:5:"align";s:5:"right";s:4:"name";s:14:"button[delete]";s:4:"help";s:20:"Delete this category";s:7:"onclick";s:157:"set_style_by_class(\'tr\',\'confirmSubs\',\'visibility\',\'$cont[children]\'?\'visible\':\'collapse\'); set_style_by_class(\'fieldset\',\'confirmDelete\',\'display\',\'block\');";}}}}s:4:"rows";i:11;s:4:"cols";i:2;}i:1;a:2:{s:4:"type";s:8:"template";s:4:"name";s:23:"admin.categories.delete";}}','size' => '','style' => '','modified' => '1308076611',); $templ_data[] = array('name' => 'admin.categories.edit','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:2:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:12:{i:0;a:14:{s:2:"c2";s:2:"th";s:2:"c3";s:3:"row";s:2:"c4";s:7:"row,top";s:2:"c7";s:3:"row";s:2:"c6";s:3:"row";s:2:"h2";s:2:"25";s:2:"h1";s:6:",!@msg";s:2:"c9";s:3:"row";s:2:"c8";s:3:"row";s:3:"c10";s:3:"row";s:3:"h10";s:11:",!@last_mod";s:2:"h8";s:15:",@appname=phpgw";s:2:"h5";s:12:",@no_private";s:2:"c5";s:3:"nmr";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:9:",,,parent";s:5:"label";s:15:"Parent category";}s:1:"B";a:3:{s:4:"type";s:10:"select-cat";s:4:"size";s:36:"None,$cont[all_cats],,$cont[appname]";s:4:"name";s:6:"parent";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,name";s:5:"label";s:4:"Name";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:6:"50,150";s:4:"name";s:4:"name";s:6:"needed";s:1:"1";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:14:",,,description";s:5:"label";s:11:"Description";}s:1:"B";a:3:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"5,50";s:4:"name";s:11:"description";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Private";}s:1:"B";a:3:{s:4:"type";s:8:"checkbox";s:4:"name";s:6:"access";s:4:"size";s:14:"private,public";}}i:6;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,cat_data[color]";s:5:"label";s:5:"Color";}s:1:"B";a:2:{s:4:"type";s:11:"colorpicker";s:4:"name";s:11:"data[color]";}}i:7;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,data[icon]";s:5:"label";s:4:"Icon";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:6:"select";s:4:"name";s:10:"data[icon]";s:4:"size";s:4:"None";s:8:"onchange";s:18:"change_icon(this);";}i:2;a:3:{s:4:"type";s:5:"image";s:4:"name";s:8:"icon_url";s:4:"span";s:9:",leftPad5";}}}i:8;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Application";}s:1:"B";a:4:{s:4:"type";s:10:"select-app";s:4:"name";s:7:"appname";s:8:"readonly";s:1:"1";s:4:"size";s:16:"All applications";}}i:9;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,owner";s:5:"label";s:14:"Category owner";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:5:"owner";s:4:"help";s:51:"Limit global category to members of a certain group";s:6:"needed";s:1:"1";s:4:"size";s:1:"3";}}i:10;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Modified";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:8:"last_mod";s:8:"readonly";s:1:"1";}}i:11;a:2:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:7:"onclick";s:40:"return check_owner(form::name(\'owner\'));";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:5:"Apply";s:4:"name";s:13:"button[apply]";s:7:"onclick";s:40:"return check_owner(form::name(\'owner\'));";}}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:10:"buttononly";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";}i:2;a:6:{s:4:"type";s:10:"buttononly";s:5:"label";s:6:"Delete";s:5:"align";s:5:"right";s:4:"name";s:14:"button[delete]";s:4:"help";s:20:"Delete this category";s:7:"onclick";s:157:"set_style_by_class(\'tr\',\'confirmSubs\',\'visibility\',\'$cont[children]\'?\'visible\':\'collapse\'); set_style_by_class(\'fieldset\',\'confirmDelete\',\'display\',\'block\');";}}}}s:4:"rows";i:11;s:4:"cols";i:2;}i:1;a:2:{s:4:"type";s:8:"template";s:4:"name";s:23:"admin.categories.delete";}}','size' => '','style' => '','modified' => '1308076611',);
$templ_data[] = array('name' => 'admin.categories.index','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:3:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:2:{s:2:"h1";s:6:",!@msg";s:1:"B";s:34:",!@nm[selectcols]=/legacy_actions/";}i:1;a:2:{s:1:"A";a:4:{s:5:"align";s:6:"center";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:4:"type";s:5:"label";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:4:{s:4:"name";s:2:"nm";s:4:"size";s:27:"admin.categories.index.rows";s:4:"type";s:9:"nextmatch";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:4:{s:5:"label";s:3:"Add";s:7:"onclick";s:187:"window.open(egw::link(\'/index.php\',\'menuaction=$cont[add_link]&cat_id=&appname=$cont[nm][appname]\'),\'_blank\',\'dependent=yes,width=600,height=380,scrollbars=yes,status=yes\'); return false;";s:4:"name";s:3:"add";s:4:"type";s:10:"buttononly";}s:1:"B";a:6:{s:5:"align";s:5:"right";s:4:"span";s:3:"all";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:5:{s:5:"label";s:13:"Select action";s:7:"onclick";s:192:"if (!egw_globalObjectManager.getObjectById(\'admin.categories.index.rows\').executeActionImplementation(this, \'popup\')) alert(egw::lang(\'You need to select some entries first!\')); return false;;";s:4:"name";s:14:"legacy_actions";s:4:"type";s:10:"buttononly";s:4:"help";s:13:"Select action";}i:2;a:8:{s:5:"label";s:9:"Check all";s:6:"needed";s:1:"1";s:7:"onclick";s:103:"egw_globalObjectManager.getObjectById(\'admin.categories.index.rows\').toggleAllSelected(); return false;";s:4:"name";s:9:"check_all";s:4:"type";s:6:"button";s:4:"size";s:9:"arrow_ltr";s:4:"help";s:9:"Check all";s:4:"span";s:14:",checkAllArrow";}}}}s:4:"cols";i:2;s:4:"rows";i:3;s:4:"size";s:4:"100%";}i:1;a:6:{s:5:"class";s:12:"action_popup";s:4:"name";s:12:"delete_popup";s:4:"type";s:3:"box";s:4:"size";s:1:"1";i:1;a:6:{s:5:"class";s:6:"prompt";s:4:"type";s:4:"vbox";s:4:"size";s:1:"3";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Delete";s:4:"span";s:13:",promptheader";}i:2;a:3:{s:4:"name";s:13:"delete_prompt";s:4:"type";s:5:"label";s:5:"label";s:24:"Delete selected entries?";}i:3;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:5:"label";s:12:"Yes - Delete";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"name";s:6:"delete";s:4:"type";s:6:"button";}i:2;a:4:{s:5:"label";s:34:"Yes - Delete including sub-entries";s:7:"onclick";s:71:"nm_popup_action.id = \'delete_sub\'; nm_submit_popup(this); return false;";s:4:"name";s:10:"delete_sub";s:4:"type";s:6:"button";}i:3;a:3:{s:5:"label";s:11:"No - Cancel";s:7:"onclick";s:35:"nm_hide_popup(this,\'delete_popup\');";s:4:"type";s:10:"buttononly";}}}s:4:"span";s:20:",action_popup prompt";}i:2;a:6:{s:5:"class";s:19:"action_popup prompt";s:4:"name";s:11:"owner_popup";s:4:"type";s:3:"box";s:4:"size";s:1:"1";i:1;a:6:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"4";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:12:"Change owner";s:4:"span";s:13:",promptheader";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Select owner";}i:3;a:5:{s:7:"no_lang";s:1:"1";s:4:"name";s:5:"owner";s:4:"type";s:6:"select";s:4:"size";s:1:"4";s:4:"span";s:21:",action_popup-content";}i:4;a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";i:1;a:4:{s:5:"label";s:3:"Add";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"name";s:17:"owner_action[add]";s:4:"type";s:6:"button";}i:2;a:4:{s:5:"label";s:6:"Delete";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"name";s:20:"owner_action[delete]";s:4:"type";s:6:"button";}i:3;a:4:{s:8:"disabled";s:4:"true";s:5:"label";s:2:"OK";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"type";s:6:"button";}i:4;a:3:{s:5:"label";s:6:"Cancel";s:7:"onclick";s:34:"nm_hide_popup(this,\'owner_popup\');";s:4:"type";s:10:"buttononly";}}}s:4:"span";s:20:",action_popup prompt";}}','size' => '100%','style' => '.level0 { font-weight: bold; } $templ_data[] = array('name' => 'admin.categories.index','template' => '','lang' => '','group' => '0','version' => '1.9.002','data' => 'a:3:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:2:{s:2:"h1";s:6:",!@msg";s:1:"B";s:34:",!@nm[selectcols]=/legacy_actions/";}i:1;a:2:{s:1:"A";a:4:{s:5:"align";s:6:"center";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:4:"type";s:5:"label";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:4:{s:4:"name";s:2:"nm";s:4:"size";s:27:"admin.categories.index.rows";s:4:"type";s:9:"nextmatch";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:4:{s:5:"label";s:3:"Add";s:7:"onclick";s:187:"window.open(egw::link(\'/index.php\',\'menuaction=$cont[add_link]&cat_id=&appname=$cont[nm][appname]\'),\'_blank\',\'dependent=yes,width=600,height=380,scrollbars=yes,status=yes\'); return false;";s:4:"name";s:3:"add";s:4:"type";s:10:"buttononly";}s:1:"B";a:6:{s:5:"align";s:5:"right";s:4:"span";s:3:"all";s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:5:{s:5:"label";s:13:"Select action";s:7:"onclick";s:192:"if (!egw_globalObjectManager.getObjectById(\'admin.categories.index.rows\').executeActionImplementation(this, \'popup\')) alert(egw::lang(\'You need to select some entries first!\')); return false;;";s:4:"name";s:14:"legacy_actions";s:4:"type";s:10:"buttononly";s:4:"help";s:13:"Select action";}i:2;a:8:{s:5:"label";s:9:"Check all";s:6:"needed";s:1:"1";s:7:"onclick";s:103:"egw_globalObjectManager.getObjectById(\'admin.categories.index.rows\').toggleAllSelected(); return false;";s:4:"name";s:9:"check_all";s:4:"type";s:6:"button";s:4:"size";s:9:"arrow_ltr";s:4:"help";s:9:"Check all";s:4:"span";s:14:",checkAllArrow";}}}}s:4:"cols";i:2;s:4:"rows";i:3;s:4:"size";s:4:"100%";}i:1;a:6:{s:5:"class";s:12:"action_popup";s:4:"name";s:12:"delete_popup";s:4:"type";s:3:"box";s:4:"size";s:1:"1";i:1;a:6:{s:5:"class";s:6:"prompt";s:4:"type";s:4:"vbox";s:4:"size";s:1:"3";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Delete";s:4:"span";s:13:",promptheader";}i:2;a:3:{s:4:"name";s:13:"delete_prompt";s:4:"type";s:5:"label";s:5:"label";s:24:"Delete selected entries?";}i:3;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:5:"label";s:12:"Yes - Delete";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"name";s:6:"delete";s:4:"type";s:6:"button";}i:2;a:4:{s:5:"label";s:34:"Yes - Delete including sub-entries";s:7:"onclick";s:71:"nm_popup_action.id = \'delete_sub\'; nm_submit_popup(this); return false;";s:4:"name";s:10:"delete_sub";s:4:"type";s:6:"button";}i:3;a:3:{s:5:"label";s:11:"No - Cancel";s:7:"onclick";s:35:"nm_hide_popup(this,\'delete_popup\');";s:4:"type";s:10:"buttononly";}}}s:4:"span";s:20:",action_popup prompt";}i:2;a:6:{s:5:"class";s:19:"action_popup prompt";s:4:"name";s:11:"owner_popup";s:4:"type";s:3:"box";s:4:"size";s:1:"1";i:1;a:6:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"4";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:12:"Change owner";s:4:"span";s:13:",promptheader";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Select owner";}i:3;a:5:{s:7:"no_lang";s:1:"1";s:4:"name";s:5:"owner";s:4:"type";s:6:"select";s:4:"size";s:1:"4";s:4:"span";s:21:",action_popup-content";}i:4;a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";i:1;a:4:{s:5:"label";s:3:"Add";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"name";s:17:"owner_action[add]";s:4:"type";s:6:"button";}i:2;a:4:{s:5:"label";s:6:"Delete";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"name";s:20:"owner_action[delete]";s:4:"type";s:6:"button";}i:3;a:4:{s:8:"disabled";s:4:"true";s:5:"label";s:2:"OK";s:7:"onclick";s:36:"nm_submit_popup(this); return false;";s:4:"type";s:6:"button";}i:4;a:3:{s:5:"label";s:6:"Cancel";s:7:"onclick";s:34:"nm_hide_popup(this,\'owner_popup\');";s:4:"type";s:10:"buttononly";}}}s:4:"span";s:20:",action_popup prompt";}}','size' => '100%','style' => '.level0 { font-weight: bold; }
.action_popup { .action_popup {
position: fixed; position: fixed;
@ -67,7 +67,7 @@ $templ_data[] = array('name' => 'admin.categories.index','template' => '','lang'
.action_select { .action_select {
width: 100% width: 100%
}','modified' => '1310572522',); }','modified' => '1333382346',);
$templ_data[] = array('name' => 'admin.categories.index.rows','template' => '','lang' => '','group' => '0','version' => '1.9.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:7:{s:2:"c1";s:2:"th";s:2:"c2";s:30:"$row_cont[id] $row_cont[class]";s:1:"I";s:2:"30";s:1:"J";s:2:"1%";s:1:"G";s:2:"80";s:1:"F";s:2:"40";s:1:"E";s:11:",@no_access";}i:1;a:10:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:4:"name";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Description";s:4:"name";s:11:"description";}s:1:"C";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:3:"app";s:5:"label";s:11:"Application";s:4:"size";s:1:",";}s:1:"D";a:4:{s:4:"type";s:23:"nextmatch-accountfilter";s:5:"label";s:5:"Owner";s:4:"name";s:5:"owner";s:4:"size";s:8:"all,both";}s:1:"E";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"size";s:3:"All";s:4:"name";s:6:"access";s:5:"label";s:7:"Private";}s:1:"F";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:4:"Icon";s:4:"name";s:4:"icon";s:5:"align";s:6:"center";}s:1:"G";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:5:"Color";s:4:"name";s:5:"color";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Modified";s:4:"name";s:8:"last_mod";}s:1:"I";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:8:"Children";s:4:"name";s:4:"subs";s:5:"align";s:6:"center";}s:1:"J";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:7:"Actions";s:4:"name";s:14:"legacy_actions";}}i:2;a:10:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:20:"${row}[level_spacer]";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:12:"${row}[name]";s:4:"span";s:17:",$row_cont[class]";}}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[description]";}s:1:"C";a:3:{s:4:"type";s:6:"select";s:4:"name";s:15:"${row}[appname]";s:8:"readonly";s:1:"1";}s:1:"D";a:4:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";s:4:"size";s:16:"All users,groups";}s:1:"E";a:5:{s:4:"type";s:8:"checkbox";s:4:"size";s:14:"private,public";s:5:"align";s:6:"center";s:4:"name";s:14:"${row}[access]";s:8:"readonly";s:1:"1";}s:1:"F";a:4:{s:4:"type";s:5:"image";s:4:"name";s:16:"${row}[icon_url]";s:5:"label";s:23:"{$row_cont[data][icon]}";s:5:"align";s:6:"center";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[data][color]";}s:1:"H";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[last_mod]";s:8:"readonly";s:1:"1";}s:1:"I";a:3:{s:4:"type";s:5:"label";s:4:"name";s:12:"${row}[subs]";s:5:"align";s:6:"center";}s:1:"J";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"3,,0,0";i:1;a:5:{s:4:"type";s:10:"buttononly";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:19:"edit[$row_cont[id]]";s:7:"onclick";s:199:"window.open(egw::link(\'/index.php\',\'menuaction={$cont[edit_link]}&cat_id=$row_cont[id]&appname=$cont[appname]\'),\'_blank\',\'dependent=yes,width=600,height=380,scrollbars=yes,status=yes\'); return false;";}i:2;a:5:{s:4:"type";s:10:"buttononly";s:4:"size";s:3:"new";s:5:"label";s:7:"Add sub";s:4:"name";s:18:"add[$row_cont[id]]";s:7:"onclick";s:197:"window.open(egw::link(\'/index.php\',\'menuaction=$cont[edit_link]&parent=$row_cont[id]&appname=$cont[appname]\'),\'_blank\',\'dependent=yes,width=600,height=380,scrollbars=yes,status=yes\'); return false;";}i:3;a:7:{s:4:"type";s:10:"buttononly";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"name";s:21:"delete[$row_cont[id]]";s:4:"help";s:20:"Delete this category";s:7:"onclick";s:246:"document.getElementById(\'exec[delete][cat_id]\').value=\'$row_cont[id]\'; set_style_by_class(\'tr\',\'confirmSubs\',\'visibility\',\'$row_cont[children]\'?\'visible\':\'collapse\'); set_style_by_class(\'fieldset\',\'confirmDelete\',\'display\',\'block\'); return false;";s:4:"span";s:9:",leftPad5";}}}}s:4:"rows";i:2;s:4:"cols";i:10;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1264657599',); $templ_data[] = array('name' => 'admin.categories.index.rows','template' => '','lang' => '','group' => '0','version' => '1.9.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:7:{s:2:"c1";s:2:"th";s:2:"c2";s:30:"$row_cont[id] $row_cont[class]";s:1:"I";s:2:"30";s:1:"J";s:2:"1%";s:1:"G";s:2:"80";s:1:"F";s:2:"40";s:1:"E";s:11:",@no_access";}i:1;a:10:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:4:"name";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Description";s:4:"name";s:11:"description";}s:1:"C";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:3:"app";s:5:"label";s:11:"Application";s:4:"size";s:1:",";}s:1:"D";a:4:{s:4:"type";s:23:"nextmatch-accountfilter";s:5:"label";s:5:"Owner";s:4:"name";s:5:"owner";s:4:"size";s:8:"all,both";}s:1:"E";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"size";s:3:"All";s:4:"name";s:6:"access";s:5:"label";s:7:"Private";}s:1:"F";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:4:"Icon";s:4:"name";s:4:"icon";s:5:"align";s:6:"center";}s:1:"G";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:5:"Color";s:4:"name";s:5:"color";}s:1:"H";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Modified";s:4:"name";s:8:"last_mod";}s:1:"I";a:4:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:8:"Children";s:4:"name";s:4:"subs";s:5:"align";s:6:"center";}s:1:"J";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:7:"Actions";s:4:"name";s:14:"legacy_actions";}}i:2;a:10:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:4:"html";s:4:"name";s:20:"${row}[level_spacer]";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:12:"${row}[name]";s:4:"span";s:17:",$row_cont[class]";}}s:1:"B";a:2:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[description]";}s:1:"C";a:3:{s:4:"type";s:6:"select";s:4:"name";s:15:"${row}[appname]";s:8:"readonly";s:1:"1";}s:1:"D";a:4:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";s:4:"size";s:16:"All users,groups";}s:1:"E";a:5:{s:4:"type";s:8:"checkbox";s:4:"size";s:14:"private,public";s:5:"align";s:6:"center";s:4:"name";s:14:"${row}[access]";s:8:"readonly";s:1:"1";}s:1:"F";a:4:{s:4:"type";s:5:"image";s:4:"name";s:16:"${row}[icon_url]";s:5:"label";s:23:"{$row_cont[data][icon]}";s:5:"align";s:6:"center";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[data][color]";}s:1:"H";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[last_mod]";s:8:"readonly";s:1:"1";}s:1:"I";a:3:{s:4:"type";s:5:"label";s:4:"name";s:12:"${row}[subs]";s:5:"align";s:6:"center";}s:1:"J";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"3,,0,0";i:1;a:5:{s:4:"type";s:10:"buttononly";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:19:"edit[$row_cont[id]]";s:7:"onclick";s:199:"window.open(egw::link(\'/index.php\',\'menuaction={$cont[edit_link]}&cat_id=$row_cont[id]&appname=$cont[appname]\'),\'_blank\',\'dependent=yes,width=600,height=380,scrollbars=yes,status=yes\'); return false;";}i:2;a:5:{s:4:"type";s:10:"buttononly";s:4:"size";s:3:"new";s:5:"label";s:7:"Add sub";s:4:"name";s:18:"add[$row_cont[id]]";s:7:"onclick";s:197:"window.open(egw::link(\'/index.php\',\'menuaction=$cont[edit_link]&parent=$row_cont[id]&appname=$cont[appname]\'),\'_blank\',\'dependent=yes,width=600,height=380,scrollbars=yes,status=yes\'); return false;";}i:3;a:7:{s:4:"type";s:10:"buttononly";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"name";s:21:"delete[$row_cont[id]]";s:4:"help";s:20:"Delete this category";s:7:"onclick";s:246:"document.getElementById(\'exec[delete][cat_id]\').value=\'$row_cont[id]\'; set_style_by_class(\'tr\',\'confirmSubs\',\'visibility\',\'$row_cont[children]\'?\'visible\':\'collapse\'); set_style_by_class(\'fieldset\',\'confirmDelete\',\'display\',\'block\'); return false;";s:4:"span";s:9:",leftPad5";}}}}s:4:"rows";i:2;s:4:"cols";i:10;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1264657599',);

View File

@ -62,17 +62,17 @@
<description/> <description/>
</row> </row>
<row class="th" height="25"> <row class="th" height="25">
<description value="Parent category" options=",,,parent"/> <description value="Parent category" for="parent"/>
<menulist> <menulist>
<menupopup type="select-cat" id="parent" options="None,,,$cont[appname],,-1"/> <menupopup type="select-cat" id="parent" options="None,$cont[all_cats],,$cont[appname]"/>
</menulist> </menulist>
</row> </row>
<row class="row"> <row class="row">
<description value="Name" options=",,,name"/> <description value="Name" for="name"/>
<textbox id="name" needed="1" size="50" maxlength="150"/> <textbox id="name" needed="1" size="50" maxlength="150"/>
</row> </row>
<row class="row" valign="top"> <row class="row" valign="top">
<description value="Description" options=",,,description"/> <description value="Description" for="description"/>
<textbox multiline="true" id="description" rows="5" cols="50"/> <textbox multiline="true" id="description" rows="5" cols="50"/>
</row> </row>
<row class="nmr" disabled="@no_private"> <row class="nmr" disabled="@no_private">
@ -80,11 +80,11 @@
<checkbox id="access" options="private,public"/> <checkbox id="access" options="private,public"/>
</row> </row>
<row class="row"> <row class="row">
<description value="Color" options=",,,cat_data[color]"/> <description value="Color" for="cat_data[color]"/>
<colorpicker id="data[color]"/> <colorpicker id="data[color]"/>
</row> </row>
<row class="row"> <row class="row">
<description value="Icon" options=",,,data[icon]"/> <description value="Icon" for="data[icon]"/>
<hbox options="0,0"> <hbox options="0,0">
<menulist> <menulist>
<menupopup id="data[icon]" onchange="change_icon(this);" options="None"/> <menupopup id="data[icon]" onchange="change_icon(this);" options="None"/>
@ -99,7 +99,7 @@
</menulist> </menulist>
</row> </row>
<row class="row"> <row class="row">
<description value="Category owner" options=",,,owner"/> <description value="Category owner" for="owner"/>
<listbox statustext="Limit global category to members of a certain group" id="owner" needed="1" rows="3"/> <listbox statustext="Limit global category to members of a certain group" id="owner" needed="1" rows="3"/>
</row> </row>
<row class="row" disabled="!@last_mod"> <row class="row" disabled="!@last_mod">

View File

@ -209,8 +209,10 @@ class select_widget
{ {
$categories = new categories($type5,$type3); $categories = new categories($type5,$type3);
} }
// Allow text for global
$type = ($type && strlen($type) > 1 ? $type : !$type);
// we cast $type4 (parent) to int, to get default of 0 if omitted // we cast $type4 (parent) to int, to get default of 0 if omitted
foreach((array)$categories->return_sorted_array(0,False,'','','',!$type,(int)$type4,true) as $cat) foreach((array)$categories->return_sorted_array(0,False,'','','',$type,(int)$type4,true) as $cat)
{ {
$s = str_repeat('&nbsp;',$cat['level']) . stripslashes($cat['name']); $s = str_repeat('&nbsp;',$cat['level']) . stripslashes($cat['name']);

View File

@ -505,7 +505,7 @@ class categories
} }
// Read access to global categories // Read access to global categories
if ($needed == EGW_ACL_READ && array_intersect(explode(',',$category['owner']),$this->global_owners) && if ($needed == EGW_ACL_READ && (array_intersect(explode(',',$category['owner']),$this->global_owners) || $no_acl_check) &&
($category['appname'] == self::GLOBAL_APPNAME || $category['appname'] == $this->app_name)) ($category['appname'] == self::GLOBAL_APPNAME || $category['appname'] == $this->app_name))
{ {
//echo "<p>".__METHOD__."($needed,$category[name]) access because global via memberships</p>\n"; //echo "<p>".__METHOD__."($needed,$category[name]) access because global via memberships</p>\n";