diff --git a/gosa-plugins/goto/admin/systems/goto/class_selectUserToPrinterDialog.inc b/gosa-plugins/goto/admin/systems/goto/class_selectUserToPrinterDialog.inc
index 67bb9a946c13805a4821e54232d4cde6359fda4b..246f21516c061099a248dd52bfb80962240af2a6 100644 (file)
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'];
}
$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();
}
-
$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);
function save()
{
$a_return['type']=$this->type;
-
+
foreach($_POST['gotoPrinter'] as $name){
$data = $this->getPrinter(true);
$a_return[$name]= $data[$name];
$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;