diff --git a/web_widget_open_tab/__manifest__.py b/web_widget_open_tab/__manifest__.py
index d79765a68..223968189 100644
--- a/web_widget_open_tab/__manifest__.py
+++ b/web_widget_open_tab/__manifest__.py
@@ -1,4 +1,4 @@
-# Copyright 2019 Creu Blanca
+# Copyright 2019-2020 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
@@ -9,10 +9,7 @@
'license': 'AGPL-3',
'author': 'Creu Blanca,Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/web',
- 'depends': [
- 'web'
- ],
- 'data': [
- 'views/assets.xml',
- ],
+ 'depends': ['web'],
+ 'data': ['templates/assets.xml'],
+ 'demo': ['demo/res_users_view.xml'],
}
diff --git a/web_widget_open_tab/demo/res_users_view.xml b/web_widget_open_tab/demo/res_users_view.xml
new file mode 100644
index 000000000..eddafa455
--- /dev/null
+++ b/web_widget_open_tab/demo/res_users_view.xml
@@ -0,0 +1,12 @@
+
+
+
+ res.users
+
+
+
+
+
+
+
+
diff --git a/web_widget_open_tab/static/src/js/widget.js b/web_widget_open_tab/static/src/js/widget.js
index 4941d8fe9..9ba80f7a2 100644
--- a/web_widget_open_tab/static/src/js/widget.js
+++ b/web_widget_open_tab/static/src/js/widget.js
@@ -11,6 +11,7 @@ odoo.define('web_widget_open_tab.FieldOpenTab', function(require) {
var FieldOpenTab = AbstractField.extend({
description: "",
+ // We want to maintain it black in order to show nothing on the header
supportedFieldTypes: ['integer'],
events: _.extend({}, AbstractField.prototype.events, {
'click': '_onClick',
@@ -19,13 +20,21 @@ odoo.define('web_widget_open_tab.FieldOpenTab', function(require) {
return true;
},
_getReference: function () {
- var url = new URL(window.location.href);
- return url.hash.replace(/view_type=\w+/i, "view_type=form") + '&id=' + this.res_id;
+ var url = window.location.href;
+ var searchParams = new URLSearchParams(url.split('#')[1]);
+ searchParams.set('view_type', 'form');
+ searchParams.set('id', this.res_id);
+ if (! searchParams.has('model') || searchParams.get('model') !== this.model) {
+ searchParams.set('model', this.model);
+ searchParams.delete('action');
+ }
+ return url.split('#')[0] + '#' + searchParams.toString();
},
_renderReadonly: function () {
- var $content = $(
- ''
- ).addClass('open_tab_widget fa fa-eye');
+ var $content = $("", {
+ "href": this._getReference(),
+ "class": "open_tab_widget fa fa-eye",
+ });
var self = this;
$content.tooltip({
delay: { show: 1000, hide: 0 },
@@ -42,7 +51,7 @@ odoo.define('web_widget_open_tab.FieldOpenTab', function(require) {
});
},
});
- this.$el.append($content)
+ this.$el.append($content);
},
_onClick: function (ev) {
ev.preventDefault();
diff --git a/web_widget_open_tab/static/src/less/open_tab.less b/web_widget_open_tab/static/src/less/open_tab.less
deleted file mode 100644
index b4bb6fd11..000000000
--- a/web_widget_open_tab/static/src/less/open_tab.less
+++ /dev/null
@@ -1,10 +0,0 @@
-.open_tab_widget {
- .child {
- visibility: hidden;
- }
- &:hover {
- .child {
- visibility: visible;
- }
- }
-}
diff --git a/web_widget_open_tab/views/assets.xml b/web_widget_open_tab/templates/assets.xml
similarity index 74%
rename from web_widget_open_tab/views/assets.xml
rename to web_widget_open_tab/templates/assets.xml
index 31ea81804..8f6b9b5a2 100644
--- a/web_widget_open_tab/views/assets.xml
+++ b/web_widget_open_tab/templates/assets.xml
@@ -4,7 +4,6 @@
-