From 68cf42490f10202f65888a87187513cae3b8e49d Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Tue, 14 Dec 2021 08:36:08 +0100 Subject: [PATCH] Importsource: some more branch-related hints --- .../controllers/ImportsourceController.php | 39 ++++++++++++++----- .../Web/Table/PropertymodifierTable.php | 31 ++++++++++++--- 2 files changed, 55 insertions(+), 15 deletions(-) diff --git a/application/controllers/ImportsourceController.php b/application/controllers/ImportsourceController.php index 76b6791d..1d70eb8e 100644 --- a/application/controllers/ImportsourceController.php +++ b/application/controllers/ImportsourceController.php @@ -104,12 +104,16 @@ class ImportsourceController extends ActionController public function addAction() { - $this->addTitle($this->translate('Add import source')) - ->content()->add( - ImportSourceForm::load()->setDb($this->db()) - ->setSuccessUrl('director/importsources') - ->handleRequest() - ); + $this->addTitle($this->translate('Add import source')); + if ($this->showNotInBranch($this->translate('Creating Import Sources'))) { + return; + } + + $this->content()->add( + ImportSourceForm::load()->setDb($this->db()) + ->setSuccessUrl('director/importsources') + ->handleRequest() + ); } /** @@ -119,6 +123,9 @@ class ImportsourceController extends ActionController { $this->addMainActions(); $this->activateTabWithPostfix($this->translate('Modify')); + if ($this->showNotInBranch($this->translate('Modifying Import Sources'))) { + return; + } $form = ImportSourceForm::load() ->setObject($this->getImportSource()) ->setListUrl('director/importsources') @@ -138,6 +145,9 @@ class ImportsourceController extends ActionController { $this->addMainActions(); $this->activateTabWithPostfix($this->translate('Clone')); + if ($this->showNotInBranch($this->translate('Cloning Import Sources'))) { + return; + } $source = $this->getImportSource(); $this->addTitle('Clone: %s', $source->get('source_name')); $form = new CloneImportSourceForm($source); @@ -220,9 +230,13 @@ class ImportsourceController extends ActionController protected function requireImportSourceAndAddModifierTable() { $source = $this->getImportSource(); - PropertymodifierTable::load($source, $this->url()) - ->handleSortPriorityActions($this->getRequest(), $this->getResponse()) - ->renderTo($this); + $table = PropertymodifierTable::load($source, $this->url()); + if ($this->getBranch()->isBranch()) { + $table->setReadOnly(); + } else { + $table->handleSortPriorityActions($this->getRequest(), $this->getResponse()); + } + $table->renderTo($this); return $source; } @@ -267,6 +281,10 @@ class ImportsourceController extends ActionController )->addBackToModifiersLink($source); $this->tabs()->activate('modifier'); + if ($this->showNotInBranch($this->translate('Modifying Import Sources'))) { + return; + } + $this->content()->prepend( ImportRowModifierForm::load()->setDb($this->db()) ->setSource($source) @@ -293,6 +311,9 @@ class ImportsourceController extends ActionController )->addBackToModifiersLink($source); $source = $this->requireImportSourceAndAddModifierTable(); $this->tabs()->activate('modifier'); + if ($this->showNotInBranch($this->translate('Modifying Import Sources'))) { + return; + } $listUrl = 'director/importsource/modifier?source_id=' . (int) $source->get('id'); diff --git a/library/Director/Web/Table/PropertymodifierTable.php b/library/Director/Web/Table/PropertymodifierTable.php index 29a4e25f..bf9e4a39 100644 --- a/library/Director/Web/Table/PropertymodifierTable.php +++ b/library/Director/Web/Table/PropertymodifierTable.php @@ -30,6 +30,8 @@ class PropertymodifierTable extends ZfQueryBasedTable protected $priorityColumn = 'priority'; + protected $readOnly = false; + public static function load(ImportSource $source, Url $url) { $table = new static($source->getConnection()); @@ -38,8 +40,17 @@ class PropertymodifierTable extends ZfQueryBasedTable return $table; } + public function setReadOnly($readOnly = true) + { + $this->readOnly = $readOnly; + return $this; + } + public function render() { + if ($this->readOnly) { + return parent::render(); + } return $this->renderWithSortableForm(); } @@ -82,13 +93,18 @@ class PropertymodifierTable extends ZfQueryBasedTable $caption .= ': ' . $row->description; } - return $this->addSortPriorityButtons( - $this::row([ - Link::create($caption, 'director/importsource/editmodifier', [ - 'id' => $row->id, - 'source_id' => $row->source_id, - ]), + $renderedRow = $this::row([ + Link::create($caption, 'director/importsource/editmodifier', [ + 'id' => $row->id, + 'source_id' => $row->source_id, ]), + ]); + if ($this->readOnly) { + return $renderedRow; + } + + return $this->addSortPriorityButtons( + $renderedRow, $row ); } @@ -109,6 +125,9 @@ class PropertymodifierTable extends ZfQueryBasedTable public function getColumnsToBeRendered() { + if ($this->readOnly) { + return [$this->translate('Property')]; + } return [ $this->translate('Property'), $this->getSortPriorityTitle()