From 5ce9f7bd51bd16068db927b9dbe1506a9caeaa97 Mon Sep 17 00:00:00 2001 From: pbarroca <pbarroca@afi-sa.fr> Date: Tue, 4 Mar 2014 16:24:50 +0100 Subject: [PATCH] rel #12091: Fix domain browser settings popup --- .../admin/controllers/ModulesController.php | 5 ++ .../admin/views/scripts/modules/domains.phtml | 3 ++ .../opac/views/scripts/domains/browse.phtml | 2 + library/Class/Systeme/ModulesAppli.php | 19 +++---- .../ZendAfi/View/Helper/FonctionsAdmin.php | 53 ++++++++----------- public/opac/css/global.css | 1 + .../controllers/ModulesControllerTest.php | 20 +++++++ .../controllers/DomainsControllerTest.php | 10 +++- 8 files changed, 69 insertions(+), 44 deletions(-) create mode 100644 application/modules/admin/views/scripts/modules/domains.phtml diff --git a/application/modules/admin/controllers/ModulesController.php b/application/modules/admin/controllers/ModulesController.php index 78f4cd28889..6d9896ad14a 100644 --- a/application/modules/admin/controllers/ModulesController.php +++ b/application/modules/admin/controllers/ModulesController.php @@ -123,6 +123,11 @@ class Admin_ModulesController extends ZendAfi_Controller_Action { } + public function domainsAction() { + return $this->_simpleAction('domains'); + } + + public function catalogueAction() { $this->view->titre = 'Domaines'; if ($this->_request->isPost()) { diff --git a/application/modules/admin/views/scripts/modules/domains.phtml b/application/modules/admin/views/scripts/modules/domains.phtml new file mode 100644 index 00000000000..8d88c73ccfa --- /dev/null +++ b/application/modules/admin/views/scripts/modules/domains.phtml @@ -0,0 +1,3 @@ +<?php echo $this->render('modules/_debut.phtml');?> + +<?php echo $this->render('modules/_fin.phtml');?> diff --git a/application/modules/opac/views/scripts/domains/browse.phtml b/application/modules/opac/views/scripts/domains/browse.phtml index fd0a0b8ce6d..af13ab67d2b 100644 --- a/application/modules/opac/views/scripts/domains/browse.phtml +++ b/application/modules/opac/views/scripts/domains/browse.phtml @@ -1,3 +1,5 @@ <?php +$this->openBoite(); echo $this->renderDomainBrowser($this->current_domain,$this->current_breadcrumb); +$this->closeBoite(); ?> diff --git a/library/Class/Systeme/ModulesAppli.php b/library/Class/Systeme/ModulesAppli.php index 5c44c980f54..a92a14122a8 100644 --- a/library/Class/Systeme/ModulesAppli.php +++ b/library/Class/Systeme/ModulesAppli.php @@ -138,9 +138,9 @@ class Class_Systeme_ModulesAppli extends Class_Systeme_ModulesAbstract { 'popup_width' => 710, 'popup_height' => 620]], - 'browse' => ['*' => ['libelle' => 'Domaines', - 'popup_width' => 710, - 'popup_height' => 620]] + 'domains' => ['*' => ['libelle' => 'Domaines', + 'popup_width' => 710, + 'popup_height' => 620]] ]; @@ -150,11 +150,11 @@ class Class_Systeme_ModulesAppli extends Class_Systeme_ModulesAbstract { */ public static function getAvailableListeNoticeFormat() { return - [Class_Systeme_ModulesAppli::LISTE_FORMAT_TABLEAU => "Tableau", - Class_Systeme_ModulesAppli::LISTE_FORMAT_ACCORDEON =>"Liste en mode accordéon", - Class_Systeme_ModulesAppli::LISTE_FORMAT_VIGNETTES => "Vignettes", - Class_Systeme_ModulesAppli::LISTE_FORMAT_MUR => "Mur", - Class_Systeme_ModulesAppli::LISTE_FORMAT_CHRONO => "Chronologique"]; + [Class_Systeme_ModulesAppli::LISTE_FORMAT_TABLEAU => 'Tableau', + Class_Systeme_ModulesAppli::LISTE_FORMAT_ACCORDEON => 'Liste en mode accordéon', + Class_Systeme_ModulesAppli::LISTE_FORMAT_VIGNETTES => 'Vignettes', + Class_Systeme_ModulesAppli::LISTE_FORMAT_MUR => 'Mur', + Class_Systeme_ModulesAppli::LISTE_FORMAT_CHRONO => 'Chronologique']; } @@ -224,9 +224,6 @@ class Class_Systeme_ModulesAppli extends Class_Systeme_ModulesAbstract { break; case "bib": $valeurs = $this->getDefautBib($action); break; - case "browse": - $valeurs = $this->getDefautRecherche('resultat'); - break; default : $valeurs = array(); } diff --git a/library/ZendAfi/View/Helper/FonctionsAdmin.php b/library/ZendAfi/View/Helper/FonctionsAdmin.php index 9f025ddb305..e3bc1102e7a 100644 --- a/library/ZendAfi/View/Helper/FonctionsAdmin.php +++ b/library/ZendAfi/View/Helper/FonctionsAdmin.php @@ -18,57 +18,48 @@ * along with AFI-OPAC 2.0; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -////////////////////////////////////////////////////////////////////////////////////////// -// OPAC3 : Fonctions admin en fonction du role dans interface du site -////////////////////////////////////////////////////////////////////////////////////////// class ZendAfi_View_Helper_FonctionsAdmin extends ZendAfi_View_Helper_BaseHelper { - protected - $id_profil, // Profil en cours d'utilisation - $type_module, - $id_module; + protected $id_profil, $type_module, $id_module; -//------------------------------------------------------------------------------------------------------ -// Main routine -//------------------------------------------------------------------------------------------------------ public function fonctionsAdmin($id_module=0, $type_module=false) { if (!Class_Users::isCurrentUserCanConfigFront()) - return false; + return ''; $this->id_profil = Class_Profil::getCurrentProfil()->getId(); $this->type_module = $type_module; $this->id_module = $id_module; $fonction = $this->getPopupParams(); + if (!$fonction) + return ''; + + $label = $this->translate()->_('Propriétés du module'); + $onclick = "showPopWin('" . htmlspecialchars(BASE_URL . $fonction["url"]) . "'," + . $fonction["popup_width"] ."," + . $fonction["popup_height"] . ", null)"; - // Html - if(!$fonction) return false; - $html='<div class="configuration_module" style="text-align:right">'; - $onclick="showPopWin('".htmlspecialchars(BASE_URL.$fonction["url"])."',".$fonction["popup_width"].",".$fonction["popup_height"].",null)"; - $html.=sprintf('<img src="'.URL_ADMIN_IMG.'ico/fonctions_admin.png" onclick="%s" alt="%s" title="%s" style="cursor:pointer" />', - $onclick, - $this->translate()->_('Propriétés du module'), - $this->translate()->_('Propriétés du module')); - $html.='</div>'; - return $html; + return '<div class="configuration_module" style="text-align:right">' + . $this->view->tagImg(URL_ADMIN_IMG . 'ico/fonctions_admin.png', + ['onclick' => $onclick, + 'alt' => $label, + 'title' => $label]) + . '</div>'; } -//------------------------------------------------------------------------------------------------------ -// Modules des controllers -//------------------------------------------------------------------------------------------------------ protected function getPopupParams() { - // Parametres $controller = $this->view->_current_module['controller']; $action = $this->view->_current_module['action']; $action2 = $this->view->_current_module['action2']; - $cls_module=new Class_Systeme_ModulesAppli(); - $props=$cls_module->getModule($controller,$action); - if(!$props) return false; + $cls_module = new Class_Systeme_ModulesAppli(); + $props = $cls_module->getModule($controller, $action); + if(!$props) + return false; - $ret["url"]="/admin/modules/".$controller."?config=site&type_module=".$controller."&id_profil=".$this->id_profil."&action1=".$action."&action2=".$action2; - $ret["popup_width"]=$props["popup_width"]; - $ret["popup_height"]=$props["popup_height"]; + $ret["url"] = "/admin/modules/" . $controller . "?config=site&type_module=" . $controller . "&id_profil=" . $this->id_profil . "&action1=" . $action . "&action2=" . $action2; + $ret["popup_width"] = $props["popup_width"]; + $ret["popup_height"] = $props["popup_height"]; return $ret; } } \ No newline at end of file diff --git a/public/opac/css/global.css b/public/opac/css/global.css index 85268e90f69..3a21bd28a59 100644 --- a/public/opac/css/global.css +++ b/public/opac/css/global.css @@ -40,6 +40,7 @@ a { position: relative; height: 0px; z-index: 1000; + cursor:pointer; } .configuration_module + .newsadd { diff --git a/tests/application/modules/admin/controllers/ModulesControllerTest.php b/tests/application/modules/admin/controllers/ModulesControllerTest.php index 58e94fc6e68..3d1dc54010b 100644 --- a/tests/application/modules/admin/controllers/ModulesControllerTest.php +++ b/tests/application/modules/admin/controllers/ModulesControllerTest.php @@ -669,4 +669,24 @@ class ModulesControllerSearchPostValidationTest extends Admin_AbstractController } } + + +class ModulesControllerDomainsTest extends Admin_AbstractControllerTestCase { + public function setUp() { + parent::setUp(); + $this->dispatch('/admin/modules/domains?config=site&type_module=domains&id_profil=2&action1=browse&action2=', true); + } + + + /** @test */ + public function shouldDisplayTitleDomains() { + $this->assertXPathContentContains('//h1', 'Domaines'); + } + + + /** @test */ + public function shouldDisplayWidgetStyle() { + $this->assertXPath('//select[@name="boite"]/option'); + } +} ?> \ No newline at end of file diff --git a/tests/application/modules/opac/controllers/DomainsControllerTest.php b/tests/application/modules/opac/controllers/DomainsControllerTest.php index 20d9a9af125..507efa153ba 100644 --- a/tests/application/modules/opac/controllers/DomainsControllerTest.php +++ b/tests/application/modules/opac/controllers/DomainsControllerTest.php @@ -54,15 +54,21 @@ class DomainsControllerYouthBrowseTest extends DomainsControllerBrowseTestCase { } /** @test */ - public function browsingYouthDomainShouldDisplayLinkToLetterADomain() { + public function shouldDisplayLinkToLetterADomain() { $this->assertXPath('//div[@class="children_domains"]/ul/li/a[@href="/domains/browse/id/4/parents/3"]'); } /** @test */ - public function browsingYouthDomainShouldDisplayLinkToLetterCDomain() { + public function shouldDisplayLinkToLetterCDomain() { $this->assertXPath('//div[@class="children_domains"]/ul/li/a[@href="/domains/browse/id/6/parents/3"]'); } + + + /** @test */ + public function shouldDisplayModuleConfiguration() { + $this->assertXPath('//div[@class="configuration_module"]/img[contains(@onclick, "/admin/modules/domains?")][contains(@onclick, "action1=browse")]'); + } } -- GitLab