Code

Updated terminal template
[gosa.git] / gosa-plugins / goto / admin / systems / goto / class_selectUserToPrinterDialog.inc
index cdc91d295a127de620ee7c7d9bc336fa74dbd68b..246f21516c061099a248dd52bfb80962240af2a6 100644 (file)
@@ -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,20 +119,19 @@ 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/small_filter.png'));
+    $smarty->assign("launchimage"         , get_template_path('images/lists/action.png'));
     $smarty->assign("deplist"             , $deps);
     $smarty->assign("subtree", $this->subtree?"checked":"");
 
@@ -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;