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 803ca465d6ddc263bd7dbc88887737965991c775..74c36fce529ab1b10f78e76a4c2f9f9a4c61b25b 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 @@ -8,9 +8,9 @@ <!-- Visioneuse Images --> <div ng-if="field.type === 'image_wsdata'" class="preview-images-zone"> <div ng-repeat="image in aPreviewImages" - ng-class="{'preview-image-small' : aPreviewImages.length > 4}" + ng-class="{'preview-image-small' : aPreviewImages.length > 1}" class="preview-image preview-show-{{$index}}"> - <div class="image-cancel" data-no="{{$index}}" ng-click="removeImage(image)">x</div> + <div class="image-cancel" data-no="{{$index}}" ng-click="removeFile(image)">x</div> <div class="image-zone"><img id="pro-img-{{$index}}" ng-src="{{image.src}}"></div> <div class="tools-edit-image"> <a href="javascript:void(0)" @@ -22,7 +22,7 @@ </div> </div> <div ng-if="!field.displayOnly" - ng-class="{'preview-image-small' : aPreviewImages.length > 4}" + ng-class="{'preview-image-small' : aPreviewImages.length > 1}" class="preview-image preview-show-{{$index}}"> <div class="image-add" ng-click="searchNewFile()"><span class="icon-plus"></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 6de54f6e52ed6d4b482c6f313f2d32f10ad676ae..a4f8d77f7592c35979f40e2f7800a094ecc34faf 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 @@ -61,8 +61,6 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie scope['aFiles'].push(files[i]); } } - - console.log("scope['aFiles']: ", scope['aFiles']); } /** @@ -105,26 +103,51 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie */ scope['initImagesPreview'] = function() { - scope['aPreviewImages'] = []; + // Vide les images qui ont étés supprimées de aFiles + var bIsPresent; + for (var i = scope['aPreviewImages'].length - 1; i >= 0; i--) { + bIsPresent = false; + for (var ii = 0; ii < scope['aFiles'].length; ii++) { + if (!bIsPresent) { + if(scope['aPreviewImages'][i]['name'] === scope['aFiles'][ii]['name']){ + bIsPresent = true; + } + } + } + if (!bIsPresent) { + scope['aPreviewImages'].splice(i, 1); + } + } + // Ajoute les nouvelles images var file; for (var i = 0; i < scope['aFiles'].length; i++) { + bIsPresent = false; file = scope['aFiles'][i]; if (!file.type.match('image')) continue; - var picReader = new FileReader(); - picReader.addEventListener('load', angular.bind(this, function (file, event) { - var picFile = event.target; - scope.$applyAsync(function(){ - scope['aPreviewImages'].push({ - 'name': file['name'], - 'src': picFile['result'] - }); - }); - }, file)); + // Vérifie que l'image ne soit pas déjà ajoutée + for (var ii = 0; ii < scope['aPreviewImages'].length; ii++) { + if(scope['aFiles'][i]['name'] === scope['aPreviewImages'][ii]['name']){ + bIsPresent = true; + } + } - picReader.readAsDataURL(file); + // Ajoute les nouvelles images + if (!bIsPresent) { + var picReader = new FileReader(); + picReader.addEventListener('load', angular.bind(this, function (file, event) { + var picFile = event.target; + scope.$applyAsync(function(){ + scope['aPreviewImages'].push({ + 'name': file['name'], + 'src': picFile['result'] + }); + }); + }, file)); + picReader.readAsDataURL(file); + } } } @@ -145,13 +168,25 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie } /** - * Remove the given image + * Remove the given file * @param {object} oImage * @export */ - scope['removeImage'] = function(oImage) { - console.log("removeImage: ", oImage); + scope['removeFile'] = function(oFile) { + console.log("removeFile: ", oFile); + for (var i = 0; i < scope['aFiles'].length; i++) { + if(scope['aFiles'][i]['name'] === oFile['name']){ + scope['aFiles'].splice(i, 1); + } + } + + // Affichage des images + if (scope['field']['type'] === 'image_wsdata') { + setTimeout(function () { + scope['initImagesPreview'](); + }); + } } /**