Code

fixed property
[gosa.git] / gosa-core / include / class_SnapShotDialog.inc
index 88fb6844fbd5e3e0cac6d5f0a95ef384636bdecf..315d1525de8e90c3bb4b8e627b4a7a33c7471c5e 100644 (file)
@@ -45,6 +45,17 @@ class SnapShotDialog extends plugin
         plugin::plugin($config,$dn);
         $this->parent  = &$parent;
         $this->ui                = get_userinfo();
+
+        // Prepare lists
+        $this->snapList = new sortableListing();
+        $this->snapList->setDeleteable(false);
+        $this->snapList->setEditable(false);
+        $this->snapList->setWidth("100%");
+        $this->snapList->setHeight("200px");
+        $this->snapList->setHeader(array(_("Date"), _("Name") ));
+        $this->snapList->setColspecs(array('140px','*','60px'));
+        $this->snapList->setDefaultSortColumn(0);
+
     }
 
 
@@ -67,7 +78,7 @@ class SnapShotDialog extends plugin
             if((preg_match("/^RemoveSnapShot_/",$name)) && ($once)){
                 $once = false;
                 $entry = preg_replace("/^RemoveSnapShot_/","",$name);
-                $entry = base64_decode(preg_replace("/_[xy]$/","",$entry));
+                $entry = base64_decode($entry);
                 $found = false;
                 foreach($this->last_list as $t_stamp => $obj){
                     if($obj['dn'] == $entry){
@@ -79,18 +90,12 @@ class SnapShotDialog extends plugin
                 if($found){
                     $this->del_dn      = $entry;
                     $smarty= get_smarty();
-                    $smarty->assign("intro", sprintf(_("You're about to delete the snapshot '%s'."), LDAP::fix($this->del_dn)));
-                    return($smarty->fetch (get_template_path('remove.tpl')));
+                    $smarty->assign("info", sprintf(_("You are about to delete the snapshot %s."), bold(LDAP::fix($this->del_dn))));
+                    return($smarty->fetch (get_template_path('removeSnapshots.tpl')));
                 }
             }
         }
 
-        /* Remove snapshot */
-        if(isset($_POST['delete_confirm']) && !empty($this->del_dn)){
-            $this->remove_snapshot($this->del_dn);
-            $this->del_dn = "";
-        }
-
         /* We must restore a snapshot */
 
         if($this->display_restore_dialog){
@@ -99,20 +104,21 @@ class SnapShotDialog extends plugin
                or the snapshots for the given object dn */
             $res = array();
             $tmp = array();
+            $handler = new SnapshotHandler($this->config);
+
             if($this->display_all_removed_objects){
                 if(count($this->snap_shot_bases)){
                     foreach($this->snap_shot_bases as $dn){
-                        $tmp = array_merge($tmp,$this->getAllDeletedSnapshots($dn,true));
+                        $tmp = array_merge($tmp,$handler->getAllDeletedSnapshots($dn,true));
                     }
                 }else{
-                    $tmp = $this->getAllDeletedSnapshots($this->snap_shot_bases,true);
+                    $tmp = $handler->getAllDeletedSnapshots($this->snap_shot_bases,true);
                 }
             }else{
-                $tmp = $this->Available_SnapsShots($this->dn,true);
+                $tmp = $handler->Available_SnapsShots($this->dn,true);
             }
 
-            $DivListSnapShots = new divSelectBox("SnapShotRestore");
-            $DivListSnapShots->SetHeight(180);
+            $this->snapList->setAcl('rwcdm');
 
             $list_of_elements = array();                       
 
@@ -127,30 +133,26 @@ class SnapShotDialog extends plugin
             /* Sort generated list */
             krsort($list_of_elements);
 
-            /* Add Elements to divlist */      
+            /* Add Elements to list */ 
             $this->last_list = $list_of_elements;
-            foreach($list_of_elements as $entry){
-
-                $actions= "<input type='image' src='images/lists/restore.png' name='RestoreSnapShot_%KEY' 
-                    class='center' title='"._("Restore snapshot")."'>&nbsp;";
-                $actions.= "<input type='image' src='images/lists/trash.png' name='RemoveSnapShot_%KEY' 
-                    class='center' title='"._("Remove snapshot")."'>&nbsp;";
 
+            $data = $lData = array();
+            foreach($list_of_elements as $entry){
+                $actions=  image('images/lists/restore.png','RestoreSnapShot_%KEY',_("Restore snapshot"));
+                $actions.= image('images/lists/trash.png','RemoveSnapShot_%KEY',_("Delete snapshot"));
                 $time_stamp    = date(_("Y-m-d, H:i:s"),preg_replace("/\-.*$/","",$entry['gosaSnapshotTimestamp'][0]));
                 $display_data  = $entry['description'][0];
-
-                if($this->display_all_removed_objects){
-                    $display_data.= " - ".$entry['gosaSnapshotDN'][0];
-                }
-
-                $field0 = array("string"=> $time_stamp , "attach"=> "style='vertical-align:top;width:120px;'");
-                $field1 = array("string"=> htmlentities (utf8_decode(LDAP::fix($display_data))), "attach"=> "");
-                $field2 = array("string"=> str_replace("%KEY",base64_encode($entry['dn']),$actions) , 
-                        "attach"=> "style='border-right:0px;vertical-align:top;width:40px;text-align:right;'");
-                $DivListSnapShots->AddEntry(array($field0,$field1,$field2));
+                $data[$entry['dn']] = $entry;
+                $lData[$entry['dn']] = array('data'=>
+                        array(
+                            $time_stamp,
+                            htmlentities(utf8_decode(LDAP::fix($display_data))),
+                            str_replace("%KEY",base64_encode($entry['dn']), $actions)));
             }          
 
-            $smarty->assign("SnapShotDivlist",$DivListSnapShots->DrawList());  
+            $this->snapList->setListData($data, $lData);
+            $this->snapList->update();
+            $smarty->assign("SnapShotList",$this->snapList->render());
             $smarty->assign("CountSnapShots",count($list_of_elements));
         }
 
@@ -177,7 +179,7 @@ class SnapShotDialog extends plugin
 
     function save_object()
     {  
-        plugin::save_object();
+//        plugin::save_object();
         foreach($this->attributes as $name){
             if(isset($_POST[$name])){
                 $this->$name = stripslashes($_POST[$name]);