diff --git a/include/management/class_management.inc b/include/management/class_management.inc index cf027386148d12ce77bce6424235e0d50d8cb85a..505d217a6615470c1567a6b63d3315c24f198fd3 100644 --- a/include/management/class_management.inc +++ b/include/management/class_management.inc @@ -506,7 +506,12 @@ class management implements FusionDirectoryDialog } elseif (is_object($this->dialogObject)) { try { $this->dialogObject->readPost(); - $this->dialogObject->update(); + if (is_object($this->dialogObject)) { + /* Check again as readPost might close it */ + if (!$this->dialogObject->update()) { + $this->closeDialogs(); + } + } } catch (FusionDirectoryException $e) { $error = new FusionDirectoryError(htmlescape($e->getMessage()), 0, $e); $error->display(); diff --git a/include/management/class_templateDialog.inc b/include/management/class_templateDialog.inc index b3b6221a4c38b1fb0cd48bb7d29119d56ddf98c5..44ec9bb85e80fbfff4a459ac899878233551f9dd 100644 --- a/include/management/class_templateDialog.inc +++ b/include/management/class_templateDialog.inc @@ -96,7 +96,7 @@ class templateDialog implements FusionDirectoryDialog public function update(): bool { - return TRUE; + return !$this->closed; } function setNextTarget ($target) @@ -131,6 +131,6 @@ class templateDialog implements FusionDirectoryDialog protected function handleCancel () { $this->management->remove_lock(); - $this->management->closeDialogs(); + $this->closed = TRUE; } }