From 86d48b9b90712dbec55c0d20d7b7b7ee3dda1203 Mon Sep 17 00:00:00 2001
From: Armand Bahi <armand.bahi@veremes.com>
Date: Fri, 25 Jan 2019 16:47:07 +0100
Subject: [PATCH] =?UTF-8?q?Utilisation=20des=20miniatures=20c=C3=B4t=C3=A9?=
 =?UTF-8?q?=20front?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../component/file_picker/file_picker.js      | 46 ++++++++++++++-----
 1 file changed, 35 insertions(+), 11 deletions(-)

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 d097a76b..b23574a2 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
@@ -135,8 +135,6 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
                         scope['aFiles'].push(files[i]);
                     }
                 }
-
-                console.log("scope['aFiles']: ", scope['aFiles']);
             }
 
             /**
@@ -223,6 +221,7 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
                                 oBlob['name'] = sFileName;
                                 oBlob._url = sFileUrl;
                                 oBlob._modified = false;
+                                oBlob._thumbnail = bThumbnail;
                                 deferred.resolve(oBlob);
                             } else {
                                 console.error('cannot get name from headers : ', response['headers']);
@@ -285,17 +284,19 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
             /**
              * Download the given file
              * @param  {object} oFile
+             * @param  {object|undefined} oBlob
              */
-            scope['downloadFile'] = function(oFile) {
+            scope['downloadFile'] = function(oFile, oBlob) {
                 $log.log("formReader.FilePickerDirective.downloadFile");
 
-                var oBlob;
                 var sFileName = oFile['name'];
 
-                // Trouve le fichier correspondant
-                for (var i = 0; i < scope['aFiles'].length; i++) {
-                    if(scope['aFiles'][i]['name'] === oFile['name']){
-                        oBlob = scope['aFiles'][i];
+                if (!goog.isDefAndNotNull(oBlob)) {
+                    // Trouve le fichier correspondant
+                    for (var i = 0; i < scope['aFiles'].length; i++) {
+                        if(scope['aFiles'][i]['name'] === oFile['name']){
+                            oBlob = scope['aFiles'][i];
+                        }
                     }
                 }
 
@@ -388,7 +389,8 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
                                 scope[sPreviewContainer].push({
                                     'name': oFile['name'],
                                     'src': picFile['result'],
-                                    _url: oFile._url
+                                    _url: oFile._url,
+                                    _thumbnail: oFile._thumbnail
                                 });
                             });
                         }, oFile));
@@ -473,10 +475,32 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
             /**
              * Show the given image on a modal
              * @param  {object} oImage
+             * @param  {object|undefined} oBlob
              */
-            scope['showImageModal'] = function(oImage) {
+            scope['showImageModal'] = function(oImage, oBlob) {
                 $log.log("formReader.FilePickerDirective.showImageModal");
 
+                // Téléchargement image grande si thumbnail
+                if (goog.isDefAndNotNull(oImage._url) && oImage._thumbnail === true) {
+                    scope['downloadFileBlob'](oImage._url, false, 3).then(function(oBlob){
+                        var picReader = new FileReader();
+                        picReader.addEventListener('load', angular.bind(this, function (oBlob, event) {
+                            var picFile = event.target;
+                            scope.$applyAsync(function(){
+                                scope['showImageModal']({
+                                    'name': oBlob['name'],
+                                    'src': picFile['result'],
+                                    _url: oBlob._url,
+                                    _thumbnail: oBlob._thumbnail
+                                }, oBlob);
+                            });
+                        }, oBlob));
+                        picReader.readAsDataURL(oBlob);
+
+                    });
+                    return 0;
+                }
+
                 var iImageIndex;
                 for (var i = 0; i < scope['aPreviewImages'].length; i++) {
                     if(scope['aPreviewImages'][i]['name'] === oImage['name']){
@@ -500,7 +524,7 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
                  * Téléchargement de l'image
                  */
                 $(domDownloadButton).click(function(){
-                    scope['downloadFile'](oImage);
+                    scope['downloadFile'](oImage, oBlob);
                 });
 
                 /**
-- 
GitLab