Code

Added summary to list filter
[gosa.git] / gosa-plugins / goto / addons / goto / class_goto_import_file.inc
index 45f164fe2369f029f2c452d7ffb6af2da644fca8..7c328d788d6614b450c090fca57451076a5c8bac 100644 (file)
@@ -5,16 +5,17 @@ class goto_import_file extends plugin
 
   var $events     = array();
   var $csv_fields = array();
+  var $import_successful = FALSE; // Indicates that we have successfully imported everything.
 
   public function __construct($config,&$parent)
   {
     plugin::plugin($config,NULL);
     $this->parent = $parent;
-    $this->daemon_events  = DaemonEvent::get_event_types( SYSTEM_EVENT);
+    $this->daemon_events  = DaemonEvent::get_event_types( SYSTEM_EVENT | HIDDEN_EVENT);
 
     $this->csv_fields = array(
-        "0" => "MAC",  "1" => "HEADER", "2" => "OGROUP",
-        "3" => "BASE", "4" => "FQDN",   "5" => "IP",     "6" => "DHCP");
+        "0"=>"TIMESTAMP","1" => "MAC",  "2" => "HEADER", "3" => "OGROUP",
+        "4" => "BASE", "5" => "FQDN",   "6" => "IP",     "7" => "DHCP");
   }
 
 
@@ -23,9 +24,9 @@ class goto_import_file extends plugin
     
     /* Some file checks 
      */
-    $lines = split("\n",$str);
+    $lines = preg_split("/\n/",$str);
     if(empty($str) || !count($lines)){
-      msg_dialog::display(_("Import"),_("Could not import file, it seems to be empty."),ERROR_DIALOG);
+      msg_dialog::display(_("Import"), msgPool::incorrectUpload(_("file is empty")),ERROR_DIALOG);
       return;
     }
 
@@ -42,7 +43,7 @@ class goto_import_file extends plugin
 
       /* Load values from file 
        */
-      $fields = split(";",$line);
+      $fields = explode(";",$line);
       $event = array();
       foreach($this->csv_fields as $key => $val) {
         $event[$val] = "";
@@ -86,7 +87,7 @@ class goto_import_file extends plugin
         }
         if($error){
           msg_dialog::display(_("Import"),
-              _("Entries marked as having errors will be skippen, do you still want to proceed?"),CONFIRM_DIALOG);
+              _("Selected entries will be skipped because of errors. Do you want to proceed?"),CONFIRM_DIALOG);
         }
       }
       if(!$error){
@@ -99,10 +100,26 @@ class goto_import_file extends plugin
             $fail ++;
             continue;
           }
+
+          /* Create event 
+           */
           $class= $this->daemon_events['QUEUED'][$event['HEADER']];
+          $o_data = $this->daemon_events['BY_CLASS'][$class];
           $object = new $class($this->config);
-          $object->set_type(TRIGGERED_EVENT);
           $object->add_targets(array($event['MAC']));
+          if($o_data['s_Schedule_Action'] == $event['HEADER']){
+            $object->set_type(SCHEDULED_EVENT);
+          }else{
+            $object->set_type(TRIGGERED_EVENT);
+          }
+
+          /* Update values like fqdn a.s.o 
+           */
+          foreach($this->csv_fields as $name){
+            if($name == "TIMESTAMP" && empty($event[$name])) continue;
+            $object->set_value($name,$event[$name]);
+          }
+
           if(!$this->parent->o_queue->append($object)){
             msg_dialog::display(_("Service infrastructure"),msgPool::siError($this->parent->o_queue->get_error()),ERROR_DIALOG);
             $fail ++;
@@ -111,7 +128,8 @@ class goto_import_file extends plugin
             $success ++;
           }
         }
-        msg_dialog::display(_("Import"),sprintf(_("Import complete: %s events successfully send, %s failed."),$success,$fail),INFO_DIALOG);
+        msg_dialog::display(_("Import"),sprintf(_("Import complete: %s events successfully send, %s failed"),$success,$fail),INFO_DIALOG);
+        $this->import_successful = count($this->events) == 0;
       }
     }
 
@@ -147,7 +165,7 @@ class goto_import_file extends plugin
     foreach($this->events as $key => $event){
       $this->events[$key]['ERROR'] = "";
       if(empty($event['MAC']) || !tests::is_mac($event['MAC'])){
-        $this->events[$key]['ERROR'] .=  msgPool::invalid(_("Mac")).", ";
+        $this->events[$key]['ERROR'] .=  msgPool::invalid(_("MAC")).", ";
       }
       if(empty($event['HEADER']) || !isset($this->daemon_events['QUEUED'][$event['HEADER']])){
         $this->events[$key]['ERROR'] .=  msgPool::invalid(_("Event")).", ";