diff --git a/muk_web_preview/README.md b/muk_web_preview/README.md deleted file mode 100644 index 774f0f5..0000000 --- a/muk_web_preview/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# MuK Preview - -MuK Preview enables support to preview binary files directly in Odoo. It adds -a button to the binary field, which opens a file preview dialog. The preview can be -easily extended by adding new Handlers to the Preview Generator. - -## Extend MuK Preview - -To extend the preview a new "PreviewHandler" has to be created and subsequently added to the "PreviewGenerator". -In the following steps show the implementation of the image preview. - -### PreviewHandler - -```javascript -odoo.define('muk_preview_image.PreviewHandler', function (require) { -"use strict"; - -var core = require('web.core'); - -var PreviewHandler = require('muk_preview.PreviewHandler'); - -var QWeb = core.qweb; -var _t = core._t; - -var ImageHandler = PreviewHandler.BaseHandler.extend({ - checkExtension: function(extension) { - return ['.cod', '.ras', '.fif', '.gif', '.ief', '.jpeg', '.jpg', '.jpe', '.png', '.tiff', - '.tif', '.mcf', '.wbmp', '.fh4', '.fh5', '.fhc', '.ico', '.pnm', '.pbm', '.pgm', - '.ppm', '.rgb', '.xwd', '.xbm', '.xpm', 'cod', 'ras', 'fif', 'gif', 'ief', 'jpeg', - 'jpg', 'jpe', 'png', 'tiff', '.tif', 'mcf', 'wbmp', 'fh4', 'fh5', 'fhc', 'ico', - 'pnm', 'pbm', 'pgm', '.ppm', 'rgb', 'xwd', 'xbm', 'xpm'].includes(extension); - }, - checkType: function(mimetype) { - return ['image/cis-cod', 'image/cmu-raster', 'image/fif', 'image/gif', 'image/ief', 'image/jpeg', - 'image/png', 'image/tiff', 'image/vasa', 'image/vnd.wap.wbmp', 'image/x-freehand', 'image/x-icon', - 'image/x-portable-anymap', 'image/x-portable-bitmap', 'image/x-portable-graymap', 'image/x-portable-pixmap', - 'image/x-rgb', 'image/x-windowdump', 'image/x-xbitmap', 'image/x-xpixmap'].includes(mimetype); - }, - createHtml: function(url, mimetype, extension, title) { - var result = $.Deferred(); - var $content = $(QWeb.render('ImageHTMLContent', {url: url, alt: title})); - $content.find('img').click(function (e) { - ImageViewer().show(this.src, this.src); - }); - result.resolve($content); - return $.when(result); - }, -}); - -return { - ImageHandler: ImageHandler, -} - -}); -``` - -### PreviewGenerator - -```javascript -odoo.define('muk_preview_image.PreviewGenerator', function (require) { -"use strict"; - -var core = require('web.core'); - -var PreviewGenerator = require('muk_preview.PreviewGenerator'); -var PreviewHandler = require('muk_preview_image.PreviewHandler'); - -var QWeb = core.qweb; -var _t = core._t; - -PreviewGenerator.include({ - init: function(widget, additional_handler) { - this._super(widget, additional_handler); - this.handler = _.extend(this.handler, { - "ImageHandler": new PreviewHandler.ImageHandler(widget), - }); - }, -}); - -}); -``` \ No newline at end of file diff --git a/muk_web_preview/__init__.py b/muk_web_preview/__init__.py index 48ccf85..21f21ae 100644 --- a/muk_web_preview/__init__.py +++ b/muk_web_preview/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - ################################################################################### # # Copyright (C) 2017 MuK IT GmbH diff --git a/muk_web_preview/__manifest__.py b/muk_web_preview/__manifest__.py index 99a09d1..4dd63a6 100644 --- a/muk_web_preview/__manifest__.py +++ b/muk_web_preview/__manifest__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - ################################################################################### # # Copyright (C) 2017 MuK IT GmbH @@ -22,17 +20,11 @@ { "name": "MuK Preview", "summary": """File Preview Dialog""", - "description": """ - Adds a button to the FieldBinaryFile form widget to - preview the file content directly in the browser. - Currently the following file extensions are supported: - - Portable Document Format (.pdf) - - Open Document (.odt, .odp, .ods, .otp) - """, - "version": "11.0.1.1.0", + "version": "11.0.2.0.0", "category": "Extra Tools", "license": "AGPL-3", "website": "http://www.mukit.at", + "live_test_url": "https://demo.mukit.at/web/login", "author": "MuK IT", "contributors": [ "Mathias Markl ", @@ -40,6 +32,7 @@ "depends": [ "base", "web", + "muk_web_utils", ], "data": [ "template/assets.xml", diff --git a/muk_web_preview/demo/preview_demo.xml b/muk_web_preview/demo/preview_demo.xml index b98a727..aaf3ca8 100644 --- a/muk_web_preview/demo/preview_demo.xml +++ b/muk_web_preview/demo/preview_demo.xml @@ -1,6 +1,23 @@ - - + + + + sample.pdf @@ -8,5 +25,4 @@ - \ No newline at end of file diff --git a/muk_web_preview/doc/changelog.rst b/muk_web_preview/doc/changelog.rst index 0a9ed4b..1707839 100644 --- a/muk_web_preview/doc/changelog.rst +++ b/muk_web_preview/doc/changelog.rst @@ -1,9 +1,14 @@ +`2.0.0` +------- + +- Migrated to Python 3 +- Moved libraries to Web Utils + `1.1.0` ------- - Lazy load javascript - `1.0.0` ------- diff --git a/muk_web_preview/doc/index.rst b/muk_web_preview/doc/index.rst new file mode 100644 index 0000000..e824fff --- /dev/null +++ b/muk_web_preview/doc/index.rst @@ -0,0 +1,126 @@ +=========== +MuK Preview +=========== + +MuK Preview enables support to preview binary files directly in Odoo. It adds a +button to the binary field, which opens a file preview dialog. The preview can +be easily extended by adding new Handlers to the Preview Generator. + +Installation +============ + +To install this module, you need to: + +Download the module and add it to your Odoo addons folder. Afterward, log on to +your Odoo server and go to the Apps menu. Trigger the debug modus and update the +list by clicking on the "Update Apps List" link. Now install the module by +clicking on the install button. + +Configuration +============= + +No additional configuration is needed to use this module. + +Usage +============= + +To each Binary Field Widget a button is added, which opens the Preview Dialog. + +Framework +============= + +To extend the preview a new "PreviewHandler" has to be created and subsequently added to the "PreviewGenerator". +In the following steps show the implementation of the image preview. + +PreviewHandler +-------------- + +.. code-block:: javascript + + odoo.define('muk_preview_image.PreviewHandler', function (require) { + "use strict"; + + var core = require('web.core'); + + var PreviewHandler = require('muk_preview.PreviewHandler'); + + var QWeb = core.qweb; + var _t = core._t; + + var ImageHandler = PreviewHandler.BaseHandler.extend({ + checkExtension: function(extension) { + return ['.cod', '.ras', '.fif', '.gif', '.ief', '.jpeg', '.jpg', '.jpe', '.png', '.tiff', + '.tif', '.mcf', '.wbmp', '.fh4', '.fh5', '.fhc', '.ico', '.pnm', '.pbm', '.pgm', + '.ppm', '.rgb', '.xwd', '.xbm', '.xpm', 'cod', 'ras', 'fif', 'gif', 'ief', 'jpeg', + 'jpg', 'jpe', 'png', 'tiff', '.tif', 'mcf', 'wbmp', 'fh4', 'fh5', 'fhc', 'ico', + 'pnm', 'pbm', 'pgm', '.ppm', 'rgb', 'xwd', 'xbm', 'xpm'].includes(extension); + }, + checkType: function(mimetype) { + return ['image/cis-cod', 'image/cmu-raster', 'image/fif', 'image/gif', 'image/ief', 'image/jpeg', + 'image/png', 'image/tiff', 'image/vasa', 'image/vnd.wap.wbmp', 'image/x-freehand', 'image/x-icon', + 'image/x-portable-anymap', 'image/x-portable-bitmap', 'image/x-portable-graymap', 'image/x-portable-pixmap', + 'image/x-rgb', 'image/x-windowdump', 'image/x-xbitmap', 'image/x-xpixmap'].includes(mimetype); + }, + createHtml: function(url, mimetype, extension, title) { + var result = $.Deferred(); + var $content = $(QWeb.render('ImageHTMLContent', {url: url, alt: title})); + $content.find('img').click(function (e) { + ImageViewer().show(this.src, this.src); + }); + result.resolve($content); + return $.when(result); + }, + }); + + return { + ImageHandler: ImageHandler, + } + + }); + +PreviewGenerator +---------------- + +.. code-block:: javascript + + odoo.define('muk_preview_image.PreviewGenerator', function (require) { + "use strict"; + + var core = require('web.core'); + + var PreviewGenerator = require('muk_preview.PreviewGenerator'); + var PreviewHandler = require('muk_preview_image.PreviewHandler'); + + var QWeb = core.qweb; + var _t = core._t; + + PreviewGenerator.include({ + init: function(widget, additional_handler) { + this._super(widget, additional_handler); + this.handler = _.extend(this.handler, { + "ImageHandler": new PreviewHandler.ImageHandler(widget), + }); + }, + }); + + }); + +Credits +======= + +Contributors +------------ + +* Mathias Markl + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +MuK IT is an Austrian company specialized in customizing and extending Odoo. +We develop custom solutions for your individual needs to help you focus on +your strength and expertise to grow your business. + +If you want to get in touch please contact us via mail +(sale@mukit.at) or visit our website (https://mukit.at). diff --git a/muk_web_preview/static/description/index.html b/muk_web_preview/static/description/index.html index 06083a2..7e520f4 100644 --- a/muk_web_preview/static/description/index.html +++ b/muk_web_preview/static/description/index.html @@ -4,7 +4,7 @@

