Browse Source

[MIG] web_widget_image_download

pull/945/head
kutyel 8 years ago
committed by Pedro M. Baeza
parent
commit
0d9db0eb38
  1. 60
      web_widget_image_download/README.rst
  2. 3
      web_widget_image_download/__init__.py
  3. 23
      web_widget_image_download/__openerp__.py
  4. BIN
      web_widget_image_download/static/description/icon.png
  5. 6
      web_widget_image_download/static/src/css/web_widget_image_download.css
  6. 39
      web_widget_image_download/static/src/js/web_widget_image_download.js
  7. 13
      web_widget_image_download/static/src/xml/web_widget_image_download.xml
  8. 16
      web_widget_image_download/views/assets.xml

60
web_widget_image_download/README.rst

@ -0,0 +1,60 @@
.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
===========================
Web Widget - Image Download
===========================
This module was written to extend the functionality of the image widget and allows to download it.
Usage
=====
To use this module, you need to:
#. Go to the section `Contacts`.
#. Click on a contact.
#. Edit the contact.
#. Click the `Download` button (between `Edit` and `Clear`).
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/162/8.0
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 <https://github.com/odoo/odoo/pull/12918>`_.
* For some unknown reason, the widget does not work in the `Preferences` view, because odoo is not rendering the **QWeb** template.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/web/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed feedback.
Credits
=======
Contributors
------------
* Flavio Corpa <flavio.corpa@tecnativa.com>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

3
web_widget_image_download/__init__.py

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright 2016 Flavio Corpa <flavio.corpa@tecnativa.com>
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

23
web_widget_image_download/__openerp__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# Copyright 2016 Flavio Corpa <flavio.corpa@tecnativa.com>
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
"name": "Web Widget - Image Download",
"summary": "Allows to download any image from its widget",
"version": "9.0.1.0.0",
"category": "web",
"website": "https://www.tecnativa.com",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "LGPL-3",
"application": False,
"installable": True,
"data": [
"views/assets.xml",
],
"depends": [
"web",
],
"qweb": [
"static/src/xml/web_widget_image_download.xml",
]
}

BIN
web_widget_image_download/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 17 KiB

6
web_widget_image_download/static/src/css/web_widget_image_download.css

@ -0,0 +1,6 @@
/* Copyright 2016 Flavio Corpa <flavio.corpa@tecnativa.com>
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
.openerp .oe_application a.oe_form_binary_file_download {
color: #eee;
}

39
web_widget_image_download/static/src/js/web_widget_image_download.js

@ -0,0 +1,39 @@
/*
* Copyright 2016 Flavio Corpa <flavio.corpa@tecnativa.com>
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
*/
odoo.define('web_widget_image_download', function (require) {
'use strict';
var common = require('web.form_common');
common.FieldBinaryImage.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');
$.ajax({
type: 'HEAD',
url: this.imgSrc,
complete: function (xhr) {
// retrieve image type from server ("Content-Type" header)
$widget.attr('download', xhr.getResponseHeader("Content-Type").replace('/', '.'));
}
});
// use jquery instead of `replace` with qweb (to avoid breaking inheritance)
if (this.has_custom_image()) {
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');
}
});
});

13
web_widget_image_download/static/src/xml/web_widget_image_download.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2016 Flavio Corpa <flavio.corpa@tecnativa.com>
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<template>
<t t-extend="FieldBinaryImage">
<t t-jquery=".oe_form_binary_file_edit" t-operation="after">
<t t-if="widget.has_custom_image()">
<a class="fa fa-download fa-1g col-md-4 oe_form_binary_file_download" title="Download"></a>
</t>
</t>
</t>
</template>

16
web_widget_image_download/views/assets.xml

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2016 Flavio Corpa <flavio.corpa@tecnativa.com>
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<odoo>
<template id="assets_backend" inherit_id="web.assets_backend">
<xpath expr=".">
<link rel="stylesheet"
href="/web_widget_image_download/static/src/css/web_widget_image_download.css"/>
<script type="text/javascript"
src="/web_widget_image_download/static/src/js/web_widget_image_download.js"/>
</xpath>
</template>
</odoo>
Loading…
Cancel
Save