From 73a5af01bd30e616764cede82af7aa47c008b647 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Mon, 22 Sep 2014 17:21:31 +0200 Subject: [PATCH] [FIX] allow previewing arbitrary binary fields --- .../static/src/js/attachment_preview.js | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/attachment_preview/static/src/js/attachment_preview.js b/attachment_preview/static/src/js/attachment_preview.js index 1fe7e699..42697ef2 100644 --- a/attachment_preview/static/src/js/attachment_preview.js +++ b/attachment_preview/static/src/js/attachment_preview.js @@ -125,7 +125,8 @@ openerp.attachment_preview = function(instance) self = this; deferred.then(function() { - self.$el.find('.oe-binary-preview').click(function(e) + var $elements = self.$el.find('.oe-binary-preview'); + $elements.click(function(e) { e.stopPropagation(); var $target = jQuery(e.currentTarget), @@ -138,23 +139,24 @@ openerp.attachment_preview = function(instance) _t('Preview')); }); return (new instance.web.Model('ir.attachment')).call( - 'get_attachment_extension', + 'get_binary_extension', [ - self.$el.find('.oe-binary-preview') + $elements.attr('data-model'), + $elements .map(function() { return parseInt(jQuery(this).attr('data-id')); }) - .get() + .get(), + $elements.attr('data-field'), ], {}) .then(function(extensions) { _(extensions).each(function(extension, id) { - var $element = jQuery( - 'img.oe-binary-preview[data-id="' - + id + '"]'); + var $element = $elements.filter( + '[data-id="' + id + '"]'); if(openerp.attachment_preview.can_preview(extension)) { $element.attr('data-extension', extension); @@ -175,10 +177,12 @@ openerp.attachment_preview = function(instance) { var link = this._super.apply(this, arguments); link += _.template( - '<%-preview_text%>', + '<%-preview_text%>', { preview_id: options.id, preview_text: _t('Preview'), + preview_model: options.model, + preview_field: this.id, }); return link; }