From 464c40e82feb4258e583f329941bb4dc79e93583 Mon Sep 17 00:00:00 2001 From: gloas <gloas@afi-sa.fr> Date: Thu, 16 Sep 2021 11:42:06 +0200 Subject: [PATCH] hotline MT #141019 fix visible_when_hidden injection with cached widget --- VERSIONS_HOTLINE/141019 | 1 + library/ZendAfi/View/Helper/Accueil/Base.php | 21 ++++++++-------- tests/scenarios/Templates/ChiliTest.php | 25 +++++++++++++++++++- 3 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 VERSIONS_HOTLINE/141019 diff --git a/VERSIONS_HOTLINE/141019 b/VERSIONS_HOTLINE/141019 new file mode 100644 index 00000000000..1f0f5f03232 --- /dev/null +++ b/VERSIONS_HOTLINE/141019 @@ -0,0 +1 @@ + - ticket #141019 : Magasin de thèmes : Correction de la prise en charge du paramétrage «visible lorsque la boîte sélectionnée n'est plus à l'écran» lorsque le cache de Bokeh est activé. \ No newline at end of file diff --git a/library/ZendAfi/View/Helper/Accueil/Base.php b/library/ZendAfi/View/Helper/Accueil/Base.php index ab20ad14100..9f81e3bb40e 100644 --- a/library/ZendAfi/View/Helper/Accueil/Base.php +++ b/library/ZendAfi/View/Helper/Accueil/Base.php @@ -231,7 +231,15 @@ class ZendAfi_View_Helper_Accueil_Base extends ZendAfi_View_Helper_ModuleAbstrac * ce qui permet d'inclure notamment les actions javascripts */ protected function _beforeCache() { - $this->_renderHeadScriptsOn(Class_ScriptLoader::getInstance()); + $scripts = Class_ScriptLoader::getInstance(); + $this->_renderHeadScriptsOn($scripts); + + if ( $hidden_id = $this->visibleWhenHidden()) + $scripts + ->addOPACScript('visible_when_hidden') + ->addJQueryReady(sprintf('$("#boite_%s").visible_when_hidden("#boite_%s")', + $this->id_module, + $hidden_id)); } @@ -558,16 +566,7 @@ class ZendAfi_View_Helper_Accueil_Base extends ZendAfi_View_Helper_ModuleAbstrac public function visibleWhenHidden() { - if ( ! $hidden_id = $this->_settings->getVisibleWhenHidden()) - return false; - - Class_ScriptLoader::getInstance() - ->addOPACScript('visible_when_hidden') - ->addJQueryReady(sprintf('$("#boite_%s").visible_when_hidden("#boite_%s")', - $this->id_module, - $hidden_id)); - - return true; + return $this->_settings->getVisibleWhenHidden(); } diff --git a/tests/scenarios/Templates/ChiliTest.php b/tests/scenarios/Templates/ChiliTest.php index fe5868b46d3..e3a3223e50e 100644 --- a/tests/scenarios/Templates/ChiliTest.php +++ b/tests/scenarios/Templates/ChiliTest.php @@ -1370,4 +1370,27 @@ class ChiliTemplateAuthPopupLoginNoLogedUserTest extends ChiliTemplateTestCase { public function franceConnectButtonShouldContainsOnclickWindowLocationHrefIdentityProviderUrl() { $this->assertContains('onclick=\"window.location.href = \'\/identity-providers\/authenticate\/id\/1\/redirect\/http%3A%2F%2Ftest.org%2Fopac%2Frecherche%2Fviewnotice%2Fid%2F2\';\"', $this->_response->getBody()); } -} \ No newline at end of file +} + + + + +class ChiliTemplateVisibleWhenHiddenCacheTest extends ChiliTemplateTestCase { + + + public function setUp() { + parent::setUp(); + Class_AdminVar::set('CACHE_ACTIF', 1); + ZendAfi_Auth::getInstance()->clearIdentity(); + $this->dispatch('/'); + Class_ScriptLoader::resetInstance(); + $this->_response->setBody(''); + $this->dispatch('/'); + } + + + /** @test */ + public function menuSearchShouldBeVisibleWhenSearchIsHidden() { + $this->assertXPathContentContains('//script', '$("#boite_3").visible_when_hidden("#boite_6")'); + } +} -- GitLab