From 188b5d484140383ccf3978b205088be4e38c369e Mon Sep 17 00:00:00 2001
From: Armand Bahi <armand.bahi@veremes.com>
Date: Tue, 29 Jan 2019 14:26:44 +0100
Subject: [PATCH] =?UTF-8?q?R=C3=A9solution=20cr=C3=A9ation=20de=20fichiers?=
 =?UTF-8?q?=20blob.=20sur=20le=20serveur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../app/vmap/tools/select/select.js           |  4 +++-
 .../class/vmlib/files/Files_manager.class.inc | 24 +++++++++++++++----
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/src/module_vmap/module/javascript/app/vmap/tools/select/select.js b/src/module_vmap/module/javascript/app/vmap/tools/select/select.js
index bf55eda5..ccee914f 100755
--- a/src/module_vmap/module/javascript/app/vmap/tools/select/select.js
+++ b/src/module_vmap/module/javascript/app/vmap/tools/select/select.js
@@ -1674,7 +1674,9 @@ nsVmap.nsToolsManager.Select.prototype.selectController.prototype.getFormDataFro
                 }
             }
         } else {
-            oFormData_.append(key, oValues[key]);
+            if (oValues[key]._modified !== false) {
+                oFormData_.append(key, oValues[key]);
+            }
         }
     }
 
diff --git a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc
index 53d2e359..a67d55c4 100644
--- a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc
+++ b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc
@@ -505,6 +505,22 @@ class Files_manager{
             return "Container can't contain path : "  . $sContainer;
         }
 
+        // Fichiers à supprimer et exceptions
+        $bIsFilesToDelete = false;
+        if ($aFilesToDelete !== false) {
+            $bIsFilesToDelete = true;
+        } else {
+            $bIsFilesToDelete = false;
+            $aFilesToDelete = [];
+        }
+        $bIsExceptions = false;
+        if ($aExceptions !== false) {
+            $bIsExceptions = true;
+        } else {
+            $bIsExceptions = false;
+            $aExceptions = [];
+        }
+
         // Génère la destination
         $sDestDir = $this->oProperties['ws_data_dir'] . "/" . $sModule . "/" . $sObject;
 
@@ -520,7 +536,7 @@ class Files_manager{
 
         // Ajoute les miniatures aux exceptions
         $aMinExceptions = [];
-        if ($aExceptions !== false) {
+        if ($bIsExceptions !== false) {
             for ($i=0; $i < count($aExceptions); $i++) {
                 $aMinException = explode('.', $aExceptions[$i]);
                 array_pop($aMinException);
@@ -535,7 +551,7 @@ class Files_manager{
 
         // Ajoute les miniatures aux fichiers à supprimer
         $aMinFilesToDelete = [];
-        if ($aFilesToDelete !== false) {
+        if ($bIsFilesToDelete !== false) {
             for ($i=0; $i < count($aFilesToDelete); $i++) {
                 $aMinFileToDelete = explode('.', $aFilesToDelete[$i]);
                 array_pop($aMinFileToDelete);
@@ -553,8 +569,8 @@ class Files_manager{
             $files = glob($sDestDir . '/*'); // get all file names
             foreach($files as $file){ // iterate files
                 if(is_file($file)){
-                    if (in_array(basename($file), $aFilesToDelete) || $aFilesToDelete == false) {
-                        if (!in_array(basename($file), $aExceptions) || $aExceptions == false) {
+                    if (in_array(basename($file), $aFilesToDelete) || $bIsFilesToDelete == false) {
+                        if (!in_array(basename($file), $aExceptions) || $bIsExceptions == false) {
                             unlink($file);
                         }
                     }
-- 
GitLab