From c58d6411d5e5e870cb20c397ee5cde7d93bbb8c6 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 18 Sep 2014 11:53:09 +0200 Subject: [PATCH] [ADD] allow previewing binary fields --- .../static/src/css/attachment_preview.css | 5 ++ .../static/src/js/attachment_preview.js | 47 ++++++++++++++++++- .../static/src/xml/attachment_preview.xml | 7 +++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/attachment_preview/static/src/css/attachment_preview.css b/attachment_preview/static/src/css/attachment_preview.css index bb2624fd..4878196b 100644 --- a/attachment_preview/static/src/css/attachment_preview.css +++ b/attachment_preview/static/src/css/attachment_preview.css @@ -14,3 +14,8 @@ { display: inherit; } +.openerp .oe_form_field_binary .oe-binary-preview +{ + cursor: pointer; + vertical-align: middle; +} diff --git a/attachment_preview/static/src/js/attachment_preview.js b/attachment_preview/static/src/js/attachment_preview.js index 5f7651b5..b3f42766 100644 --- a/attachment_preview/static/src/js/attachment_preview.js +++ b/attachment_preview/static/src/js/attachment_preview.js @@ -21,13 +21,14 @@ openerp.attachment_preview = function(instance) { + var _t = instance.web._t; openerp.attachment_preview.show_preview = function( attachment_id, attachment_url, attachment_extension, attachment_title) { var url = window.location.origin + '/attachment_preview/static/lib/ViewerJS/index.html#' + attachment_url.replace(window.location.origin, '') + - '&title=' + encodeURIComponent(attachment_title) + + '&title=' + encodeURIComponent(attachment_title || _t('Preview')) + '&ext=.' + encodeURIComponent(attachment_extension); window.open(url); }; @@ -113,4 +114,48 @@ openerp.attachment_preview = function(instance) }); }, }); + instance.web.page.FieldBinaryFileReadonly.include( + { + set_value: function(value) + { + var self = this; + (new instance.web.Model('ir.attachment')).call( + 'get_binary_extension', + [ + this.view.dataset.model, + this.view.datarecord.id ? [this.view.datarecord.id] : [], + this.name, + this.node.attrs.filename, + ], + {}) + .then(function(extensions) + { + _(extensions).each(function(extension) + { + var $element = self.$element.find('.oe-binary-preview'); + if(openerp.attachment_preview.can_preview(extension)) + { + $element.click(function() + { + openerp.attachment_preview.show_preview( + null, + _.str.sprintf( + '/web/binary/saveas?session_id=%s&model=%s&field=%s&id=%d', + instance.connection.session_id, + self.view.dataset.model, + self.name, + self.view.datarecord.id), + extension, + self.view.datarecord[self.node.attrs.filename]); + }); + } + else + { + $element.remove(); + } + }); + }); + return this._super.apply(this, arguments); + }, + }); } diff --git a/attachment_preview/static/src/xml/attachment_preview.xml b/attachment_preview/static/src/xml/attachment_preview.xml index f6e7dfa9..1d2ad047 100644 --- a/attachment_preview/static/src/xml/attachment_preview.xml +++ b/attachment_preview/static/src/xml/attachment_preview.xml @@ -7,4 +7,11 @@ + + + + + + +