From e981e3312d66cd6fcddef05feda0f49b37a4c858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Debauche=20St=C3=A9phane?= Date: Thu, 10 Oct 2019 12:39:25 +0000 Subject: [IMP] web: many2many_binary, binary, image, add the option ``accepted_file_extensions`` Purpose ======= We want to add an option on the widgets - many2many_binary, - binary, - image This option specifies what file extensions the user can pick from the file input dialog box. Examples ======== ```xml ``` How === Add an option (accepted_file_extensions) in the template ``HiddenInputFile`` (the widget many2many_binary is using this template) So, we can also use this new option in others widgets using ``HiddenInputFile`` In the many2many_binary, read the ``nodeOptions`` and set the widget attribute ``accepted_file_extensions`` We also have to fix some other widget, because an property ``image_only`` was already existing in the template ``HiddenInputFile`` (we just need to replace ``image_only=True`` to ``accepted_file_extensions='image/*'`` The widget ``FieldPdfViewer`` (pdf_viewer) now use the new option to filtrate PDF (instead of removing the and adding ). Tests ===== We also test if the option is correctly set on the - binary - image - many2many_binary Impacted widgets =============== - many2many_binary - image: this widget use ``options="{accepted_file_extensions='image/*'}"`` instead of ``image_only=True`` - tablet_image: same as ``image`` Task #2082815 closes odoo/odoo#38351 Signed-off-by: VincentSchippefilt --- addons/web/static/src/js/fields/basic_fields.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'addons/web/static/src/js/fields/basic_fields.js') diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 2c3e03681db..350dc5f5674 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -1634,6 +1634,7 @@ var AbstractFieldBinary = AbstractField.extend({ this.fields = record.fields; this.useFileAPI = !!window.FileReader; this.max_upload_size = 64 * 1024 * 1024; // 64Mo + this.accepted_file_extensions = (this.nodeOptions && this.nodeOptions.accepted_file_extensions) || this.accepted_file_extensions || '*'; if (!this.useFileAPI) { var self = this; this.fileupload_id = _.uniqueId('o_fileupload'); @@ -1765,6 +1766,7 @@ var FieldBinaryImage = AbstractFieldBinary.extend({ 'i': 'png', 'P': 'svg+xml', }, + accepted_file_extensions: 'image/*', /** * Returns the image URL from a model. * @@ -1976,6 +1978,7 @@ var FieldPdfViewer = FieldBinaryFile.extend({ description: _lt("PDF Viewer"), supportedFieldTypes: ['binary'], template: 'FieldPdfViewer', + accepted_file_extensions: 'application/pdf', /** * @override */ -- cgit v1.2.3