diff --git a/gosa-plugins/goto/addons/goto/class_goto_import_file.inc b/gosa-plugins/goto/addons/goto/class_goto_import_file.inc
index 45f164fe2369f029f2c452d7ffb6af2da644fca8..5b966dad80762332ed4cfa2bf1634aae0d38bc80 100644 (file)
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");
}
/* 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;
}
/* Load values from file
*/
- $fields = split(";",$line);
+ $fields = explode(";",$line);
$event = array();
foreach($this->csv_fields as $key => $val) {
$event[$val] = "";
public function execute()
{
+ plugin::execute();
+
/* Import file
*/
if(isset($_POST['import']) && isset($_FILES['file'])) {
}
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){
$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 ++;
$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;
}
}
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")).", ";