X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-plugins%2Fgoto%2Fadmin%2Fsystems%2Fgoto%2Fclass_selectUserToPrinterDialog.inc;h=246f21516c061099a248dd52bfb80962240af2a6;hb=a1b99a991d7fc72451c2fd558a33fead5b97e93d;hp=67bb9a946c13805a4821e54232d4cde6359fda4b;hpb=fbf8e4356f625423e3ccfcb0c6520942726a44e1;p=gosa.git diff --git a/gosa-plugins/goto/admin/systems/goto/class_selectUserToPrinterDialog.inc b/gosa-plugins/goto/admin/systems/goto/class_selectUserToPrinterDialog.inc index 67bb9a946..246f21516 100644 --- a/gosa-plugins/goto/admin/systems/goto/class_selectUserToPrinterDialog.inc +++ b/gosa-plugins/goto/admin/systems/goto/class_selectUserToPrinterDialog.inc @@ -17,8 +17,10 @@ class selectUserToPrinterDialog extends plugin var $baseAddition = ""; var $type = ""; var $search_cat = ""; + + var $dns_used = array(); - function selectUserToPrinterDialog (&$config, $dn= NULL,$type=false ) + function selectUserToPrinterDialog (&$config, $dn= NULL,$type=false,$already_assigned ) { plugin::plugin ($config, $dn); $this->depselect = $this->config->current['BASE']; @@ -55,12 +57,19 @@ class selectUserToPrinterDialog extends plugin } $this->type = $type; + /* Collect already assigned object dns */ + $this->dns_used = array(); + if(isset($already_assigned[$type])){ + foreach($already_assigned[$type] as $entry){ + $this->dns_used[] = $entry['dn']; + } + } } function execute() { - /* Call parent execute */ - plugin::execute(); + /* Call parent execute */ + plugin::execute(); /* Fill templating stuff */ $smarty= get_smarty(); @@ -110,18 +119,17 @@ class selectUserToPrinterDialog extends plugin } - $tmp_printers= $this->getPrinter(); natcasesort($tmp_printers); $smarty->assign("regexPrinter" , $this->regex); $smarty->assign("deplistPrinter" , $deps);;//deplist); $smarty->assign("depselectPrinter" , $this->depselect); - $smarty->assign("gotoPrinters" , $tmp_printers); - $smarty->assign("gotoPrinterKeys" , array_flip($tmp_printers)); + $smarty->assign("gotoPrinters" , array_values($tmp_printers)); + $smarty->assign("gotoPrinterKeys" , array_keys($tmp_printers)); $smarty->assign("apply" , apply_filter()); $smarty->assign("alphabet" , generate_alphabet()); - $smarty->assign("search_image" , get_template_path('images/search.png')); - $smarty->assign("tree_image" , get_template_path('images/tree.png')); + $smarty->assign("search_image" , get_template_path('images/lists/search.png')); + $smarty->assign("tree_image" , get_template_path('images/lists/search-subtree.png')); $smarty->assign("infoimage" , get_template_path('images/info.png')); $smarty->assign("launchimage" , get_template_path('images/lists/action.png')); $smarty->assign("deplist" , $deps); @@ -145,7 +153,7 @@ class selectUserToPrinterDialog extends plugin function save() { $a_return['type']=$this->type; - + foreach($_POST['gotoPrinter'] as $name){ $data = $this->getPrinter(true); $a_return[$name]= $data[$name]; @@ -171,6 +179,12 @@ class selectUserToPrinterDialog extends plugin $res= get_list($filter,$cat,$base,$attrs); } foreach($res as $printer){ + + /* Skip already used entries */ + if(in_array($printer['dn'],$this->dns_used)) { + continue; + } + if(($detailed ==true)){ if(isset($printer[$this->searchAppend])){ $a_return[$printer[$this->searchAppend][0]] = $printer;