From 5481ef8860ecf42bc11bddaececaf434aca6a617 Mon Sep 17 00:00:00 2001
From: Armand Bahi <armand.bahi@veremes.com>
Date: Wed, 13 Mar 2019 11:43:44 +0100
Subject: [PATCH] =?UTF-8?q?Requ=C3=AAteur=20:=20mise=20=C3=A0=20jour=20du?=
 =?UTF-8?q?=20nombre=20d'enregistrements=20apr=C3=A8s=20suppression?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../app/vmap/tools/select/advancedselect.js   | 60 ++++++++++++++++---
 1 file changed, 53 insertions(+), 7 deletions(-)

diff --git a/src/module_vmap/module/javascript/app/vmap/tools/select/advancedselect.js b/src/module_vmap/module/javascript/app/vmap/tools/select/advancedselect.js
index 1d4d012d..0286f962 100644
--- a/src/module_vmap/module/javascript/app/vmap/tools/select/advancedselect.js
+++ b/src/module_vmap/module/javascript/app/vmap/tools/select/advancedselect.js
@@ -686,14 +686,10 @@ nsVmap.nsToolsManager.AdvancedSelect.prototype.AdvancedSelectController.prototyp
         setTimeout(function () {
             // Affiche la modale
             $('#select-list-modal').modal('show');
+            // Rafraichit les métiadonnées
+            this_.refreshTablesMetadata();
             // Affiche l'onglet correspondant (si besoin)
-            this_.$scope_.$applyAsync(function () {
-                if (goog.isDefAndNotNull(boId)) {
-                    this_['sSelectedBo'] = boId;
-                } else {
-                    this_['sSelectedBo'] = oVmap.getToolsManager().getBasicTools().getSelect().getSelectedBo();
-                }
-            })
+            this_.autoSelectTableBo(boId);
         }, 100);
     });
 
@@ -1936,6 +1932,56 @@ nsVmap.nsToolsManager.AdvancedSelect.prototype.AdvancedSelectController.prototyp
     return result;
 };
 
+/**
+ * Select automatically the business object
+ * Sélectionne automatiquement l'objet métier à utiliser par défaut
+ *
+ * @param  {string} boId force the selection on the given business object
+ * @export
+ */
+nsVmap.nsToolsManager.AdvancedSelect.prototype.AdvancedSelectController.prototype.autoSelectTableBo = function (boId) {
+    oVmap.log('nsVmap.nsToolsManager.AdvancedSelect.prototype.AdvancedSelectController.prototype.autoSelectTableBo');
+
+    var this_ = this;
+
+    this_.$scope_.$applyAsync(function () {
+        if (goog.isDefAndNotNull(boId) && goog.isDefAndNotNull(this_['tableSelectionMetadata'][boId])) {
+            this_['sSelectedBo'] = boId;
+        } else {
+            if (!goog.isDefAndNotNull(this_['tableSelectionMetadata'][this_['sSelectedBo']])) {
+                this_['sSelectedBo'] = oVmap.getToolsManager().getBasicTools().getSelect().getSelectedBo();
+            }
+        }
+    });
+}
+
+/**
+ * Refresh the selection metadata
+ * Rafraichit les métadonnées du requêteur (nombre d'enregistrements etc...)
+ *
+ * @export
+ */
+nsVmap.nsToolsManager.AdvancedSelect.prototype.AdvancedSelectController.prototype.refreshTablesMetadata = function () {
+    oVmap.log('nsVmap.nsToolsManager.AdvancedSelect.prototype.AdvancedSelectController.prototype.refreshTablesMetadata');
+
+    var this_ = this;
+
+    this_.$scope_.$applyAsync(function () {
+        for (var sBoId in this_['tableSelection']) {
+            if (this_['tableSelection'].hasOwnProperty(sBoId)) {
+
+                // Mise à jour du nombre d'enregistrements
+                if (goog.isDefAndNotNull(this_['tableSelectionMetadata'][sBoId])) {
+                    if (goog.isArray(this_['tableSelection'][sBoId])) {
+                        this_['tableSelectionMetadata'][sBoId]['total_row_number'] = this_['tableSelection'][sBoId].length;
+                    }
+                }
+            }
+        }
+    });
+}
+
+
 /**
  *
  * @param {type} value
-- 
GitLab