diff --git a/src/system/Papaya/Administration/Page.php b/src/system/Papaya/Administration/Page.php index 6d1f0e99c..1d6e5bb06 100644 --- a/src/system/Papaya/Administration/Page.php +++ b/src/system/Papaya/Administration/Page.php @@ -17,6 +17,7 @@ use Papaya\Administration\UI as AdministrationUI; use Papaya\Application\BaseObject as ApplicationBaseObject; use Papaya\Request; + use Papaya\Request\Parameters; use Papaya\Template; use Papaya\Template\XSLT as XSLTTemplate; use Papaya\UI\Menu; @@ -160,9 +161,8 @@ public function execute() { } $parts = $this->parts(); $restoreParameters = ('get' === $this->papaya()->request->getMethod()) && !empty($this->_parameterGroup); - $parametersName = [\get_class($this), 'parameters', $this->_parameterGroup]; if ($restoreParameters && $parts->parameters()->isEmpty()) { - $value = $this->papaya()->session->getValue($parametersName); + $value = $this->papaya()->session->getValue($this->getSessionParametersName()); $parts->parameters()->merge(\is_array($value) ? $value : []); $this->papaya()->request->setParameters( Request::SOURCE_QUERY, @@ -180,12 +180,22 @@ public function execute() { } } if ($restoreParameters) { - $this->papaya()->session->setValue($parametersName, $parts->parameters()->toArray()); + $this->storeParameters($parts->parameters()); } $this->parts()->toolbar()->toolbar($this->toolbar()); $this->getTemplate()->addMenu($this->parts()->toolbar()->getXML()); } + private function getSessionParametersName() { + return [\get_class($this), 'parameters', $this->_parameterGroup]; + } + + public function storeParameters(Parameters $parameters = NULL) { + $this->papaya()->session->setValue( + $this->getSessionParametersName(), $parameters->toArray() + ); + } + /** * Getter/Setter for the parts list * diff --git a/src/system/Papaya/Administration/Protocol/Commands/DeleteProtocolEntries.php b/src/system/Papaya/Administration/Protocol/Commands/DeleteProtocolEntries.php index 6d2243d12..9ff25e2f2 100644 --- a/src/system/Papaya/Administration/Protocol/Commands/DeleteProtocolEntries.php +++ b/src/system/Papaya/Administration/Protocol/Commands/DeleteProtocolEntries.php @@ -15,6 +15,7 @@ namespace Papaya\Administration\Protocol\Commands { + use Papaya\Administration\Page as AdministrationPage; use Papaya\Administration\Protocol\ProtocolContent; use Papaya\Administration\Protocol\ProtocolPage; use Papaya\Content\Protocol\ProtocolEntries; @@ -42,8 +43,14 @@ class DeleteProtocolEntries extends DialogCommand { */ private $_protocolEntries; - public function __construct(ProtocolEntry $protocolEntry) { + /** + * @var AdministrationPage + */ + private $_page; + + public function __construct(ProtocolEntry $protocolEntry, AdministrationPage $page) { $this->_protocolEntry = $protocolEntry; + $this->_page = $page; } public function createDialog() { @@ -106,6 +113,8 @@ public function createDialog() { $this->hideAfterSuccess(TRUE); $this->callbacks()->onExecuteSuccessful = function() use ($severity, $groupId, $createdBefore) { if ($this->deleteEntries($severity, $groupId, $createdBefore)) { + $this->parameters()->set('cmd', 'show'); + $this->_page->storeParameters($this->parameters()); $this->papaya()->messages->displayInfo( 'Protocol entries deleted.' ); diff --git a/src/system/Papaya/Administration/Protocol/ProtocolContent.php b/src/system/Papaya/Administration/Protocol/ProtocolContent.php index 3e7118a44..bb1e430e7 100644 --- a/src/system/Papaya/Administration/Protocol/ProtocolContent.php +++ b/src/system/Papaya/Administration/Protocol/ProtocolContent.php @@ -36,7 +36,7 @@ protected function _createCommands($name = ProtocolPage::PARAMETER_NAME_COMMAND, $commands = new CommandsController($name, $default); $commands->owner($this); $commands[self::COMMAND_SHOW] = new Commands\ShowProtocolEntry($this->protocolEntry()); - $commands[self::COMMAND_CLEANUP] = new Commands\DeleteProtocolEntries($this->protocolEntry()); + $commands[self::COMMAND_CLEANUP] = new Commands\DeleteProtocolEntries($this->protocolEntry(), $this->getPage()); return $commands; } diff --git a/src/system/Papaya/Administration/Protocol/ProtocolPage.php b/src/system/Papaya/Administration/Protocol/ProtocolPage.php index 8856cd26d..f6a79ee6c 100644 --- a/src/system/Papaya/Administration/Protocol/ProtocolPage.php +++ b/src/system/Papaya/Administration/Protocol/ProtocolPage.php @@ -29,12 +29,12 @@ class ProtocolPage extends AdministrationPage { protected function createContent() { $this->getTemplate()->parameters()->set(PageParameters::COLUMN_WIDTH_CONTENT, '60%'); - return new ProtocolContent(); + return new ProtocolContent($this); } protected function createNavigation() { $this->getTemplate()->parameters()->set(PageParameters::COLUMN_WIDTH_NAVIGATION, '40%'); - return new ProtocolNavigation(); + return new ProtocolNavigation($this); } } }