Code

Updated terminal template
[gosa.git] / gosa-plugins / goto / admin / systems / goto / class_selectUserToPrinterDialog.inc
index 1f110e3557a0a91b6c03d623f988722e94bd9675..246f21516c061099a248dd52bfb80962240af2a6 100644 (file)
@@ -2,11 +2,6 @@
 
 class selectUserToPrinterDialog extends plugin
 {
-  /* CLI vars */
-  var $cli_summary          = "Manage server basic objects";
-  var $cli_description      = "Some longer text\nfor help";
-  var $cli_parameters       = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
   /* attribute list for save action */
   var $ignore_account       = TRUE;
   var $attributes           = array();
@@ -22,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'];
@@ -60,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();
@@ -115,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":"");
 
@@ -150,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];
@@ -176,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;