From 2013db71f7aabf9b101ce649b434c9fc5fb9aefe Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@git-test.afi-sa.fr> Date: Mon, 11 Jun 2012 08:25:58 +0000 Subject: [PATCH] =?UTF-8?q?Correction=20de=CC=81placement=20boi=CC=82tes?= =?UTF-8?q?=20page=20accueil=20co=CC=82te=CC=81=20serveur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controllers/ProfilController.php | 1 + library/Class/Profil.php | 13 ++- public/opac/css/global.css | 2 +- tests/library/Class/ProfilTest.php | 93 +++++++++++++++++++ 4 files changed, 105 insertions(+), 4 deletions(-) diff --git a/application/modules/admin/controllers/ProfilController.php b/application/modules/admin/controllers/ProfilController.php index f2180abaabe..a3bde3c6739 100644 --- a/application/modules/admin/controllers/ProfilController.php +++ b/application/modules/admin/controllers/ProfilController.php @@ -470,6 +470,7 @@ class Admin_ProfilController extends Zend_Controller_Action { public function moduleSortAction() { $this->getHelper('ViewRenderer')->setNoRender(); + if (!$profil = Class_Profil::getLoader()->find($this->_getParam('profil'))) return; diff --git a/library/Class/Profil.php b/library/Class/Profil.php index abbb36c2027..d1af081271c 100644 --- a/library/Class/Profil.php +++ b/library/Class/Profil.php @@ -1204,7 +1204,6 @@ class Class_Profil extends Storm_Model_Abstract { public function moveModuleOldDivPosNewDivPos($old_div, $old_pos, $new_div, $new_pos) { $cfg_accueil = $this->getCfgAccueilAsArray(); - $id = $this->_getIdModuleAtDivPosInCfg($old_div, $old_pos, $cfg_accueil); $moved_module = $cfg_accueil['modules'][$id]; $moved_module['division'] = $new_div; @@ -1213,11 +1212,19 @@ class Class_Profil extends Storm_Model_Abstract { $new_modules = array(); $i = 0; foreach($cfg_accueil['modules'] as $module_id => $module) { - if ($i == $new_pos) + $in_new_div = $module['division'] == $new_div; + + if (($i == $new_pos) && $in_new_div) $new_modules[$id] = $moved_module; + + if ($in_new_div) + $i++; + $new_modules[$module_id] = $module; - $i++; } + + if (!isset($new_modules[$id])) + $new_modules[$id] = $moved_module; $cfg_accueil['modules'] = $new_modules; diff --git a/public/opac/css/global.css b/public/opac/css/global.css index c5b8d401674..9e812a2fad7 100644 --- a/public/opac/css/global.css +++ b/public/opac/css/global.css @@ -865,7 +865,7 @@ div.ui-sortable-placeholder { } .ui-sortable-helper { - box-shadow: 0px 0px 15px rgba(0,0,0,0.8); + box-shadow: 0px 0px 25px rgba(0,0,0,0.8); max-height: 200px; cursor: move; overflow: hidden; diff --git a/tests/library/Class/ProfilTest.php b/tests/library/Class/ProfilTest.php index f75a639576e..18cd3f32cae 100644 --- a/tests/library/Class/ProfilTest.php +++ b/tests/library/Class/ProfilTest.php @@ -561,6 +561,99 @@ class ProfilAdulteChatenayMoveModuleMoveNEWSFromDiv1PosZeroToDivFourPositionOneT public function moduleIdFourShouldBeBetweenOneAndTwo() { $this->assertEquals(array(1, 4, 2), array_keys($this->modules)); } + + + /** @test */ + public function modulesCountShouldBeThree() { + $this->assertEquals(3, count($this->modules)); + } +} + + + + +class ProfilAdulteChatenayMoveModuleLOGINToFirstPosInDivFourTest extends ProfilAdulteChatenayTestCase { + public function setUp() { + parent::setUp(); + $this->profil->moveModuleOldDivPosNewDivPos(4, 1, 4, 0); + $this->modules = array_at('modules', $this->profil->getCfgAccueilAsArray()); + } + + + /** @test */ + public function moduleIdTwoShouldBeInDivFour() { + $this->assertEquals(4, $this->modules['2']['division']); + } + + + /** @test */ + public function moduleIdTwoShouldBeOnTop() { + $this->assertEquals(array(2, 1, 4), array_keys($this->modules)); + } + + + /** @test */ + public function modulesCountShouldBeThree() { + $this->assertEquals(3, count($this->modules)); + } +} + + + + +class ProfilAdulteChatenayMoveModuleRECH_SIMPLEToSecondPosInDivFourTest extends ProfilAdulteChatenayTestCase { + public function setUp() { + parent::setUp(); + $this->profil->moveModuleOldDivPosNewDivPos(4, 0, 4, 1); + $this->modules = array_at('modules', $this->profil->getCfgAccueilAsArray()); + } + + + /** @test */ + public function moduleIdOneShouldBeInDivFour() { + $this->assertEquals(4, $this->modules['1']['division']); + } + + + /** @test */ + public function moduleIdTwoShouldBeOnTop() { + $this->assertEquals(array(2, 4, 1), array_keys($this->modules)); + } + + + /** @test */ + public function modulesCountShouldBeThree() { + $this->assertEquals(3, count($this->modules)); + } +} + + + + +class ProfilAdulteChatenayMoveModuleLOGINToLastPosInDivOneTest extends ProfilAdulteChatenayTestCase { + public function setUp() { + parent::setUp(); + $this->profil->moveModuleOldDivPosNewDivPos(4, 1, 1, 1); + $this->modules = array_at('modules', $this->profil->getCfgAccueilAsArray()); + } + + + /** @test */ + public function moduleIdTwoShouldBeInDivOne() { + $this->assertEquals(1, $this->modules['2']['division']); + } + + + /** @test */ + public function moduleIdTwoShouldBeLast() { + $this->assertEquals(array(1, 4, 2), array_keys($this->modules)); + } + + + /** @test */ + public function modulesCountShouldBeThree() { + $this->assertEquals(3, count($this->modules)); + } } -- GitLab