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 93053f9f50533bef688cc2d3cf74bbb4c54c9ec4..01b5306e63f27099a5fdc9627da13db759be1393 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 @@ -30,386 +30,348 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie }, controllerAs: 'ctrl', templateUrl: window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + "/" + sessionStorage["appEnv"] + '/javascript/externs/formReader/component/file_picker/file_picker.html', - compile: function (element, attributes) { - return { - pre: function (scope, element, attributes, controller, transcludeFn) { - $log.log("formReader.FilePickerDirective.pre"); - - /** - * URL vers le dossier fliepicker - */ - scope['folderUrl'] = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + "/" + sessionStorage["appEnv"] + '/javascript/externs/formReader/component/file_picker'; - - /** - * Fichiers à envoyer - */ - scope['aFiles'] = []; - - /** - * Liste des URL des images à afficher - */ - scope['aPreviewImages'] = []; + link: function (scope, element, attributes, controller, transcludeFn) { + $log.log("formReader.FilePickerDirective.link"); - /** - * Liste des URL des documents à afficher - */ - scope['aPreviewDocuments'] = []; + /** + * URL vers le dossier fliepicker + */ + scope['folderUrl'] = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + "/" + sessionStorage["appEnv"] + '/javascript/externs/formReader/component/file_picker'; - /** - * Add the added files to scope.aFiles - * @param {type} event - */ - scope['addFiles'] = function(event) { - var files = event['target']['files']; - for (var i = 0; i < files.length; i++) { - if (scope['isFilePresent'](files[i])) { - console.error('file already present'); - } else { - scope['aFiles'].push(files[i]); - } - } - } - - /** - * 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': scope, - 'ajaxLoader': true, - 'responseType': 'blob', - 'success': function(response) { - - iCounter++; - if (goog.isDefAndNotNull(response['data'])) { - var oBlob = response['data']; - - if (goog.isDefAndNotNull(response['headers'])) { - if (goog.isString(response['headers']['content-disposition'])) { - - var sName; - var aContentDisp = response['headers']['content-disposition'].split(';'); - for (var i = 0; i < aContentDisp.length; i++) { - if(aContentDisp[i].indexOf('filename=') !== -1){ - sName = aContentDisp[i].split('"')[1]; - } - } - - if (sName) { - oBlob['name'] = sName; - // oBlob['lastModified'] = new Date().getTime(); - // oBlob['lastModifiedDate'] = new Date(); - // oBlob['webkitRelativePath'] = ''; - - // var oFile = new File([oBlob], sName, { - // 'type': scope['field']['type'] === 'image_wsdata' ? 'image' : '' - // }); - - // scope['aFiles'].push(oFile); - } - } - } - scope['aFiles'].push(oBlob); - } - if (iCounter === aAvaliableFiles.length) { - deferred.resolve(); - } - }, - 'error': function(response) { - iCounter++; - if (iCounter === aAvaliableFiles.length) { - deferred.resolve(); - } - } - }); + /** + * Fichiers à envoyer + */ + scope['aFiles'] = []; - } - } + /** + * Liste des URL des images à afficher + */ + scope['aPreviewImages'] = []; - return deferred.promise; - } + /** + * Liste des URL des documents à afficher + */ + scope['aPreviewDocuments'] = []; - /** - * Download the given file - * @param {object} oFile - */ - scope['downloadFile'] = function(oFile) { + /** + * Initialise le composant + */ + scope['initComponent'] = function() { + $log.log("formReader.FilePickerDirective.initComponent"); - var oBlob; - var sFileName = oFile['name']; + // Réinitialise les variables + scope['resetFileInput'](); - // Trouve le fichier correspondant - for (var i = 0; i < scope['aFiles'].length; i++) { - if(scope['aFiles'][i]['name'] === oFile['name']){ - oBlob = scope['aFiles'][i]; - } - } + // Initialise l'élément bootstrap fileInput + scope['initBootstrapFileInputs']().then(function(oInput) { - // Télécharge le fichier - if (goog.isDefAndNotNull(oBlob)) { + // Écoute les changements pour afficher les images dans la liste + $(oInput).change(function(e){ - // IE - if (window.navigator['msSaveOrOpenBlob']) { - window.navigator['msSaveOrOpenBlob'](oBlob, sFileName); - } - // Others - else { - var a = document.createElement("a"); - var url = window.URL.createObjectURL(oBlob); - document.body.appendChild(a); - a.style = "display: none"; - a.href = url; - a.download = sFileName; - a.click(); - window.URL.revokeObjectURL(url); - } - } - } + // Ajoute les fichiers + scope['addFiles'](e); - /** - * Initialise l'élément bootstrap fileInput - */ - scope['initBootstrapFileInputs'] = function() { + // Affichage des images/documents dans l'espace de prévisualisation + scope['initPreview'](); - var deferred = $q.defer(); + // Set la nouvelle valeur de l'attibut setTimeout(function () { - var oInput = $(element).find('#' + scope['field']['id'] + '_hidden'); - deferred.resolve(oInput); + oInput[0]['files_vitis'] = scope['aFiles']; + + // Sauvegarde les fichiers sur oFormValues + scope['saveFiles'](); }); + }); - return deferred.promise; - } + // 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(){ - /** - * Init the preview in scope.aPreviewImages or scope.aPreviewDocuments - */ - scope['initPreview'] = function() { + // Initialise l'affichage des images + scope['initPreview'](); - var sPreviewContainer = 'aPreviewDocuments'; - if (scope['field']['type'] === 'image_wsdata') { - sPreviewContainer = 'aPreviewImages'; - } + // Sauvegarde les fichiers sur oFormValues + scope['saveFiles'](); + }); + } + }); + } + + /** + * Réinitialise les variables du composant + * + * @return {type} description + */ + scope['resetFileInput'] = function() { + $log.log("formReader.FilePickerDirective.resetFileInput"); + + scope.$applyAsync(function(){ + scope['aFiles'] = []; + scope['aPreviewImages'] = []; + scope['aPreviewDocuments'] = []; + scope['initPreview'](); + }); + } + + /** + * Add the added files to scope.aFiles + * @param {type} event + */ + scope['addFiles'] = function(event) { + $log.log("formReader.FilePickerDirective.addFiles"); + + var files = event['target']['files']; + for (var i = 0; i < files.length; i++) { + if (scope['isFilePresent'](files[i])) { + console.error('file already present'); + } else { + scope['aFiles'].push(files[i]); + } + } + } - console.log("initPreview: ", scope['aFiles']); + /** + * Lit les images déjà présentes à partir de leur URL + * @param {array} aAvaliableFiles tableau d'URL + * @return {promise} + */ + scope['addExistingFiles'] = function(aAvaliableFiles) { + $log.log("formReader.FilePickerDirective.addExistingFiles"); - // Vide les images qui ont étés supprimées de aFiles - var bIsPresent; - for (var i = scope[sPreviewContainer].length - 1; i >= 0; i--) { - bIsPresent = false; - for (var ii = 0; ii < scope['aFiles'].length; ii++) { - if (!bIsPresent) { - if(scope[sPreviewContainer][i]['name'] === scope['aFiles'][ii]['name']){ - bIsPresent = true; - } - } - } - if (!bIsPresent) { - scope[sPreviewContainer].splice(i, 1); - } - } + var deferred = $q.defer(); - // Ajoute les nouvelles images - var oFile; - for (var i = 0; i < scope['aFiles'].length; i++) { - bIsPresent = false; - oFile = scope['aFiles'][i]; + if (goog.isArray(aAvaliableFiles)) { - if (scope['field']['type'] === 'image_wsdata') { - if (!oFile.type.match('image')) continue; - } + var iCounter = 0; - // Vérifie que l'image ne soit pas déjà ajoutée - for (var ii = 0; ii < scope[sPreviewContainer].length; ii++) { - if(scope['aFiles'][i]['name'] === scope[sPreviewContainer][ii]['name']){ - bIsPresent = true; - } - } + for (var i = 0; i < aAvaliableFiles.length; i++) { - // Ajoute les nouvelles images - if (!bIsPresent) { - var picReader = new FileReader(); - picReader.addEventListener('load', angular.bind(this, function (oFile, event) { - var picFile = event.target; - scope.$applyAsync(function(){ - scope[sPreviewContainer].push({ - 'name': oFile['name'], - 'src': picFile['result'] - }); - }); - }, oFile)); - picReader.readAsDataURL(oFile); - } - } + ajaxRequest({ + 'method': 'GET', + 'url': aAvaliableFiles[i], + 'headers': { + 'Accept': 'application/x-vm-json' + }, + 'scope': scope, + 'ajaxLoader': true, + 'responseType': 'blob', + 'success': function(response) { + + iCounter++; + if (goog.isDefAndNotNull(response['data'])) { + var oBlob = response['data']; + + if (goog.isDefAndNotNull(response['headers'])) { + if (goog.isString(response['headers']['content-disposition'])) { + + var sName; + var aContentDisp = response['headers']['content-disposition'].split(';'); + for (var i = 0; i < aContentDisp.length; i++) { + if(aContentDisp[i].indexOf('filename=') !== -1){ + sName = aContentDisp[i].split('"')[1]; + } + } - // Rafraichit la vue - scope.$applyAsync(function(){ - scope[sPreviewContainer] = scope[sPreviewContainer]; - }); - } + if (sName) { + oBlob['name'] = sName; + // oBlob['lastModified'] = new Date().getTime(); + // oBlob['lastModifiedDate'] = new Date(); + // oBlob['webkitRelativePath'] = ''; - /** - * Test if a file is already present - * @param {object} oFile file to test - * @return {boolean} true if the file is already present - */ - scope['isFilePresent'] = function(oFile) { - var bIsFilePresent = false; - for (var i = 0; i < scope['aFiles'].length; i++) { - if (scope['aFiles'][i]['name'] === oFile['name']) { - bIsFilePresent = true; - } - } - return bIsFilePresent; - } + // var oFile = new File([oBlob], sName, { + // 'type': scope['field']['type'] === 'image_wsdata' ? 'image' : '' + // }); - /** - * Remove the given file - * @param {object} oImage - */ - scope['removeFile'] = function(oFile) { - - bootbox['confirm']({ - 'message': "Supprimer <b>" + oFile['name'] + "</b> ?", - 'buttons': { - 'confirm': { - 'label': 'Oui', - 'className': 'btn-danger' - }, - 'cancel': { - 'label': 'Non', - 'className': 'btn-default' - } - }, - 'callback': function (result) { - if (result) { - for (var i = 0; i < scope['aFiles'].length; i++) { - if(scope['aFiles'][i]['name'] === oFile['name']){ - console.log('1', oFile['name']); - scope['aFiles'].splice(i, 1); + // scope['aFiles'].push(oFile); + } } } - - // Affichage des images - setTimeout(function () { - - // Initialise l'affichage des images - scope['initPreview'](); - - // Sauvegarde les fichiers sur oFormValues - scope['saveFiles'](); - }); + scope['aFiles'].push(oBlob); + } + if (iCounter === aAvaliableFiles.length) { + deferred.resolve(); + } + }, + 'error': function(response) { + iCounter++; + if (iCounter === aAvaliableFiles.length) { + deferred.resolve(); } } }); - } - /** - * Show the finder to search no files to add - */ - scope['searchNewFile'] = function() { - var oInput = $(element).find('#' + scope['field']['id'] + '_hidden'); - $(oInput).click(); } + } - /** - * Show the given image on a modal - * @param {object} oImage - */ - scope['showImageModal'] = function(oImage) { - - var domModalcontent = $('<div class="modal-image-zone"></div>'); - var domImage = $('<img src="' + oImage['src'] + '">'); - - // Boutons suivant/précédent - var domImageToolsContainer = $('<div class="filepicker-image-zoom-modal-tools-container"></div>'); - var domImageToolsPrev = $('<div class="filepicker-image-zoom-modal-tools-prev"><span class="icon-keyboard_arrow_left"></span></div>'); - var domImageToolsNext = $('<div class="filepicker-image-zoom-modal-tools-next"><span class="icon-keyboard_arrow_right"></span></div>'); - - // Bouton télécharger - var domDownloadButtonContainer = $('<div class="filepicker-image-zoom-modal-button-container"></div>'); - var domDownloadButton = $('<button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-download-alt"></span></button>'); - - /** - * Téléchargement de l'image - */ - $(domDownloadButton).click(function(){ - scope['downloadFile'](oImage); - }); + return deferred.promise; + } - $(domModalcontent).append(domImage); - $(domImageToolsContainer).append(domImageToolsPrev); - $(domImageToolsContainer).append(domImageToolsNext); - $(domDownloadButtonContainer).append(domDownloadButton); - $(domModalcontent).append(domDownloadButtonContainer); - $(domModalcontent).append(domImageToolsContainer); + /** + * Download the given file + * @param {object} oFile + */ + scope['downloadFile'] = function(oFile) { + $log.log("formReader.FilePickerDirective.downloadFile"); + var oBlob; + var sFileName = oFile['name']; - var dialog = bootbox['dialog']({ - 'title': oImage['name'], - 'className': 'filepicker-image-zoom-modal', - 'message': domModalcontent - }); + // Trouve le fichier correspondant + for (var i = 0; i < scope['aFiles'].length; i++) { + if(scope['aFiles'][i]['name'] === oFile['name']){ + oBlob = scope['aFiles'][i]; } + } + + // Télécharge le fichier + if (goog.isDefAndNotNull(oBlob)) { - /** - * Sauvegarde les fichiers sur oFormValues - */ - scope['saveFiles'] = function() { - console.log("saveFiles: ", scope['aFiles']); - console.log("scope['oFormValues']: ", scope["oFormValues"]); - scope['oFormValues'][scope['sFormDefinitionName']][scope['field'].name] = scope['aFiles']; + // IE + if (window.navigator['msSaveOrOpenBlob']) { + window.navigator['msSaveOrOpenBlob'](oBlob, sFileName); + } + // Others + else { + var a = document.createElement("a"); + var url = window.URL.createObjectURL(oBlob); + document.body.appendChild(a); + a.style = "display: none"; + a.href = url; + a.download = sFileName; + a.click(); + window.URL.revokeObjectURL(url); } + } + } + + /** + * Initialise l'élément bootstrap fileInput + */ + scope['initBootstrapFileInputs'] = function() { + $log.log("formReader.FilePickerDirective.initBootstrapFileInputs"); + + var deferred = $q.defer(); + setTimeout(function () { + var oInput = $(element).find('#' + scope['field']['id'] + '_hidden'); + deferred.resolve(oInput); + }); + + return deferred.promise; + } + + /** + * Init the preview in scope.aPreviewImages or scope.aPreviewDocuments + */ + scope['initPreview'] = function() { + $log.log("formReader.FilePickerDirective.initPreview"); + + var sPreviewContainer = 'aPreviewDocuments'; + if (scope['field']['type'] === 'image_wsdata') { + sPreviewContainer = 'aPreviewImages'; + } - }, - post: function (scope, element, attributes, controller, transcludeFn) { - $log.log("formReader.FilePickerDirective.post"); + // Vide les images qui ont étés supprimées de aFiles + var bIsPresent; + for (var i = scope[sPreviewContainer].length - 1; i >= 0; i--) { + bIsPresent = false; + for (var ii = 0; ii < scope['aFiles'].length; ii++) { + if (!bIsPresent) { + if(scope[sPreviewContainer][i]['name'] === scope['aFiles'][ii]['name']){ + bIsPresent = true; + } + } + } + if (!bIsPresent) { + scope[sPreviewContainer].splice(i, 1); + } + } - console.log("field: ", scope['field']); - console.log("oFormDefinition: ", scope['oFormDefinition']); - console.log("sFormDefinitionName: ", scope['sFormDefinitionName']); - console.log("oFormValues: ", scope['oFormValues']); + // Ajoute les nouvelles images + var oFile; + for (var i = 0; i < scope['aFiles'].length; i++) { + bIsPresent = false; + oFile = scope['aFiles'][i]; - // Initialise l'élément bootstrap fileInput - scope['initBootstrapFileInputs']().then(function(oInput) { + if (scope['field']['type'] === 'image_wsdata') { + if (!oFile.type.match('image')) continue; + } - // Écoute les changements pour afficher les images dans la liste - $(oInput).change(function(e){ + // Vérifie que l'image ne soit pas déjà ajoutée + for (var ii = 0; ii < scope[sPreviewContainer].length; ii++) { + if(scope['aFiles'][i]['name'] === scope[sPreviewContainer][ii]['name']){ + bIsPresent = true; + } + } - // Ajoute les fichiers - scope['addFiles'](e); + // Ajoute les nouvelles images + if (!bIsPresent) { + var picReader = new FileReader(); + picReader.addEventListener('load', angular.bind(this, function (oFile, event) { + var picFile = event.target; + scope.$applyAsync(function(){ + scope[sPreviewContainer].push({ + 'name': oFile['name'], + 'src': picFile['result'] + }); + }); + }, oFile)); + picReader.readAsDataURL(oFile); + } + } - // Affichage des images/documents dans l'espace de prévisualisation - scope['initPreview'](); + // Rafraichit la vue + scope.$applyAsync(function(){ + scope[sPreviewContainer] = scope[sPreviewContainer]; + }); + } + + /** + * Test if a file is already present + * @param {object} oFile file to test + * @return {boolean} true if the file is already present + */ + scope['isFilePresent'] = function(oFile) { + $log.log("formReader.FilePickerDirective.isFilePresent"); + + var bIsFilePresent = false; + for (var i = 0; i < scope['aFiles'].length; i++) { + if (scope['aFiles'][i]['name'] === oFile['name']) { + bIsFilePresent = true; + } + } + return bIsFilePresent; + } + + /** + * Remove the given file + * @param {object} oImage + */ + scope['removeFile'] = function(oFile) { + $log.log("formReader.FilePickerDirective.removeFile"); + + bootbox['confirm']({ + 'message': "Supprimer <b>" + oFile['name'] + "</b> ?", + 'buttons': { + 'confirm': { + 'label': 'Oui', + 'className': 'btn-danger' + }, + 'cancel': { + 'label': 'Non', + 'className': 'btn-default' + } + }, + 'callback': function (result) { + if (result) { + for (var i = 0; i < scope['aFiles'].length; i++) { + if(scope['aFiles'][i]['name'] === oFile['name']){ + scope['aFiles'].splice(i, 1); + } + } - // Set la nouvelle valeur de l'attibut + // Affichage des images setTimeout(function () { - oInput[0]['files_vitis'] = scope['aFiles']; - - // Sauvegarde les fichiers sur oFormValues - scope['saveFiles'](); - }); - }); - - // 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'](); @@ -418,12 +380,69 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie scope['saveFiles'](); }); } - }); - - // Initialise l'affichage des images - scope['initPreview'](); - } - }; + } + }); + } + + /** + * Show the finder to search no files to add + */ + scope['searchNewFile'] = function() { + $log.log("formReader.FilePickerDirective.searchNewFile"); + + var oInput = $(element).find('#' + scope['field']['id'] + '_hidden'); + $(oInput).click(); + } + + /** + * Show the given image on a modal + * @param {object} oImage + */ + scope['showImageModal'] = function(oImage) { + $log.log("formReader.FilePickerDirective.showImageModal"); + + var domModalcontent = $('<div class="modal-image-zone"></div>'); + var domImage = $('<img src="' + oImage['src'] + '">'); + + // Boutons suivant/précédent + var domImageToolsContainer = $('<div class="filepicker-image-zoom-modal-tools-container"></div>'); + var domImageToolsPrev = $('<div class="filepicker-image-zoom-modal-tools-prev"><span class="icon-keyboard_arrow_left"></span></div>'); + var domImageToolsNext = $('<div class="filepicker-image-zoom-modal-tools-next"><span class="icon-keyboard_arrow_right"></span></div>'); + + // Bouton télécharger + var domDownloadButtonContainer = $('<div class="filepicker-image-zoom-modal-button-container"></div>'); + var domDownloadButton = $('<button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-download-alt"></span></button>'); + + /** + * Téléchargement de l'image + */ + $(domDownloadButton).click(function(){ + scope['downloadFile'](oImage); + }); + + $(domModalcontent).append(domImage); + $(domImageToolsContainer).append(domImageToolsPrev); + $(domImageToolsContainer).append(domImageToolsNext); + $(domDownloadButtonContainer).append(domDownloadButton); + $(domModalcontent).append(domDownloadButtonContainer); + $(domModalcontent).append(domImageToolsContainer); + + + var dialog = bootbox['dialog']({ + 'title': oImage['name'], + 'className': 'filepicker-image-zoom-modal', + 'message': domModalcontent + }); + } + + /** + * Sauvegarde les fichiers sur oFormValues + */ + scope['saveFiles'] = function() { + $log.log("formReader.FilePickerDirective.saveFiles"); + + scope['oFormValues'][scope['sFormDefinitionName']][scope['field'].name] = scope['aFiles']; + } } }; }; diff --git a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js index d9b441ea60aa072df322f492c7ec9516d50c003d..11eefa1260dfb392b9fd3df6ad8c32d65c89118c 100644 --- a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js +++ b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js @@ -693,6 +693,13 @@ formReader.formReaderDirective = function ($q, formReaderService, propertiesSrvc $(element).find(".file").each(function () { $(this)['fileinput']('clear'); }); + + setTimeout(function () { + $('#select_edit_form_reader').find('[data-app-file-picker=""]').each(function(index, elem){ + var oFilePickerScope = angular.element($(elem).children()).scope(); + oFilePickerScope['initComponent'](); + }) + }); }; /** @@ -875,48 +882,48 @@ formReader.appFormFieldSpecificParamsDrtv = function ($timeout, $translate, prop // Intégration du plugin "bootstrap-fileinput" dans tous les champ d'upload de fichiers. $(element)["fileinput"](oOptions); break; - case 'file_wsdata': - - // Évite la multiplication des champs depuis le studio - // quand on coche/décoche "Multiple documents" - if ($(element).parent().find('.file-input').length > 0) { - $(element).remove(); - break; - } - - // Si sélection d'un fichier à uploader : sauve ses paramètres. - element[0].addEventListener("change", function () { - var oFileList = { - "aFiles": this.files - }; - scope["oFormValues"][scope["sFormDefinitionName"]][element[0].name] = oFileList; - }, false); - // Extensions de fichiers autorisées. - if (typeof(scope["field"]["formats"]) != "undefined" && typeof(scope["field"]["extensions"]) == "undefined") - scope["field"]["extensions"] = scope["field"]["formats"]; - if (goog.isDefAndNotNull(scope["field"]["extensions"])) { - var aFilesExtensions = scope["field"]["extensions"].split('|'); - for (var iFileExtensionIndex in aFilesExtensions) - aFilesExtensions[iFileExtensionIndex] = "." + aFilesExtensions[iFileExtensionIndex]; - element[0].setAttribute("accept", aFilesExtensions.join(",")); - } - // Options - var oOptions = { - "showPreview": false, - "showRemove": false, - "showUpload": false, - }; - - if (typeof (scope["field"]["options"]) !== "undefined") - goog.object.extend(oOptions, scope["field"]["options"]); - - oOptions["mainClass"] = "input-file-" + scope["oFormDefinition"][scope["sFormDefinitionName"]]["input_size"]; - // Langue. - if (propertiesSrvc["language"] != "en") - oOptions["language"] = propertiesSrvc["language"]; - // Intégration du plugin "bootstrap-fileinput" dans tous les champ d'upload de fichiers. - $(element)["fileinput"](oOptions); - break; + // case 'file_wsdata': + // + // // Évite la multiplication des champs depuis le studio + // // quand on coche/décoche "Multiple documents" + // if ($(element).parent().find('.file-input').length > 0) { + // $(element).remove(); + // break; + // } + // + // // Si sélection d'un fichier à uploader : sauve ses paramètres. + // element[0].addEventListener("change", function () { + // var oFileList = { + // "aFiles": this.files + // }; + // scope["oFormValues"][scope["sFormDefinitionName"]][element[0].name] = oFileList; + // }, false); + // // Extensions de fichiers autorisées. + // if (typeof(scope["field"]["formats"]) != "undefined" && typeof(scope["field"]["extensions"]) == "undefined") + // scope["field"]["extensions"] = scope["field"]["formats"]; + // if (goog.isDefAndNotNull(scope["field"]["extensions"])) { + // var aFilesExtensions = scope["field"]["extensions"].split('|'); + // for (var iFileExtensionIndex in aFilesExtensions) + // aFilesExtensions[iFileExtensionIndex] = "." + aFilesExtensions[iFileExtensionIndex]; + // element[0].setAttribute("accept", aFilesExtensions.join(",")); + // } + // // Options + // var oOptions = { + // "showPreview": false, + // "showRemove": false, + // "showUpload": false, + // }; + // + // if (typeof (scope["field"]["options"]) !== "undefined") + // goog.object.extend(oOptions, scope["field"]["options"]); + // + // oOptions["mainClass"] = "input-file-" + scope["oFormDefinition"][scope["sFormDefinitionName"]]["input_size"]; + // // Langue. + // if (propertiesSrvc["language"] != "en") + // oOptions["language"] = propertiesSrvc["language"]; + // // Intégration du plugin "bootstrap-fileinput" dans tous les champ d'upload de fichiers. + // $(element)["fileinput"](oOptions); + // break; // case 'image_wsdata': // // // Évite la multiplication des champs depuis le studio