Preview your files directly in Odoo.

MuK IT GmbH - www.mukit.at

-
+
@@ -12,7 +12,7 @@
-
+

Overview

MuK Preview enables support to preview binary files directly in Odoo. It adds a button to the @@ -232,14 +232,46 @@

+
+

Demo

+
+
+
User:
+
+
+
apps
+
+
+
Password:
+
+
+
demo
+
+
+ +
+

Help and Support

+
Feel free to + contact us, if you need any help with your Odoo integration or + addiontal features.
'); + var viewerUrlTempalte = _.template('/muk_web_utils/static/lib/PDFjs/web/viewer.html?file=<%= url %>'); result.resolve($(QWeb.render('ViewerJSFrame', {url: viewerUrlTempalte({url})}))); return result; }, @@ -66,7 +66,7 @@ var OpenOfficeHandler = BaseHandler.extend({ }, createHtml: function(url, mimetype, extension, title) { var result = $.Deferred(); - var viewerUrlTempalte = _.template('/muk_web_preview/static/lib/ViewerJS/index.html#<%= url %>'); + var viewerUrlTempalte = _.template('/muk_web_utils/static/lib/ViewerJS/index.html#<%= url %>'); result.resolve($(QWeb.render('ViewerJSFrame', {url: viewerUrlTempalte({url})}))); return result; }, @@ -76,6 +76,6 @@ return { BaseHandler: BaseHandler, PDFHandler: PDFHandler, OpenOfficeHandler: OpenOfficeHandler, -} +}; }); \ No newline at end of file diff --git a/muk_web_preview/static/src/less/preview_content.less b/muk_web_preview/static/src/less/preview_content.less index d05b296..9d7279b 100644 --- a/muk_web_preview/static/src/less/preview_content.less +++ b/muk_web_preview/static/src/less/preview_content.less @@ -67,7 +67,6 @@ } } -/* Based on a CodePen Snippet by Dave McCarthy */ .loader { height: 20px; width: 250px; diff --git a/muk_web_preview/static/test/test.js b/muk_web_preview/static/test/tour.js similarity index 72% rename from muk_web_preview/static/test/test.js rename to muk_web_preview/static/test/tour.js index 94e2587..6e4c2a9 100644 --- a/muk_web_preview/static/test/test.js +++ b/muk_web_preview/static/test/tour.js @@ -11,22 +11,22 @@ var name = 'preview'; var options = { test: true, - url: '/web', + url: '/web?debug=', wait_for: base.ready() -} +}; var setps = [ { content: 'open menu_administration', - trigger: 'a.oe_menu_toggler[data-menu-xmlid="base.menu_administration"]', + trigger: 'a[data-menu-xmlid="base.menu_administration"]', run: 'click', },{ - content: 'open next_id_9', - trigger: 'a.oe_menu_toggler[data-menu-xmlid="base.next_id_9"]', + content: 'open menu_custom', + trigger: 'a[data-menu-xmlid="base.menu_custom"]', run: 'click', },{ content: 'open menu_action_attachment', - trigger: 'a.oe_menu_leaf[data-menu-xmlid="base.menu_action_attachment"]', + trigger: 'a[data-menu-xmlid="base.menu_action_attachment"]', run: 'click', },{ content: 'search sample.pdf', @@ -38,6 +38,11 @@ var setps = [ trigger: 'ul.o_searchview_autocomplete li a', extra_trigger: 'div.o_main_content > div.o_control_panel li.active:contains("Attachment")', run: 'click', + },{ + content: 'switch to list view', + trigger: '.o_cp_switch_list', + extra_trigger: 'div.o_main_content > div.o_control_panel li.active:contains("Attachment")', + run: 'click', },{ content: 'open form view', trigger: 'td.o_data_cell:contains("sample.pdf")', diff --git a/muk_web_preview/template/assets.xml b/muk_web_preview/template/assets.xml index 29ebdbc..85c8b11 100644 --- a/muk_web_preview/template/assets.xml +++ b/muk_web_preview/template/assets.xml @@ -29,7 +29,7 @@