Browse Source

Migrate switch_company_warning to 10

Lint

Switch to old name

[UPD] Update web_switch_company_warning.pot

[ADD] icon.png
pull/1289/head
hparfr 7 years ago
committed by Adrià Gil Sorribes
parent
commit
662c091444
  1. 11
      web_switch_company_warning/__manifest__.py
  2. 36
      web_switch_company_warning/i18n/web_switch_company_warning.pot
  3. BIN
      web_switch_company_warning/static/description/icon.png
  4. 46
      web_switch_company_warning/static/src/js/switch_company_warning.js
  5. 12
      web_switch_company_warning/static/src/js/switch_company_warning_worker.js
  6. 2
      web_switch_company_warning/static/src/xml/switch_company_warning.xml

11
web_switch_company_warning/__manifest__.py

@ -1,15 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# © <2015> <Akretion, OCA>
# Copyright 2017 Akretion <raphael.reverdy@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{ {
"name": "Multicompany - Switch Company Warning", "name": "Multicompany - Switch Company Warning",
"summary": "Show a warning if current company has been switched" "summary": "Show a warning if current company has been switched"
" in another tab or window.",
"version": "8.0.0.1.0",
" in another tab or window.",
"version": "10.0.0.1.0",
"category": "web", "category": "web",
"website": "http://akretion.com", "website": "http://akretion.com",
"license": "AGPL-3", "license": "AGPL-3",
"author": "Akretion / Odoo Community Association (OCA)",
"author": "Akretion, "
"Odoo Community Association (OCA)",
"depends": [ "depends": [
'web', 'web',
], ],
@ -19,6 +20,6 @@
"qweb": [ "qweb": [
"static/src/xml/switch_company_warning.xml", "static/src/xml/switch_company_warning.xml",
], ],
'installable': False,
'installable': True,
"application": False, "application": False,
} }

36
web_switch_company_warning/i18n/web_switch_company_warning.pot

@ -0,0 +1,36 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_switch_company_warning
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: web_switch_company_warning
#. openerp-web
#: code:addons/web_switch_company_warning/static/src/xml/switch_company_warning.xml:6
#, python-format
msgid "Reload"
msgstr ""
#. module: web_switch_company_warning
#. openerp-web
#: code:addons/web_switch_company_warning/static/src/xml/switch_company_warning.xml:5
#, python-format
msgid "You switched to a different company with another tab or window"
msgstr ""
#. module: web_switch_company_warning
#. openerp-web
#: code:addons/web_switch_company_warning/static/src/xml/switch_company_warning.xml:6
#, python-format
msgid "to refresh your session"
msgstr ""

BIN
web_switch_company_warning/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 9.2 KiB

46
web_switch_company_warning/static/src/js/switch_company_warning.js

@ -1,52 +1,46 @@
'use strict'; 'use strict';
openerp.web_switch_company_warning = function (instance) {
odoo.define('web_switch_company_warning.widget', function (require) {
var Widget = require('web.Widget');
var UserMenu = require('web.UserMenu');
//Show a big banner in the top of the page if the company has been //Show a big banner in the top of the page if the company has been
//changed in another tab or window (in the same browser) //changed in another tab or window (in the same browser)
if (!window.SharedWorker)
return; //not supported
instance.web.SwitchCompanyWorker = null; //keep a global reference
instance.web.SwitchCompanyWarningWidget = instance.web.Widget.extend({
if (!window.SharedWorker) {
//not supported
return;
}
var SwitchCompanyWarningWidget = Widget.extend({
template:'web_switch_company_warning.warningWidget', template:'web_switch_company_warning.warningWidget',
init: function() { init: function() {
this._super(); this._super();
var self = this; var self = this;
var w = new SharedWorker('/web_switch_company_warning/static/src/js/switch_company_warning_worker.js');
instance.web.SwitchCompanyWorker = w;
var w = new SharedWorker('/web_switch_company_warning/static/src/js/switch_company_warning_worker.js');
w.port.addEventListener('message', function (msg) { w.port.addEventListener('message', function (msg) {
if (msg.data.type !== 'newCtx')
return;
if(msg.data.newCtx != self.session.company_id) {
self.$el.show();
} else {
if (msg.data.type !== 'newCtx') {
return;
}
if(msg.data.newCtx === self.session.company_id) {
self.$el.hide(); self.$el.hide();
} else {
self.$el.show();
} }
}); });
w.port.start(); w.port.start();
w.port.postMessage(this.session.company_id); w.port.postMessage(this.session.company_id);
} }
}); });
instance.web.UserMenu = instance.web.UserMenu.extend({
UserMenu.include({
init: function(parent) { init: function(parent) {
this._super(parent); this._super(parent);
var switchCompanyWarning = new instance.web.SwitchCompanyWarningWidget();
switchCompanyWarning.insertAfter(instance.webclient.$el.find('#oe_main_menu_navbar'));
var switchCompanyWarning = new SwitchCompanyWarningWidget();
switchCompanyWarning.appendTo('#oe_main_menu_navbar');
} }
}); });
};
return SwitchCompanyWarningWidget;
});

12
web_switch_company_warning/static/src/js/switch_company_warning_worker.js

@ -3,22 +3,20 @@
//changed in another tab or window (in the same browser) //changed in another tab or window (in the same browser)
var con = []; var con = [];
var lastCtx = null;
var lastCtx = null;
addEventListener("connect", function(ee) { addEventListener("connect", function(ee) {
var port = ee.ports[0]; var port = ee.ports[0];
con.push(port); con.push(port);
port.onmessage = function (e) { //addEventListener doesnt seams to work well
port.onmessage = function (e) {
var newCtx = e.data; var newCtx = e.data;
if (lastCtx && newCtx != lastCtx) {
con.map(function (eport) {
eport.postMessage({ type: "newCtx", "newCtx": newCtx, "lastCtx": lastCtx});
if (lastCtx && newCtx !== lastCtx) {
con.forEach(function (eport) {
eport.postMessage({type: "newCtx", "newCtx": newCtx, "lastCtx": lastCtx});
}); });
} }
lastCtx = newCtx; lastCtx = newCtx;
}; };
}, false); }, false);

2
web_switch_company_warning/static/src/xml/switch_company_warning.xml

@ -6,4 +6,4 @@
<p><button onclick="location.reload(true);" class="btn">Reload</button> to refresh your session</p> <p><button onclick="location.reload(true);" class="btn">Reload</button> to refresh your session</p>
</div> </div>
</t> </t>
</template>
</template>
Loading…
Cancel
Save