diff --git a/client/javascript/externs/formReader/component/file_picker/file_picker.html b/client/javascript/externs/formReader/component/file_picker/file_picker.html index 2c96555bfb9f0561207770d455d2262aefbd486e..4a3243d8b3ef881c2a5b1e69cd1309c8f4dec536 100644 --- a/client/javascript/externs/formReader/component/file_picker/file_picker.html +++ b/client/javascript/externs/formReader/component/file_picker/file_picker.html @@ -50,21 +50,23 @@ <!-- Bouton caché input --> <div class="hide" ng-if="!field.displayOnly"> + <!-- Simple --> <input ng-if="!field.multiple" type="file" id="{{:refresh:field.id}}_hidden" class="file" name="{{:refresh:field.name}}" class="form-control" - ng-attr-accept="{{ field.type === 'image_wsdata' ? 'image/*' : '*' }}" + ng-attr-accept="{{ field.type === 'image_wsdata' ? 'image/*' : (field.formats.length > 0 ? getFormatsRestrict() : '*') }}" ng-required="field.required"> + <!-- Multiple --> <input ng-if="field.multiple" type="file" id="{{:refresh:field.id}}_hidden" class="file" name="{{:refresh:field.name}}" class="form-control" - ng-attr-accept="{{ field.type === 'image_wsdata' ? 'image/*' : '*' }}" + ng-attr-accept="{{ field.type === 'image_wsdata' ? 'image/*' : (field.formats.length > 0 ? getFormatsRestrict() : '*') }}" ng-required="field.required" multiple> </div> diff --git a/client/javascript/externs/formReader/component/file_picker/file_picker.js b/client/javascript/externs/formReader/component/file_picker/file_picker.js index de03a59f4181ba0609b3dd091076af01f1ded130..6ae3324962dfceca6e2d9012e0c5959ed05771af 100644 --- a/client/javascript/externs/formReader/component/file_picker/file_picker.js +++ b/client/javascript/externs/formReader/component/file_picker/file_picker.js @@ -691,6 +691,32 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie // Fichiers à envoyer scope['oFormValues'][scope['sFormDefinitionName']][scope['field'].name] = scope['aFiles']; } + + /** + * Retourne les restrictions de type input=file + */ + scope['getFormatsRestrict'] = function() { + + var sRestrictedFormats; + var aImgExtencions = ['']; + + if (goog.isString(scope.field.formats)) { + + var aRestrictedFormats = []; + var aFormats = scope.field.formats.split('|'); + + for (var i = 0; i < aFormats.length; i++) { + aRestrictedFormats.push('.' + aFormats[i]); + } + + sRestrictedFormats = aRestrictedFormats.join(', '); + + } else { + sRestrictedFormats = scope.field.formats; + } + + return sRestrictedFormats; + } } }; };