Code

Updated table summary
[gosa.git] / gosa-plugins / fai / admin / fai / class_faiProfile.inc
index e6c007efbff6626a5674652118cbfa01f31926d2..db587ac06f055f69019b88dab17e8760664771e2 100644 (file)
@@ -23,6 +23,8 @@ class faiProfile extends plugin
   var $FAIstate      = "";
   var $view_logged      = FALSE;
 
+  var $classSelect;
+
   function faiProfile(&$config, $dn= NULL)
   {
     /* Load Attributes */
@@ -32,7 +34,7 @@ class faiProfile extends plugin
     $this->ui = get_userinfo();
 
     /* Parse ldap attribute to get all assigned classes */
-    $tmp = split(" ",$this->FAIclass);
+    $tmp = explode(" ",$this->FAIclass);
     $tmp2 = array();
     foreach($tmp as $class){
       if(!empty($class)){
@@ -120,7 +122,7 @@ class faiProfile extends plugin
   {
     if($dn == "new" || $dn == ""){
       if($this->dn == "new"){
-        $dn = session::get('CurrentMainBase');
+        $dn= $this->parent->parent->acl_base;
       }else{
         $dn = $this->dn;
       }
@@ -250,39 +252,32 @@ class faiProfile extends plugin
       }
 
       if($s_action == "add" && $this->acl_is_writeable("FAIclass")){
-        $this->dialog = new faiProfileEntry($this->config,$this->dn,$this->FAIclasses,$this->parent->parent->fai_release);
-        $this->is_dialog  =true;
+        $this->classSelect = new classSelect($this->config, get_userinfo());
+        $this->dialog  =true;
       }
 
       /* Save Dialog */
-      if(isset($_POST['SaveSubObject'])){
-        $this->dialog->save_object();
-        $msgs= $this->dialog->check();
-        if(count($msgs)){
-          msg_dialog::display(_("Error"), $msgs, ERROR_DIALOG);
-        }else{
-          $ret = $this->dialog->save();
-          foreach($ret as $class){
-            $this->FAIclasses[$class] =$class; 
-          }
-          $this->is_dialog=false;
-          unset($this->dialog);
-          $this->dialog=FALSE;
-          //ksort($this->FAIclasses);
+      if(isset($_POST['classSelect_save']) && $this->classSelect instanceOf classSelect){
+        $list = $this->classSelect->save();
+        foreach($list as $entry){
+          $class = $entry['cn'][0];
+          $this->FAIclasses[$class] =$class; 
         }
+        $this->dialog=false;
+        $this->classSelect=FALSE;
       }
     }
 
     /* Cancel Dialog */
-    if(isset($_POST['CancelSubObject'])){
-      $this->is_dialog=false;
-      unset($this->dialog);
-      $this->dialog=FALSE;
+    if(isset($_POST['classSelect_cancel']) && $this->classSelect instanceOf classSelect){
+      $this->dialog=false;
+      $this->classSelect=FALSE;
     }
 
-    if(is_object($this->dialog)){
-      $this->dialog->save_object();
-      return($this->dialog->execute());
+    if($this->classSelect instanceOf classSelect){
+      session::set('filterFAIClass_base',$this->parent->parent->fai_release);
+      session::set('filterBlacklist', array('cn' => array_values($this->FAIclasses)));
+      return($this->classSelect->execute());
     }
 
     $divlist  =new divSelectBox("Profile");
@@ -364,7 +359,7 @@ class faiProfile extends plugin
     $ldap = $this->config->get_ldap_link();
     $ldap->cd ($this->dn);
     $release = $this->parent->parent->fai_release;
-    $use_dn = preg_replace("/".normalizePreg(FAI::get_release_dn($this->dn))."/i", $release, $this->dn);
+    $use_dn = preg_replace("/".preg_quote(FAI::get_release_dn($this->dn), '/')."/i", $release, $this->dn);
     new log("remove","fai/".get_class($this),$use_dn,$this->attributes);
     FAI::prepare_to_save_FAI_object($use_dn,array(),true);
     $this->handle_post_events("remove");    
@@ -446,7 +441,7 @@ class faiProfile extends plugin
     plugin::PrepareForCopyPaste($source);
 
     /* Parse ldap attribute to get all assigned classes */
-    $tmp = split(" ",$this->FAIclass);
+    $tmp = explode(" ",$this->FAIclass);
     $tmp2 = array();
     foreach($tmp as $class){
       if(!empty($class)){