Code

Removed old style list
[gosa.git] / gosa-plugins / goto / admin / systems / goto / class_workstationStartup.inc
index 9d2fd89c521283708e559b3dd1faeaa303107751..f902a92e0608c4a8a6f759164175b8cf81f13f1b 100644 (file)
@@ -251,6 +251,16 @@ class workstartup extends plugin
         $this->update_fai_cache();
       }
     }
+
+
+    // Prepare lists
+    $this->ldapList = new sortableListing(array(),array(), TRUE);
+    $this->ldapList->setDeleteable(true);
+    $this->ldapList->setEditable(false);
+    $this->ldapList->setWidth("100%");
+    $this->ldapList->setHeight("100px");
+    $this->ldapList->setHeader(array(_("LDAP server")));
+    $this->ldapList->setDefaultSortColumn(0);
   }
 
   
@@ -453,10 +463,7 @@ class workstartup extends plugin
     $smarty->assign("gotoShareKeys",array_flip($this->printOutAssignedShares()));
     $smarty->assign("gotoBootKernels",$this->gotoBootKernels);
 
-    /* Create divSelectBox for ldap server selection
-     */
-    $SelectBoxLdapServer = new divSelectBox("LdapServer");
-    $SelectBoxLdapServer->SetHeight(100);
+    $this->ldapList->setAcl($this->getacl('gotoLdapServer'));
 
     /* Add new ldap server to the list */
     if($this->acl_is_writeable("gotoLdapServer") && 
@@ -472,67 +479,38 @@ class workstartup extends plugin
     }
     
     /* Move ldap servers up and down */
-    if(!$this->gotoLdap_inherit && $this->acl_is_writeable("gotoLdapServer")){
-      foreach($_POST as $name => $value){
-        if(preg_match("/sort_ldap_up_/",$name)){
-          $id = preg_replace("/^sort_ldap_up_([0-9]*)$/","\\1",$name);
-          $from =  $id;  
-          $to   =  $id -1;
-          $tmp = $this->array_switch_item($this->gotoLdapServers,$from,$to);
-          if($tmp){
-            $this->gotoLdapServers = $tmp;
-          }
-          break;
-        }
-        if(preg_match("/sort_ldap_down_/",$name)){
-          $id = preg_replace("/^sort_ldap_down_([0-9]*)$/","\\1",$name);
-          $from =  $id;  
-          $to   =  $id +1;
-          $tmp = $this->array_switch_item($this->gotoLdapServers,$from,$to);
-          if($tmp){
-            $this->gotoLdapServers = $tmp;
-          }
-          break;
-        }
-        if(preg_match("/gotoLdapRemove_/",$name)){
-          $id = preg_replace("/^gotoLdapRemove_([0-9]*)$/","\\1",$name);
-          $value = $this->gotoLdapServers[$id];
-          $this->gotoLdapServers = array_remove_entries(array($value),$this->gotoLdapServers);
-          break;
-        }
-      } 
+    $this->ldapList->save_object();
+    $action = $this->ldapList->getAction();
+    if($action['action'] == 'reorder'){
+        $this->gotoLdapServers = array_values($this->ldapList->getMaintainedData());
+    }
+    if($action['action'] == 'delete'){
+        $id = $this->ldapList->getKey($action['targets'][0]);
+        $value = $this->gotoLdapServers[$id];
+        $this->gotoLdapServers = array_remove_entries(array($value),$this->gotoLdapServers);
     }
-  
-    /* Add Entries */
-    if($this->acl_is_readable("gotoLdapServer")){
 
-      foreach($this->gotoLdapServers as $key => $server){
+    /* Add Entries */
+    $data = $lData = array();
+    foreach($this->gotoLdapServers as $key => $server){
+        $data[$key]=$server;
 
         /* Announce missing entries */
         if(!in_array($server,$this->gotoLdapServerList)){
-          $server = $server."&nbsp;<font style='color:red'>(missing)</font>";
+            $server = $server."&nbsp;<font style='color:red'>(missing)</font>";
         }
 
         /* Convert old style entry */
         if (!preg_match('%:ldaps?://%', $server)){
-          $server= "ldap://".preg_replace('/^([^:]+):/', '\1/', $server);
-
-        /* Beautify new style entries */
-      } else {
-        $server= preg_replace("/^[^:]+:/", "", $server);
-      }
-
-      $SelectBoxLdapServer->AddEntry(
-          array(
-            array(
-              "string" => $server),
-            array("string" =>
-              image('images/lists/sort-up.png',"sort_ldap_up_".$key,'',"top"). 
-              image('images/lists/sort-down.png',"sort_ldap_down_".$key,'',"bottom"). 
-              image('images/lists/trash.png',"gotoLdapRemove_".$key),
-              "attach" => "style='text-align:right;width:60px;border-right:0px;'")));
-      }    
-    }    
+            $server= "ldap://".preg_replace('/^([^:]+):/', '\1/', $server);
+        } else {
+            $server= preg_replace("/^[^:]+:/", "", $server);
+            $lData[$key] = array('data'=>array($server));
+        }    
+    }
+    $this->ldapList->setListData($data,$lData);
+    $this->ldapList->update();
+    $smarty->assign("usePrototype", "true");
 
     if($this->gotoLdap_inherit){
       $smarty->assign("gotoLdapServerACL_inherit", preg_replace("/w/","",$this->getacl("gotoLdapServer")));;
@@ -556,7 +534,7 @@ class workstartup extends plugin
         $list[$key] = $entry;
       }
     }
-    $smarty->assign("gotoLdapServers",    $SelectBoxLdapServer->DrawList());
+    $smarty->assign("gotoLdapServers",    $this->ldapList->render());
     $smarty->assign("gotoLdapServerList", $list);
     $smarty->assign("gotoLdap_inherit",   $this->gotoLdap_inherit);
     $smarty->assign("JS",  session::get('js'));
@@ -1029,6 +1007,7 @@ class workstartup extends plugin
           "plProvidedAcls"=> array(
             "gotoLdapServer"        => _("Ldap server"),
             "gotoBootKernel"        => _("Boot kernel"),
+            "bootmode"              => _("Boot mode"),
             "gotoKernelParameters"  => _("Kernel parameter"),
 
             "gotoModules"           => _("Kernel modules"),