Code

Added setup patches from stable
[gosa.git] / include / class_MultiSelectWindow.inc
index 59aa9eb22419221c4a7cb1e217bd294fdcc42ead..cf90a8d01284605c60424d83be2aa24e1a46d768 100644 (file)
@@ -34,6 +34,7 @@ class MultiSelectWindow{
   var $HideFilterPart     = false;
 
   var $SaveAdditionalVars = array();  // Additional Post vars to store 
+  var $module= "";
 
        function ClearElementsList()
        {
@@ -72,9 +73,10 @@ class MultiSelectWindow{
        }
 
        /* Contrucktion */
-       function MultiSelectWindow($config,$filterName)
+       function MultiSelectWindow($config, $filterName, $module)
        {
                $this->config = $config;
+               $this->module = $module;
                $this->SaveButtonString         = _("Save");
                $this->CloseButtonString        = _("Close");
                $this->filterName                       = $filterName;
@@ -271,9 +273,9 @@ class MultiSelectWindow{
 
                        /* Check if box is checked */
                        if($box['default'] == true){
-                               $boxes .="<input type='checkbox' name='".$box['name']."' value='1' title='".$box['value']."' checked ".$boxClick.">&nbsp;".$box['string']."<br>";
+                               $boxes .="<input type='checkbox' name=\"".$box['name']."\" value='1' title=\"".htmlentities($box['value'])."\" checked ".$boxClick.">&nbsp;".$box['string']."<br>";
                        }else{
-                               $boxes .="<input type='checkbox' name='".$box['name']."' value='1' title='".$box['value']."'".$boxClick.";>&nbsp;".$box['string']."<br>";
+                               $boxes .="<input type='checkbox' name=\"".$box['name']."\" value='1' title=\"".htmlentities($box['value'])."\" ".$boxClick.">&nbsp;".$box['string']."<br>";
                        }
                }
                $smarty->assign("CheckBoxes", $boxes);
@@ -290,8 +292,8 @@ class MultiSelectWindow{
                                </label>
                                </td>
                                <td width=\"99%\">
-                               <input type='text' style='width:99%' name='".$regex['name']."' maxlength='20'
-                               value='".$regex['value']."' title=\"".$regex['string']."\"> 
+                               <input type=\"text\" style='width:99%' name=\"".$regex['name']."\" maxlength='20'
+                               value=\"".htmlentities($regex['value'])."\" title=\"".htmlentities($regex['string'])."\"> 
                                </td>
                                </tr>
                                </table>";
@@ -360,6 +362,11 @@ class MultiSelectWindow{
           Store data also into a session var, to keep the checkboxes check after reload  */
        function save_object()
        {
+    /* Get up to date config */
+    if(isset($this->parent->config)){
+      $this->config = $this->parent->config;
+    }
+
                /* Update current base */
                if($this->DepartmentsAdded){
                        $s_action ="";
@@ -480,26 +487,48 @@ class MultiSelectWindow{
                                }
                        }
                }
-
        }
 
 
-  function GetSnapShotActions($dn)
+  /* Create header snapshot value */
+  function get_snapshot_header()
   {
-    $str = "";
-
+    $str = "&nbsp;";
     if($this->parent->snapshotEnabled()){
+      $ok = false;
+      foreach($this->parent->get_used_snapshot_bases() as $base){
+        $ok |= count($this->parent->getAllDeletedSnapshots($base)) >= 1 ;
+      }
+      if($ok){
+        $str = "<input class='center' type='image' align='middle' src='images/restore.png'
+          title='"._("Restore snapshopts of already deleted objects")."' 
+          alt='"._("Restore")."' name='RestoreDeletedSnapShot'>&nbsp;"; 
+      }else{
+        $str = "<img class='center' src='images/restore_grey.png' alt=''>&nbsp;";
+      }
 
-      $str .="<input class='center' type='image' src='images/snapshot.png'
-        alt='"._("Create snapshot")."' name='CreateSnapShotDialog_".base64_encode($dn)."' title='"._("Create a new snapshot from this object")."'>&nbsp;";
+#      $str .= "<img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;";
+    }
+    return($str);
+  }
+
+
+  function GetSnapShotActions($dn)
+  {
+    $str= "";
+    if($this->parent->snapshotEnabled()){
 
       if(count($this->parent->Available_SnapsShots($dn))){
-        $str .="<input class='center' type='image' src='images/restore.png'
+        $str.= "<input class='center' type='image' src='images/restore.png'
           alt='"._("Restore snapshot")."' name='RestoreSnapShotDialog_".base64_encode($dn)."' title='"._("Restore snapshot")."'>&nbsp;";
-      }else{
-        $str.= "<img src='images/empty.png' style='width:16px;' class='center'>&nbsp;";
+      } else {
+        $str = "<img class='center' src='images/restore_grey.png' alt=''>&nbsp;";
       }
+
+      $str.= "<input class='center' type='image' src='images/snapshot.png'
+        alt='"._("Create snapshot")."' name='CreateSnapShotDialog_".base64_encode($dn)."' title='"._("Create a new snapshot from this object")."'>&nbsp;";
     }
+
     return($str);
   }
 
@@ -525,8 +554,8 @@ class MultiSelectWindow{
                $this->departments = array();
 
                /* Get all departments within this subtree */
-               $deps= get_list("(&(|(ou=*)(description=*))(objectClass=gosaDepartment))", $this->ui->subtreeACL,
-                               $base, array("ou", "description"), GL_SIZELIMIT | GL_CONVERT);
+               $deps= get_list("(&(|(ou=*)(description=*))(objectClass=gosaDepartment))", $this->module, $base,
+                    array("ou", "description"), GL_SIZELIMIT | GL_CONVERT);
 
                /* Edit delete link for system types
                 */
@@ -545,6 +574,7 @@ class MultiSelectWindow{
 
                /* Add deps to this dialog object list */
                foreach($this->departments as $key=> $val){
+
                        /* Add missing entries ... */
                        if(!isset($this->config->departments[trim($key)])){
                                $this->config->departments[trim($key)]="";