From 3b44ae55ce8e95090d34302c37254a56c40e5e3a Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Fri, 5 Aug 2016 12:00:18 +0200 Subject: [PATCH] [MIG] web_widget_image_download: Update for v9. --- web_widget_image_download/README.rst | 2 +- web_widget_image_download/__init__.py | 3 -- .../src/css/web_widget_image_download.css | 6 ++- .../src/js/web_widget_image_download.js | 39 ++++++++++--------- 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/web_widget_image_download/README.rst b/web_widget_image_download/README.rst index cc5f3782..675e61b0 100644 --- a/web_widget_image_download/README.rst +++ b/web_widget_image_download/README.rst @@ -26,7 +26,6 @@ Known Issues / Roadmap ====================== * In order to work correctly, this widget has to detect image type, the server should include this information in the `Content-Type` header. Right now, odoo is not doing so, but a fix has been `proposed `_. -* For some unknown reason, the widget does not work in the `Preferences` view, because odoo is not rendering the **QWeb** template. Bug Tracker =========== @@ -43,6 +42,7 @@ Contributors ------------ * Flavio Corpa +* Jairo Llopis Maintainer ---------- diff --git a/web_widget_image_download/__init__.py b/web_widget_image_download/__init__.py index c222227a..e69de29b 100644 --- a/web_widget_image_download/__init__.py +++ b/web_widget_image_download/__init__.py @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2016 Flavio Corpa -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). diff --git a/web_widget_image_download/static/src/css/web_widget_image_download.css b/web_widget_image_download/static/src/css/web_widget_image_download.css index 7b1a6a98..a436cd42 100644 --- a/web_widget_image_download/static/src/css/web_widget_image_download.css +++ b/web_widget_image_download/static/src/css/web_widget_image_download.css @@ -1,6 +1,8 @@ /* Copyright 2016 Flavio Corpa + * Copyright 2016 Jairo Llopis * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ -.openerp .oe_application a.oe_form_binary_file_download { - color: #eee; +.openerp .oe_form .oe_form_field_image .oe_form_field_image_controls +.oe_form_binary_file_download { + color: inherit; } diff --git a/web_widget_image_download/static/src/js/web_widget_image_download.js b/web_widget_image_download/static/src/js/web_widget_image_download.js index 6f204d13..b8556f6d 100644 --- a/web_widget_image_download/static/src/js/web_widget_image_download.js +++ b/web_widget_image_download/static/src/js/web_widget_image_download.js @@ -1,39 +1,42 @@ -/* - * Copyright 2016 Flavio Corpa - * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). - */ -odoo.define('web_widget_image_download', function (require) { +/* Copyright 2016 Flavio Corpa + * Copyright 2016 Jairo Llopis + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ +odoo.define('web_widget_image_download.widget', function (require) { 'use strict'; - var common = require('web.form_common'); + var core = require('web.core'); + var $ = require('$'); - common.FieldBinaryImage.include({ + core.form_widget_registry.get("image").include({ render_value: function () { this._super(); - var $widget = this.$el.find('.oe_form_binary_file_download'); - - this.imgSrc = this.$el.find('img[name="image"]').attr('src'); + this.imgSrc = this.$el.find('img[name="' + this.name + '"]') + .attr('src'); $.ajax({ - type: 'HEAD', + type: 'HEAD', // Avoid downloading full image, just headers url: this.imgSrc, complete: function (xhr) { - // retrieve image type from server ("Content-Type" header) - $widget.attr('download', xhr.getResponseHeader("Content-Type").replace('/', '.')); + $widget.attr( + 'download', + xhr.getResponseHeader("Content-Type") + .replace('/', '.') + ); } }); - // use jquery instead of `replace` with qweb (to avoid breaking inheritance) + // Replace with jQuery to keep inheritance intact if (this.has_custom_image()) { - this.$el.find('.oe_form_binary_file_clear').removeClass('col-md-offset-5'); + this.$el.find('.oe_form_binary_file_clear') + .removeClass('col-md-offset-5'); } $widget.attr('href', this.imgSrc); }, + has_custom_image: function () { - // check if the image of the widget is different from the default placeholder - return this.imgSrc && !this.imgSrc.includes('/placeholder.png'); - } + return this.imgSrc != this.placeholder; + }, }); });