From 9de46207697a1324090f614b2d64e6c29ebf877d Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Wed, 23 Jan 2019 16:10:01 +0100 Subject: [PATCH] =?UTF-8?q?Lecture=20des=20images=20pr=C3=A9sentes=20sur?= =?UTF-8?q?=20le=20serveur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/file_picker/file_picker.js | 78 ++++++++++++++----- 1 file changed, 57 insertions(+), 21 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 8106201d..36e8e680 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 @@ -70,14 +70,59 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie } } + /** + * Lit les images déjà présentes à partir de leur URL + * @param {array} aAvaliableFiles tableau d'URL + * @return {promise} + */ + scope['addExistingFiles'] = function(aAvaliableFiles) { + + var deferred = $q.defer(); + + if (goog.isArray(aAvaliableFiles)) { + + var iCounter = 0; + + for (var i = 0; i < aAvaliableFiles.length; i++) { + ajaxRequest({ + 'method': 'GET', + 'url': aAvaliableFiles[i], + 'headers': { + 'Accept': 'application/x-vm-json' + }, + 'scope': this.$scope_, + 'responseType': 'blob', + 'success': function(response) { + + iCounter++; + if (goog.isDefAndNotNull(response['data'])) { + var oBlob = response['data']; + scope['aFiles'].push(oBlob); + } + if (iCounter === aAvaliableFiles.length) { + deferred.resolve(); + } + }, + 'error': function(response) { + iCounter++; + if (iCounter === aAvaliableFiles.length) { + deferred.resolve(); + } + } + }); + + } + } + + return deferred.promise; + } + /** * Download the given file * @param {object} oFile */ scope['downloadFile'] = function(oFile) { - console.log("downloadFile: ", oFile); - var oBlob; var sFileName = oFile['name']; @@ -115,27 +160,8 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie scope['initBootstrapFileInputs'] = function() { var deferred = $q.defer(); - - if (!goog.isDefAndNotNull(scope["field"]["display_width"])) { - scope["field"]["display_width"] = "100%"; - } - // Si sélection d'un fichier à uploader : sauve ses paramètres. - element[0].addEventListener("change", function () { - var oFileList = { - "aFiles": this.files - }; - if (goog.isDefAndNotNull(scope["field"]["width"]) && goog.isDefAndNotNull(scope["field"]["height"])) { - oFileList["width"] = scope["field"]["width"]; - oFileList["height"] = scope["field"]["height"]; - } - - scope["oFormValues"][scope["sFormDefinitionName"]][element[0].name] = oFileList; - }, false); - - // Intégration du plugin "bootstrap-fileinput" dans tous les champ d'upload de fichiers. setTimeout(function () { var oInput = $(element).find('#' + scope['field']['id']); - // $(oInput)["fileinput"](oOptions); deferred.resolve(oInput); }); @@ -331,6 +357,16 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie oInput[0]['files_vitis'] = scope['aFiles']; }); }); + + // Affiche les images présentes sur le serveur + var aAvaliableFiles = scope["oFormValues"][scope["sFormDefinitionName"]][scope['field'].name]; + if (goog.isDefAndNotNull(aAvaliableFiles)) { + scope['addExistingFiles'](aAvaliableFiles).then(function(){ + + // Initialise l'affichage des images + scope['initPreview'](); + }); + } }); // Initialise l'affichage des images -- GitLab