From 66e3b4f666a193957e83ca13344f223ff087ab45 Mon Sep 17 00:00:00 2001
From: Armand Bahi <armand.bahi@veremes.com>
Date: Mon, 28 Jan 2019 17:23:28 +0100
Subject: [PATCH] =?UTF-8?q?ne=20pas=20charger=20le=20contenu=20des=20docum?=
 =?UTF-8?q?ents=20avant=20de=20les=20t=C3=A9l=C3=A9charger?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../component/file_picker/file_picker.html      |  2 +-
 .../component/file_picker/file_picker.js        | 17 ++++++++++++-----
 .../vas/rest/ws/vitis/FileDownloader.class.inc  |  8 ++++++--
 3 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.html b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.html
index 1c45940a..dd18cd0f 100644
--- a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.html
+++ b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.html
@@ -31,7 +31,7 @@
     <div ng-if="field.type === 'file_wsdata'" class="preview-documents-zone">
         <div ng-repeat="document in aPreviewDocuments"
              class="preview-document preview-show-{{$index}}">
-            <a class="document-link" href="javascript:void(0)" ng-click="downloadFile(document)">{{document.name}}</a>
+            <a class="document-link" href="javascript:void(0)" ng-click="downloadDocument(document)">{{document.name}}</a>
             <span class="document-cancel" data-no="{{$index}}" ng-click="removeFile(document)"><span class="icon-trash"></span></span>
          </div>
     </div>
diff --git a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js
index 66e6437f..f16a77d2 100644
--- a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js
+++ b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js
@@ -200,11 +200,10 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
 
                 var deferred = $q.defer();
                 var bThumbnail = goog.isDefAndNotNull(bThumbnail) ? bThumbnail : false;
-                var oParams = {};
-
-                if (bThumbnail === true) {
-                    oParams['thumbnail'] = true;
-                }
+                var oParams = {
+                    'type': scope['field']['type'] === 'image_wsdata' ? 'image' : 'document',
+                    'thumbnail' : bThumbnail === true ? true : false
+                };
 
                 ajaxRequest({
                     'method': 'GET',
@@ -297,6 +296,14 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
                 return sName;
             }
 
+            scope['downloadDocument'] = function(oFile) {
+                $log.log("formReader.FilePickerDirective.downloadDocument");
+
+                scope['downloadFileBlob'](oFile._url).then(function(oBlob){
+                    scope['downloadFile'](oFile, oBlob);
+                });
+            }
+
             /**
              * Download the given file
              * @param  {object} oFile
diff --git a/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc b/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc
index 399b7743..c9564a93 100755
--- a/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc
@@ -161,7 +161,7 @@ class FileDownloader extends Vitis {
                 session_write_close();
                 $sFilename = explode("/", $this->aValues["key"]);
                 $sFilename = end($sFilename);
-                $this->getFile($sPath, $sFilename);
+                $sMessage = $this->getFile($sPath, $sFilename);
             }
 
         } else {
@@ -174,7 +174,7 @@ class FileDownloader extends Vitis {
     function getFile($sFilePath, $sFileName) {
 
         // Utilisation thumnail
-        if ($this->aValues["thumbnail"] == true) {
+        if ($this->aValues["thumbnail"] === 'true') {
             $sMinFilePath = $sFilePath;
             $aMinFilePath = explode('.', $sMinFilePath);
             array_pop($aMinFilePath);
@@ -186,6 +186,10 @@ class FileDownloader extends Vitis {
             }
         }
 
+        if ($this->aValues["thumbnail"] === 'true' && $this->aValues["type"] === 'document') {
+            header("Content-disposition: attachment; filename=\"" . rawurlencode($sFileName) . "\"");
+            return array("status" => 1, "fileName" => $sFileName);
+        }
 
         // Le fichier existe ?
         if (file_exists($sFilePath)) {
-- 
GitLab