From e4644eeb4edd40a0226d8d3331f754ae930ecf8c Mon Sep 17 00:00:00 2001
From: gloas <gloas@afi-sa.fr>
Date: Thu, 14 Sep 2017 10:43:20 +0200
Subject: [PATCH] dev #64203 fix main request + fix review comments

---
 .../modules/admin/controllers/UsersController.php |  2 +-
 .../views/scripts/users/manage-double-user.phtml  |  2 +-
 .../admin/views/scripts/users/manage-double.phtml |  6 +++---
 library/Class/User/DbDoubleFinder.php             |  2 +-
 public/admin/js/progressbar.js                    |  8 ++++----
 public/admin/skins/bokeh74/global.css             | 11 +++++++++++
 .../admin/controllers/UsersControllerTest.php     | 15 +++++++++++----
 7 files changed, 32 insertions(+), 14 deletions(-)

diff --git a/application/modules/admin/controllers/UsersController.php b/application/modules/admin/controllers/UsersController.php
index 03cca6f8e3b..949089888c3 100644
--- a/application/modules/admin/controllers/UsersController.php
+++ b/application/modules/admin/controllers/UsersController.php
@@ -99,7 +99,7 @@ class Admin_UsersController extends ZendAfi_Controller_Action {
       : false;
 
     if(!$continue)
-      $this->_helper->notify($this->_('Le dédoublonnage automatique a terminé'));
+      $this->_helper->notify($this->_('Le dédoublonnage automatique des doublons est terminé.'));
 
     $done = $total - $db_double_finder->countDouble();
 
diff --git a/application/modules/admin/views/scripts/users/manage-double-user.phtml b/application/modules/admin/views/scripts/users/manage-double-user.phtml
index ff6e168ab4b..de2aba63635 100644
--- a/application/modules/admin/views/scripts/users/manage-double-user.phtml
+++ b/application/modules/admin/views/scripts/users/manage-double-user.phtml
@@ -16,7 +16,7 @@ $description = (new Class_TableDescription('double-users'))
               {
                 return Class_Date::humanDate($user->getDateFin(), 'dd MMMM yyyy');
               })
