Code

closes #421
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Thu, 17 Apr 2008 07:19:54 +0000 (07:19 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Thu, 17 Apr 2008 07:19:54 +0000 (07:19 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@10528 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-plugins/systems/admin/systems/class_servGeneric.inc
gosa-plugins/systems/admin/systems/class_systemManagement.inc

index 57e50c01623d1b6c4b511cafd8c7db0b0bbf0d57..dd5a5e2c2070d7cf4fdc5b47126c171b5ac237ae 100644 (file)
@@ -327,8 +327,13 @@ class servgeneric extends plugin
 
     /* Warn the user, that this host is currently installing */
     if($this->currently_installing && !$this->currently_installing_warned && !preg_match("/".normalizePreg(get_ou("incomingou"))."/",$this->orig_dn)){
+
+      /* Force aborting without message dialog */
+      $message[] = "";
       $this->currently_installing_warned = TRUE;
-      $message[] = _("This host is currently installing, if you really want to save it, save again.");
+      msg_dialog::display(_("Software deployment"), 
+          _("This host is currently installing, if you really want to save it, press 'OK'."),
+          CONFIRM_DIALOG);
     }
 
     return ($message);
index a24cf7bd7469e5463238d09575f52b4cf0a29647..29c87f2c896c00629f4cd444222f70e57ce9c49e 100644 (file)
@@ -37,6 +37,7 @@ class systems extends plugin
 
   /* Arp hanlding activated */
   var $arp_handling_active = FALSE;
+  var $last_action = "";
 
   function systems (&$config, $ui)
   {
@@ -879,18 +880,29 @@ class systems extends plugin
        the user wants to save edited data. Check and save at this
        point. */
 
-#    /* Dirty workaround - MSG_DIALOG - OK
-#      If a message dialog is shown and we press 'OK'
-#       then try to save again.
-#     */
-#    foreach($_POST as $name => $value){
-#      if(preg_match("/^MSG_OK/",$name)){
-#        $_POST['edit_apply'] = TRUE;
-#      }
-#    }
+    /* Dirty workaround - MSG_DIALOG - OK
+      If a message dialog is shown and we press 'OK'
+       then try to save again.
+     */
+    foreach($_POST as $name => $value){
+      if(preg_match("/^MSG_OK/",$name)){
+        $_POST[$this->last_action] = TRUE;
+      }
+    }
 
     if ((isset($_POST['edit_finish']) || isset($_POST['edit_apply'])) && (isset($this->systab->config)) || $save_object_directly){
 
+      /* If the save routine gets interrupted by a confirm dialog, 
+          store last action so we can trigger it again after 'Ok' was pressed.
+         (This is the case if a system gets modified while it is installing - GOsa si)
+       */
+      $this->last_action = ""; 
+      if(isset($_POST['edit_finish'])){
+        $this->last_action = "edit_finish"; 
+      }elseif(isset($_POST['edit_apply'])){
+        $this->last_action = "edit_apply";
+      }
+
       /* Check tabs, will feed message array */
       $message = array();
       if(!$save_object_directly){