From 6b8ad931d15825f03fcc2afb18fa8efb9307a67e Mon Sep 17 00:00:00 2001 From: Laurent Laffont <llaffont@afi-sa.fr> Date: Fri, 1 Sep 2017 16:15:27 +0200 Subject: [PATCH] dev #61993 kiosk admin front : use extended actions to change kiosk content --- .../ZendAfi/View/Helper/Accueil/Kiosque.php | 53 +++++++++++-------- .../ZendAfi/View/Helper/FonctionsAdmin.php | 28 +++++----- public/admin/css/front_nav.css | 8 +++ public/opac/css/global.css | 8 --- .../View/Helper/Accueil/KiosqueTest.php | 5 +- 5 files changed, 55 insertions(+), 47 deletions(-) diff --git a/library/ZendAfi/View/Helper/Accueil/Kiosque.php b/library/ZendAfi/View/Helper/Accueil/Kiosque.php index 70e98f3a8cf..c59660584b3 100644 --- a/library/ZendAfi/View/Helper/Accueil/Kiosque.php +++ b/library/ZendAfi/View/Helper/Accueil/Kiosque.php @@ -69,20 +69,17 @@ class ZendAfi_View_Helper_Accueil_Kiosque extends ZendAfi_View_Helper_Accueil_Ba $this->contenu = (in_array($this->preferences['style_liste'], ['mur', 'vignettes', 'chrono'])) ? $this->getKiosqueHtml() : $this->getKiosqueIFrame(); - $this->contenu = $this->getChangeKiosqueData() . $this->contenu; + $this->contenu = $this->contenu; return $this->getHtmlArray(); } - public function getAddEditLinks() { - if (!Class_Users::isCurrentUserCanAccesBackend()) - return ''; - + public function getEditLink() { if (!($this->preferences['id_catalogue'] && ($catalogue = Class_Catalogue::find($this->preferences['id_catalogue'])))) return ''; - $edit_link = $this->view->tagAnchor($this->view->url(['module' => 'admin', + return $this->view->tagAnchor($this->view->url(['module' => 'admin', 'controller' => 'catalogue', 'action' => 'edit', 'id_catalogue' => $this->preferences['id_catalogue']]), @@ -91,10 +88,17 @@ class ZendAfi_View_Helper_Accueil_Kiosque extends ZendAfi_View_Helper_Accueil_Ba ['title' => $this->view->_('Modifier le domaine : %s', htmlspecialchars($catalogue->getLibelle()))]), ['data-popup' => 'true']); + } + + + public function getAddLink() { + if (!($this->preferences['id_catalogue'] && ($catalogue = Class_Catalogue::find($this->preferences['id_catalogue'])))) + return null; + if (!$domaine_parent = $catalogue->getDomaineParent()) - return $edit_link; + return null; - $add_link = $this->view->tagAnchor($this->view->url(['module' => 'admin', + return $this->view->tagAnchor($this->view->url(['module' => 'admin', 'controller' => 'catalogue', 'action' => 'add', 'id_catalogue' => $domaine_parent->getId(), @@ -102,15 +106,23 @@ class ZendAfi_View_Helper_Accueil_Kiosque extends ZendAfi_View_Helper_Accueil_Ba Class_Admin_Skin::current() ->renderActionIconOn('add', $this->view, ['title' => $this->view->_('Afficher un nouveau domaine')]), ['data-popup' => 'true']); - - return $edit_link.$add_link; } - public function getChangeKiosqueData() { + protected function _extendedActions() { if (!Class_Users::isCurrentUserCanAccesBackend()) - return '<div style="display:none"></div>'; + return null; + + return [ + function() { return $this->getChangeKiosqueData(); }, + function() { return $this->getAddLink(); }, + function() { return $this->getEditLink(); } + ]; + } + + + public function getChangeKiosqueData() { $id_panier = isset($this->preferences['id_panier']) ? $this->preferences['id_panier'] : 0; @@ -126,17 +138,12 @@ class ZendAfi_View_Helper_Accueil_Kiosque extends ZendAfi_View_Helper_Accueil_Ba 'id_module' => $this->id_module ],null,true); - return - $this->_tag('div', - $this->getAddEditLinks() . - $this->view->tagAnchor($change_kiosque_selection_url, - $this->view->tagImg(Class_Admin_Skin::current() - ->getIconUrl('icons', - 'domains'), - ['title' => $this->view->_('Choisir un autre domaine')]), - ['data-popup'=>'true']), - ['class' => 'change_kiosque_data configuration_module']); - + return $this->view->tagAnchor($change_kiosque_selection_url, + $this->view->tagImg(Class_Admin_Skin::current() + ->getIconUrl('icons', + 'domains'), + ['title' => $this->view->_('Choisir un autre domaine')]), + ['data-popup'=>'true']); } diff --git a/library/ZendAfi/View/Helper/FonctionsAdmin.php b/library/ZendAfi/View/Helper/FonctionsAdmin.php index 01d131763eb..a8872ea5e6a 100644 --- a/library/ZendAfi/View/Helper/FonctionsAdmin.php +++ b/library/ZendAfi/View/Helper/FonctionsAdmin.php @@ -34,18 +34,22 @@ class ZendAfi_View_Helper_FonctionsAdmin extends ZendAfi_View_Helper_BaseHelper $this->division = $division; $this->_current_skin = Class_Admin_Skin::current(); - if (!Class_Users::isCurrentUserCanConfigFront()) - return ''; - - return ($actions = trim($this->_extended($extended_actions) . ' ' - . $this->_config() . ' ' - . $this->_versions() . ' ' - . $this->_add() . ' ' - . $this->_delete())) ? - $this->_tag('div', $actions, - ['class' => 'configuration_module', - 'style' => 'text-align:right']) : - ''; + $actions = [$this->_extended($extended_actions)]; + + if (Class_Users::isCurrentUserCanConfigFront()) + $actions = array_merge($actions, + [$this->_config(), + $this->_versions(), + $this->_add(), + $this->_delete()]); + + $html = trim(implode(' ', array_filter($actions))); + + return $html + ? $this->_tag('div', $html, + ['class' => 'configuration_module', + 'style' => 'text-align:right']) + : ''; } diff --git a/public/admin/css/front_nav.css b/public/admin/css/front_nav.css index a9b4efc3782..20d17cf5b70 100644 --- a/public/admin/css/front_nav.css +++ b/public/admin/css/front_nav.css @@ -120,7 +120,9 @@ filter: invert(1); } + #site_web_wrapper[data-show_admin_icons="true"] .configuration_module { + z-index: 101; display: block !important; position: absolute; right: 10px; @@ -171,6 +173,12 @@ } +#site_web_wrapper .boite:hover .configuration_module { + height: 20px; + background-color: var(--line-highlight); +} + + #site_web_wrapper a[href*="/admin"]:hover { border-color: black !important; background-color: white !important; diff --git a/public/opac/css/global.css b/public/opac/css/global.css index 27378cc4489..b14fcc8a308 100644 --- a/public/opac/css/global.css +++ b/public/opac/css/global.css @@ -35,13 +35,6 @@ a { /* Boites bannière*/ -.configuration_module { - z-index: 101; - position: relative; - height: 0px; - float: right; - cursor:pointer; -} .select_kiosque_form { margin-right:25px; @@ -1063,7 +1056,6 @@ ul.view-raw-rss li { article, .colContenu, .kiosque .titre, -.kiosque .contenu, .boite.kiosque { position: relative; } diff --git a/tests/library/ZendAfi/View/Helper/Accueil/KiosqueTest.php b/tests/library/ZendAfi/View/Helper/Accueil/KiosqueTest.php index a8c69d0746d..e1ef547edbc 100644 --- a/tests/library/ZendAfi/View/Helper/Accueil/KiosqueTest.php +++ b/tests/library/ZendAfi/View/Helper/Accueil/KiosqueTest.php @@ -303,9 +303,6 @@ class ZendAfi_View_Helper_Accueil_KiosqueRequetesAsRedacteurTest extends ZendAfi public function setUp() { parent::setUp(); -// Storm_Test_ObjectWrapper::onLoaderOfModel('Class_PanierNotice') -// ->whenCalled('findAllBy') -// ->answers([$this->panier_films, $this->panier_livres]); $redacteur = Class_Users::newInstanceWithId(54) ->beModoBib() @@ -324,7 +321,7 @@ class ZendAfi_View_Helper_Accueil_KiosqueRequetesAsRedacteurTest extends ZendAfi /** @test **/ public function boiteKiosqueWithAdminLoggedShouldContainsLinkToChange() { - $this->assertXPath($this->_html, '//div[@class="boite kiosque"]//div[@class="change_kiosque_data configuration_module"]/a[contains(@href,"admin/modules/kiosque-change-data")]'); + $this->assertXPath($this->_html, '//div[@class="boite kiosque"]//div[@class="configuration_module"]/a[contains(@href,"admin/modules/kiosque-change-data")]'); } -- GitLab