-  ->addColumn($this->_('Dans l\'intégration'), function($model)
+  ->addColumn($this->_('Exporté par le SIGB'), function($model)
               {
                 return $model->getStatut()
                   ? $this->_('Non')
diff --git a/application/modules/admin/views/scripts/users/manage-double.phtml b/application/modules/admin/views/scripts/users/manage-double.phtml
index 1f238cbf74b..c28715e424d 100644
--- a/application/modules/admin/views/scripts/users/manage-double.phtml
+++ b/application/modules/admin/views/scripts/users/manage-double.phtml
@@ -42,6 +42,6 @@ echo $this->button((new Class_Entity())
                                             ['style' => 'filter: invert();']))
                    ->setText($this->_('Voir la requete')));
 
-echo $this->tag('p',
-                $this->double_manager->getRequest(),
-                ['style' => 'display:none']);
+echo  $this->tag('pre',
+                 $this->double_manager->getRequest(),
+                 ['style' => 'display: none;']);
diff --git a/library/Class/User/DbDoubleFinder.php b/library/Class/User/DbDoubleFinder.php
index b030166d364..d8146fea882 100644
--- a/library/Class/User/DbDoubleFinder.php
+++ b/library/Class/User/DbDoubleFinder.php
@@ -31,7 +31,7 @@ class Class_User_DbDoubleFinder {
 
 
   public function getRequest($cursor = 0) {
-    return sprintf('select id_user, password, login, idabon, ordreabon, count(*) as doublon from bib_admin_users where role_level = 2 and id_user > %s group by idabon, ordreabon, login, password having doublon > 1 order by id_user',
+    return sprintf('select min(id_user) as id_user, password, login, idabon, ordreabon, count(*) as doublon from bib_admin_users where role_level = 2 and id_user > %s group by idabon, ordreabon, login, password having doublon > 1 order by id_user asc',
                    $cursor);
   }
 
diff --git a/public/admin/js/progressbar.js b/public/admin/js/progressbar.js
index da9f9b1f2ea..a1c0bb9c384 100644
--- a/public/admin/js/progressbar.js
+++ b/public/admin/js/progressbar.js
@@ -5,7 +5,7 @@ var progressbar = function(id, url, total, cursor = 0) {
     type: 'GET',
     url: url,
     data: {'total': total,
-	   'cursor': cursor},
+	         'cursor': cursor},
     success: function(data)
     {
       var percent = data.done * 100 / total;
@@ -15,14 +15,14 @@ var progressbar = function(id, url, total, cursor = 0) {
       tag.progressbar({value: percent});
 
       if(run)
-	progressbar(id, url, total, new_cursor);
+	      progressbar(id, url, total, new_cursor);
 
     },
     complete: function(event, ui) {
       if(run)
-	return;
+	      return;
       tag.progressbar({value: 100});
 
-	location.reload();      
+	    location.reload();      
     }});
 }
diff --git a/public/admin/skins/bokeh74/global.css b/public/admin/skins/bokeh74/global.css
index 59733f9854b..f8fe1afe008 100755
--- a/public/admin/skins/bokeh74/global.css
+++ b/public/admin/skins/bokeh74/global.css
@@ -161,6 +161,11 @@ td[id*="menu_item"] {
     box-shadow: 1px 1px 5px var(--widget-shadow);
 }
 
+.modules pre {
+    box-shadow: inset 1px 1px 5px var(--widget-shadow);
+}
+
+
 /* Font */ 
 body,
 body * {
@@ -994,3 +999,9 @@ table#logs img {
 .modules a[data-order$="desc"] {
     background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
 }
+
+.modules pre {
+    margin: 1ex 1em;
+    padding: 1ex 1em;
+    overflow: auto;
+}
diff --git a/tests/application/modules/admin/controllers/UsersControllerTest.php b/tests/application/modules/admin/controllers/UsersControllerTest.php
index 10386e36674..642fa83e002 100644
--- a/tests/application/modules/admin/controllers/UsersControllerTest.php
+++ b/tests/application/modules/admin/controllers/UsersControllerTest.php
@@ -89,13 +89,17 @@ abstract class UsersControllerWithMarcusTestCase extends AbstractControllerTestC
 
 }
 
+
+
+
+
 class UsersControllerIndexTest extends UsersControllerWithMarcusTestCase {
   public function setUp() {
     parent::setUp();
 
     Zend_Registry::set('sql', $this->mock()
                        ->whenCalled('fetchAll')
-                       ->with('select id_user, password, login, idabon, ordreabon, count(*) as doublon from bib_admin_users where role_level = 2 and id_user > 0 group by idabon, ordreabon, login, password having doublon > 1 order by id_user')
+                       ->with('select min(id_user) as id_user, password, login, idabon, ordreabon, count(*) as doublon from bib_admin_users where role_level = 2 and id_user > 0 group by idabon, ordreabon, login, password having doublon > 1 order by id_user asc')
                        ->answers([])
 
                        ->whenCalled('fetchAll')
@@ -1203,7 +1207,7 @@ abstract class UsersControllerDoubleTestCase extends Admin_AbstractControllerTes
     $mock_sql =
       $this->mock()
            ->whenCalled('fetchAll')
-           ->with('select id_user, password, login, idabon, ordreabon, count(*) as doublon from bib_admin_users where role_level = 2 and id_user > 0 group by idabon, ordreabon, login, password having doublon > 1 order by id_user')
+           ->with('select min(id_user) as id_user, password, login, idabon, ordreabon, count(*) as doublon from bib_admin_users where role_level = 2 and id_user > 0 group by idabon, ordreabon, login, password having doublon > 1 order by id_user asc')
            ->answers([
                       ['id_user' => '25',
                        'login' => 'Ret',
@@ -1351,6 +1355,7 @@ abstract class UsersControllerDoubleTestCase extends Admin_AbstractControllerTes
                     'id_user' => 25]);
   }
 
+
   protected function createUsersWithEmptyValidityDate() {
     $this->fixture('Class_Users',
                    ['id' => 110,
@@ -1381,6 +1386,7 @@ abstract class UsersControllerDoubleTestCase extends Admin_AbstractControllerTes
 
   }
 
+
   protected function createUsersWithStatusDifferentAndSameNames($id_abon, $ids = [100,101,102], $status = [0,1,1]) {
     $this->fixture('Class_Users',
                    ['id' => $ids[0],
@@ -1437,7 +1443,6 @@ abstract class UsersControllerDoubleTestCase extends Admin_AbstractControllerTes
 
 class UsersControllerManageDoubleTest extends UsersControllerDoubleTestCase {
 
-
   public function setUp() {
     parent::setUp();
     $this->dispatch('/admin/users/manage-double', true);
@@ -1480,11 +1485,12 @@ class UsersControllerDeleteDoubleEndCursorTest extends Admin_AbstractControllerT
                          'cursor' => null,
                          'run' => false], json_decode($this->_response->getBody(),true));
   }
-
 }
 
 
 
+
+
 class UsersControllerDeleteDoubleTest extends UsersControllerDoubleTestCase {
 
   public function setUp() {
@@ -1602,6 +1608,7 @@ class UsersControllerManageDoubleUserTest extends UsersControllerDoubleTestCase
     $this->assertXpath('//div');
   }
 
+
   /** @test */
   public function backButtonShouldBeDisplayed() {
     $this->assertXpath('//button[contains(@onclick, "/admin/users/manage-double")]',$this->_response->getBody());
-- 
GitLab