X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_tabs.inc;h=f7cb676cff694ed4dcfbb27713ae480d68fed0f6;hb=136a1df9435b91769593bea292984fbe5f16087c;hp=7d985ec7ea4c43c8561b667be35e3b4968d1e00e;hpb=30f9f54c2904c325b77c4a6e4d01355ebee54a00;p=gosa.git diff --git a/gosa-core/include/class_tabs.inc b/gosa-core/include/class_tabs.inc index 7d985ec7e..f7cb676cf 100644 --- a/gosa-core/include/class_tabs.inc +++ b/gosa-core/include/class_tabs.inc @@ -42,6 +42,21 @@ class tabs var $read_only = FALSE; // Used when the entry is opened as "readonly" due to locks. var $hide_refs = FALSE; var $hide_acls = FALSE; + + // Normally 'save_object()' is called automatically when 'execute()' is called, but + // sometimes we do not want this behaviour, e.g. when a tab is opened readonly. + // If we call save_object for a 'read-only' tab, values may get lost. + var $skip_save_object = FALSE; + + + /*! \brief Enables or disables to automatic call to 'save_object' for a plugin, + * when 'execute()' is called. + */ + function enableAutoSaveObject($bool) + { + $this->skip_save_object = ($bool == FALSE); + } + function tabs(&$config, $data, $dn, $acl_category= "", $hide_refs = FALSE, $hide_acls = FALSE) { @@ -135,11 +150,13 @@ class tabs } } - // Save last tab object - if ($this->last == $this->current){ - $this->save_object(TRUE); - } else { - $this->save_object(FALSE); + // Save last tab object + if(!$this->skip_save_object){ + if ($this->last == $this->current){ + $this->save_object(TRUE); + } else { + $this->save_object(FALSE); + } } /* If multiple edit is enabled for this tab,