From 5d363b89ef81e739947546920e81509e83046c3e Mon Sep 17 00:00:00 2001 From: Patrick Barroca <pbarroca@afi-sa.fr> Date: Fri, 11 Oct 2019 15:44:46 +0200 Subject: [PATCH] hotline #98351 : fix 2 cols widget lost configuration on adding a new widget to page --- VERSIONS_HOTLINE/98351 | 1 + library/Class/Profil.php | 10 ++- .../controllers/WidgetControllerTest.php | 86 +++++++++++++++++++ 3 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 VERSIONS_HOTLINE/98351 diff --git a/VERSIONS_HOTLINE/98351 b/VERSIONS_HOTLINE/98351 new file mode 100644 index 00000000000..97705216caf --- /dev/null +++ b/VERSIONS_HOTLINE/98351 @@ -0,0 +1 @@ + - ticket #98351 : Profils : Correction de la perte de configuration des boîtes 2 colonnes lors de l'ajout d'une autre boîte dans la page. \ No newline at end of file diff --git a/library/Class/Profil.php b/library/Class/Profil.php index ad65d8b2a26..036ba9aad33 100644 --- a/library/Class/Profil.php +++ b/library/Class/Profil.php @@ -806,13 +806,13 @@ class Class_Profil extends Storm_Model_Abstract { $module = array_merge($module, $modules_config[$id_module]); - $default_prefs = Class_Systeme_ModulesAccueil::getInstance() ->getValeursParDefaut($module['type_module']); $default_prefs = array_merge($default_prefs, ['id_module' => $id_module]); - $module['preferences'] = (!array_isset('preferences', $module)) ? - $default_prefs : array_merge($default_prefs, $module['preferences']); + $module['preferences'] = (!array_isset('preferences', $module)) + ? $default_prefs + : array_merge($default_prefs, $module['preferences']); return $module; } @@ -2071,8 +2071,10 @@ class Class_Profil extends Storm_Model_Abstract { $new_modules = []; $i = 0; foreach($cfg_accueil['modules'] as $module_id => $module) { - if (!isset($module['division'])) + if (!isset($module['division'])) { + $new_modules[$module_id] = $module; continue; + } $in_new_div = $module['division'] == $new_div; diff --git a/tests/application/modules/admin/controllers/WidgetControllerTest.php b/tests/application/modules/admin/controllers/WidgetControllerTest.php index 55839256bf7..ef8beb6ee6f 100644 --- a/tests/application/modules/admin/controllers/WidgetControllerTest.php +++ b/tests/application/modules/admin/controllers/WidgetControllerTest.php @@ -2681,3 +2681,89 @@ class WidgetControllerHorizontalMenuChangeLinkTextTest extends Admin_AbstractCon $this->assertCount(2, $menus['menus'][0]['sous_menus']); } } + + + + +/** @see http://forge.afi-sa.fr/issues/98351 */ +class WidgetControllerAddActionWithExisting2Columns + extends WidgetControllerWidgetConfigurationTestCase { + + public function setUp() { + parent::setUp(); + $this->_profil + ->setCfgAccueil('a:4:{s:7:"modules";a:9:{i:1;a:6:{s:11:"type_module";s:23:"CONTENEUR_DEUX_COLONNES";s:11:"preferences";a:9:{s:5:"titre";s:0:"";s:15:"col_gauche_type";s:4:"NEWS";s:15:"col_droite_type";s:4:"NEWS";s:5:"boite";s:0:"";s:9:"id_module";s:1:"1";s:10:"profile_id";s:1:"1";s:20:"col_gauche_module_id";s:4:"1000";s:20:"col_droite_module_id";s:4:"1001";s:8:"id_items";s:12:"104-104-104-";}s:10:"profile_id";s:1:"1";s:8:"division";s:1:"1";s:20:"col_gauche_module_id";s:4:"1000";s:20:"col_droite_module_id";s:4:"1001";}i:4;a:3:{s:8:"division";s:1:"1";s:11:"type_module";s:8:"CALENDAR";s:11:"preferences";a:21:{s:5:"titre";s:14:"À vos agendas";s:12:"id_categorie";s:566:"33-287-303-229-323-235-341-347-241-242-245-383-247-389-249-251-253-254-425-257-259-261-263-265-267-454-472-484-508-515-268-271-569-272-275-276-279-281-634-283-285-729-289-291-293-295-297-299-301-821-828-840-858-864-305-307-309-233-813-359-353-364-371-377-395-401-407-412-419-882-430-437-442-449-890-896-460-467-479-902-490-496-503-521-526-533-539-544-550-556-562-574-581-586-593-599-604-610-617-622-629-642-648-655-661-667-673-679-735-741-746-753-759-765-771-777-783-788-914-893-795-801-806-905-834-846-852-869-723-715-709-703-697-691-685-311-926-936-942-948-954-960";s:18:"display_cat_select";s:1:"0";s:18:"display_event_info";s:3:"bib";s:8:"rss_avis";s:1:"0";s:9:"ical_feed";s:1:"0";s:18:"display_next_event";s:1:"1";s:13:"display_order";s:16:"DateCreationDesc";s:12:"display_mode";s:5:"Title";s:17:"display_full_page";s:1:"0";s:9:"nb_events";s:1:"3";s:16:"display_calendar";s:1:"0";s:14:"mode-affichage";s:4:"wall";s:6:"layout";s:4:"grid";s:12:"event_filter";s:4:"none";s:15:"enabled_filters";s:0:"";s:5:"boite";s:0:"";s:9:"id_module";s:1:"4";s:10:"profile_id";s:1:"1";s:8:"id_items";s:0:"";s:13:"styles_reload";s:1:"0";}}i:5;a:3:{s:8:"division";s:1:"1";s:11:"type_module";s:7:"KIOSQUE";s:11:"preferences";a:26:{s:5:"titre";s:21:"ça vient de sortir !";s:11:"style_liste";s:21:"mycarousel_horizontal";s:10:"nb_notices";s:3:"200";s:8:"only_img";s:1:"1";s:9:"aleatoire";s:1:"0";s:3:"tri";s:1:"1";s:10:"nb_analyse";s:2:"50";s:14:"op_hauteur_img";s:3:"150";s:13:"op_transition";s:4:"zoom";s:14:"op_largeur_img";s:3:"120";s:16:"op_hauteur_boite";s:2:"80";s:11:"op_captions";s:4:"true";s:11:"op_autoplay";s:5:"false";s:10:"op_visible";s:1:"0";s:8:"op_speed";s:3:"100";s:7:"op_auto";s:1:"0";s:9:"op_scroll";s:1:"1";s:8:"rss_avis";s:1:"0";s:12:"id_catalogue";s:2:"21";s:9:"id_panier";s:0:"";s:15:"profil_redirect";s:2:"34";s:5:"boite";s:0:"";s:9:"id_module";s:1:"5";s:10:"profile_id";s:1:"1";s:13:"styles_reload";s:1:"0";s:10:"op_hauteur";s:3:"600";}}i:9;a:3:{s:8:"division";s:1:"1";s:11:"type_module";s:14:"DOMAIN_BROWSER";s:11:"preferences";a:9:{s:5:"titre";s:60:"<a href="/index/index/id_profil/37">Pour aller plus loin</a>";s:16:"allow_breadcrumb";s:1:"0";s:14:"root_domain_id";s:3:"144";s:3:"tri";s:10:"annee desc";s:12:"display_mode";s:1:"4";s:5:"boite";s:0:"";s:9:"id_module";s:1:"9";s:10:"profile_id";s:1:"1";s:8:"id_items";s:0:"";}}i:3;a:3:{s:8:"division";s:1:"1";s:11:"type_module";s:9:"CRITIQUES";s:11:"preferences";a:14:{s:5:"titre";s:14:"Coups de cœur";s:11:"nb_aff_avis";s:1:"2";s:8:"nb_words";s:2:"50";s:13:"display_order";s:6:"Random";s:8:"rss_avis";s:1:"1";s:8:"only_img";s:1:"1";s:9:"id_panier";s:0:"";s:12:"id_catalogue";s:0:"";s:11:"abon_ou_bib";s:3:"all";s:3:"tri";s:1:"0";s:12:"hierarchical";s:1:"0";s:5:"boite";s:0:"";s:9:"id_module";s:1:"3";s:10:"profile_id";s:1:"1";}}i:2;a:3:{s:8:"division";s:1:"4";s:11:"type_module";s:5:"LOGIN";s:11:"preferences";a:20:{s:5:"titre";s:10:"Mon compte";s:14:"titre_connecte";s:0:"";s:11:"identifiant";s:11:"Identifiant";s:19:"identifiant_exemple";s:0:"";s:12:"mot_de_passe";s:12:"Mot de passe";s:20:"mot_de_passe_exemple";s:0:"";s:14:"lien_connexion";s:12:"Se connecter";s:24:"lien_mot_de_passe_oublie";s:47:"Mot de passe oublié ? <br>Changer mot de passe";s:17:"lien_creer_compte";s:16:"Créer un compte";s:16:"pre-registration";s:0:"";s:16:"message_connecte";s:9:"Bienvenue";s:11:"lien_compte";s:10:"Mon compte";s:17:"lien_deconnection";s:15:"Se déconnecter";s:16:"pre_registration";s:0:"";s:16:"autocomplete_off";s:1:"1";s:15:"profil_redirect";s:0:"";s:22:"profil_logout_redirect";s:0:"";s:5:"boite";s:20:"boite_login_banniere";s:9:"id_module";s:1:"2";s:10:"profile_id";s:1:"1";}}i:8;a:3:{s:8:"division";s:1:"4";s:11:"type_module";s:11:"RECH_SIMPLE";s:11:"preferences";a:20:{s:5:"titre";s:0:"";s:7:"message";s:29:"Cherchez, réservez, profitez";s:7:"exemple";s:0:"";s:10:"select_bib";s:1:"0";s:10:"select_doc";s:1:"0";s:13:"select_annexe";s:1:"0";s:7:"largeur";s:3:"300";s:17:"recherche_avancee";s:1:"1";s:8:"type_doc";s:0:"";s:3:"tri";s:1:"*";s:8:"in_files";s:1:"0";s:15:"profil_redirect";s:0:"";s:11:"placeholder";s:18:"Titre, auteur, etc";s:13:"search_button";s:0:"";s:10:"domain_ids";s:0:"";s:19:"domain_select_style";s:6:"select";s:5:"boite";s:21:"boite_banniere_gauche";s:9:"id_module";s:1:"8";s:10:"profile_id";s:1:"1";s:8:"id_items";s:0:"";}}i:1000;a:5:{s:11:"type_module";s:4:"NEWS";s:11:"preferences";a:23:{s:5:"titre";s:8:"A la une";s:6:"anchor";s:0:"";s:19:"allow_link_on_title";s:1:"0";s:8:"type_aff";s:1:"1";s:12:"id_categorie";s:0:"";s:8:"id_items";s:23:"555-627-631-580-400-634";s:6:"nb_aff";s:1:"1";s:10:"nb_analyse";s:1:"5";s:13:"display_order";s:9:"Selection";s:19:"display_titles_only";s:1:"0";s:8:"rss_avis";s:1:"1";s:14:"op_largeur_img";s:3:"200";s:6:"layout";s:4:"grid";s:16:"op_hauteur_boite";s:3:"400";s:5:"boite";s:0:"";s:10:"profile_id";s:1:"1";s:11:"style_liste";s:20:"diaporama_navigation";s:13:"styles_reload";s:1:"0";s:18:"op_navigation_mode";s:13:"next_previous";s:18:"op_navigation_unit";s:2:"px";s:26:"op_navigation_window_width";s:3:"580";s:27:"op_navigation_window_height";s:3:"325";s:19:"op_navigation_cycle";s:4:"4000";}s:9:"id_module";s:4:"1000";s:9:"parent_id";s:1:"1";s:10:"profile_id";s:1:"1";}i:1001;a:5:{s:11:"type_module";s:4:"NEWS";s:11:"preferences";a:18:{s:5:"titre";s:17:"Numérique 24h/24";s:6:"anchor";s:0:"";s:19:"allow_link_on_title";s:1:"1";s:8:"type_aff";s:1:"1";s:12:"id_categorie";s:0:"";s:8:"id_items";s:3:"207";s:6:"nb_aff";s:1:"1";s:10:"nb_analyse";s:1:"5";s:13:"display_order";s:9:"Selection";s:19:"display_titles_only";s:1:"0";s:8:"rss_avis";s:1:"0";s:14:"op_largeur_img";s:3:"200";s:6:"layout";s:4:"grid";s:16:"op_hauteur_boite";s:3:"400";s:5:"boite";s:0:"";s:10:"profile_id";s:1:"1";s:11:"style_liste";s:4:"none";s:13:"styles_reload";s:1:"0";}s:9:"id_module";s:4:"1001";s:9:"parent_id";s:1:"1";s:10:"profile_id";s:1:"1";}}s:14:"use_parent_css";s:1:"1";s:7:"sitemap";s:1:"1";s:8:"page_css";s:0:"";}') + ->setNbDivisions(1) + ->assertSave() + ; + + $this->dispatch('/admin/widget/add/id_profil/5/template/advanced/template_no/0'); + } + + + /** @test */ + public function cfgAccueilModulesShouldNotBeEmpty() { + $this->assertNotEmpty($this->_profil->getCfgAccueilAsArray()['modules']); + } + + + /** @test */ + public function cfgAccueilModulesShouldHave10Items() { + $this->assertCount(10, $this->_profil->getCfgAccueilAsArray()['modules']); + } + + + /** @test */ + public function leftColumnPreferencesShouldNotBeLost() { + $preferences = $this->_profil->getCfgAccueilAsArray()['modules'][1000]['preferences']; + $this->assertEquals(['titre' => 'A la une', + 'anchor' => '', + 'allow_link_on_title' => '0', + 'type_aff' => '1', + 'id_categorie' => '', + 'id_items' => '555-627-631-580-400-634', + 'nb_aff' => '1', + 'nb_analyse' => '5', + 'display_order' => 'Selection', + 'display_titles_only' => '0', + 'rss_avis' => '1', + 'op_largeur_img' => '200', + 'layout' => 'grid', + 'op_hauteur_boite' => '400', + 'boite' => '', + 'profile_id' => '1', + 'style_liste' => 'diaporama_navigation', + 'styles_reload' => '0', + 'op_navigation_mode' => 'next_previous', + 'op_navigation_unit' => 'px', + 'op_navigation_window_width' => '580', + 'op_navigation_window_height' => '325', + 'op_navigation_cycle' => '4000'], + $preferences); + } + + + /** @test */ + public function rightColumnPreferencesShouldNotBeLost() { + $preferences = $this->_profil->getCfgAccueilAsArray()['modules'][1001]['preferences']; + $this->assertEquals(['titre' => 'Numérique 24h/24', + 'anchor' => '', + 'allow_link_on_title' => '1', + 'type_aff' => '1', + 'id_categorie' => '', + 'id_items' => '207', + 'nb_aff' => '1', + 'nb_analyse' => '5', + 'display_order' => 'Selection', + 'display_titles_only' => '0', + 'rss_avis' => '0', + 'op_largeur_img' => '200', + 'layout' => 'grid', + 'op_hauteur_boite' => '400', + 'boite' => '', + 'profile_id' => '1', + 'style_liste' => 'none', + 'styles_reload' => '0'], + $preferences); + } +} \ No newline at end of file -- GitLab