From 2952eaefcd5773ecada25ca21f5223c029d21979 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Fri, 25 Sep 2015 10:51:16 +0200 Subject: [PATCH] NavigationController: Rerender the layout when unsharing menu entries refs #5600 --- application/controllers/NavigationController.php | 8 +++++++- application/forms/Navigation/NavigationConfigForm.php | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/application/controllers/NavigationController.php b/application/controllers/NavigationController.php index 57c6cea25..96d6cf7f8 100644 --- a/application/controllers/NavigationController.php +++ b/application/controllers/NavigationController.php @@ -293,9 +293,15 @@ class NavigationController extends Controller $form = new Form(array( 'onSuccess' => function ($form) use ($navigationConfigForm) { + $itemName = $form->getValue('name'); + try { - $navigationConfigForm->unshare($form->getValue('name')); + $newConfig = $navigationConfigForm->unshare($itemName); if ($navigationConfigForm->save()) { + if ($newConfig->getSection($itemName)->type === 'menu-item') { + $form->getResponse()->setRerenderLayout(); + } + Notification::success(sprintf( t('Navigation item "%s" has been unshared'), $form->getValue('name') diff --git a/application/forms/Navigation/NavigationConfigForm.php b/application/forms/Navigation/NavigationConfigForm.php index ad58ac4a1..b1b3aa058 100644 --- a/application/forms/Navigation/NavigationConfigForm.php +++ b/application/forms/Navigation/NavigationConfigForm.php @@ -350,7 +350,7 @@ class NavigationConfigForm extends ConfigForm : ((! isset($data['users']) || !$data['users']) && (! isset($data['groups']) || !$data['groups'])) ) { // It is shared but shouldn't anymore - $config = $this->unshare($name, isset($data['parent']) ? $data['parent'] : null)->config; + $config = $this->unshare($name, isset($data['parent']) ? $data['parent'] : null); } } elseif ((isset($data['users']) && $data['users']) || (isset($data['groups']) && $data['groups'])) { if ($this->getUser()->can('application/share/navigation')) { @@ -484,7 +484,7 @@ class NavigationConfigForm extends ConfigForm * @param string $name * @param string $parent * - * @return $this + * @return Config The new config of the given navigation item * * @throws NotFoundError In case no navigation item with the given name is found * @throws IcingaException In case the navigation item has a parent assigned to it @@ -536,7 +536,7 @@ class NavigationConfigForm extends ConfigForm $config->setSection($name, $itemConfig); $this->setIniConfig($config); - return $this; + return $config; } /**