Code

Added abilitiy to disable filter caching
[gosa.git] / gosa-core / include / class_management.inc
index 3bb4aec7aa0f6d3b92077382adf611b7c03bbb3f..89f56c163272f825930a41461e8eee52dc472ca4 100644 (file)
@@ -121,6 +121,10 @@ class management
     $this->registerAction("cancelSnapshot","closeDialogs");
 
     $this->registerAction("config-filter","editFilter");
+    $this->registerAction("saveFilter","saveFilter");
+
+    // To temporay disable the filter caching UNcomment this line.
+    #session::global_un_set(get_class($this)."_filter");
   }
 
   /*! \brief  Execute this plugin
@@ -374,7 +378,7 @@ class management
     if(isset($_POST['edit_cancel'])) $action['action'] = "cancel";    
     if(isset($_POST['delete_confirmed'])) $action['action'] = "removeConfirmed";   
     if(isset($_POST['delete_cancel'])) $action['action'] = "cancelDelete";   
-    if(isset($_POST['saveFilter'])) $action['action'] = "save";   
+    if(isset($_POST['saveFilter'])) $action['action'] = "saveFilter";   
     if(isset($_POST['cancelFilter'])) $action['action'] = "cancel";   
 
     // Detect Snapshot actions
@@ -687,6 +691,28 @@ class management
   }
 
 
+  /*! \brief  Save filter modifcations.
+   */
+  protected function saveFilter()
+  {
+    if($this->dialogObject instanceOf userFilter){
+      $msgs = $this->dialogObject->check();
+      if(count($msgs)){
+        msg_dialog::displayChecks($msgs); 
+        return("");
+      }else{
+        $this->dialogObject->save();
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dns,"Entry saved!");
+        $this->remove_lock();
+        $this->closeDialogs();
+
+        // Ask filter to reload information
+        $this->filter->reloadFilters();
+      }
+    }
+  }
+
+
   /*! \brief  Save object modifications and closes dialogs (returns to object listing).
    *          - Calls '::check' to validate the given input.
    *          - Calls '::save' to save back object modifications (e.g. to ldap).