forked from Techsystech/web
[IMP] web_notify: migration improvements
- Use ES6 in js files - Update screenshots - Clean old lint exceptions - New icon TT3835018.0
parent
5c6085d4a6
commit
304f519749
|
@ -14,13 +14,13 @@ Web Notify
|
||||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||||
:alt: License: AGPL-3
|
:alt: License: AGPL-3
|
||||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
|
||||||
:target: https://github.com/OCA/web/tree/14.0/web_notify
|
:target: https://github.com/OCA/web/tree/15.0/web_notify
|
||||||
:alt: OCA/web
|
:alt: OCA/web
|
||||||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||||
:target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_notify
|
:target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_notify
|
||||||
:alt: Translate me on Weblate
|
:alt: Translate me on Weblate
|
||||||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
|
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
|
||||||
:target: https://runbot.odoo-community.org/runbot/162/14.0
|
:target: https://runbot.odoo-community.org/runbot/162/15.0
|
||||||
:alt: Try me on Runbot
|
:alt: Try me on Runbot
|
||||||
|
|
||||||
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
||||||
|
@ -50,7 +50,7 @@ Usage
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
|
||||||
To send a notification to the logged in user or target audience you just need to call one of the new methods defined on res.users:
|
To send a notification to the user you just need to call one of the new methods defined on res.users:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
@ -80,14 +80,14 @@ or
|
||||||
|
|
||||||
self.env.user.notify_default(message='My default message')
|
self.env.user.notify_default(message='My default message')
|
||||||
|
|
||||||
.. figure:: https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/notifications_screenshot.png
|
.. figure:: https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/notifications_screenshot.gif
|
||||||
:scale: 80 %
|
:scale: 80 %
|
||||||
:alt: Sample notifications
|
:alt: Sample notifications
|
||||||
|
|
||||||
You can test the behaviour of the notifications by installing this module in a demo database.
|
You can test the behaviour of the notifications by installing this module in a demo database.
|
||||||
Access the users form through Settings -> Users & Companies. You'll see a tab called "Test web notify", here you'll find five buttons that'll allow you test the module.
|
Access the users form through Settings -> Users & Companies. You'll see a tab called "Test web notify", here you'll find two buttons that'll allow you test the module.
|
||||||
|
|
||||||
.. figure:: https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/test_notifications_demo.png
|
.. figure:: https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/test_notifications_demo.png
|
||||||
:scale: 80 %
|
:scale: 80 %
|
||||||
:alt: Sample notifications
|
:alt: Sample notifications
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ Bug Tracker
|
||||||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
|
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.
|
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
|
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||||
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||||
|
|
||||||
Do not contact contributors directly about support or help with technical issues.
|
Do not contact contributors directly about support or help with technical issues.
|
||||||
|
|
||||||
|
@ -118,6 +118,9 @@ Contributors
|
||||||
* Aitor Bouzas <aitor.bouzas@adaptivecity.com>
|
* Aitor Bouzas <aitor.bouzas@adaptivecity.com>
|
||||||
* Shepilov Vladislav <shepilov.v@protonmail.com>
|
* Shepilov Vladislav <shepilov.v@protonmail.com>
|
||||||
* Kevin Khao <kevin.khao@akretion.com>
|
* Kevin Khao <kevin.khao@akretion.com>
|
||||||
|
* `Tecnativa <https://www.tecnativa.com>`_:
|
||||||
|
|
||||||
|
* David Vidal
|
||||||
|
|
||||||
Maintainers
|
Maintainers
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
@ -132,6 +135,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||||
mission is to support the collaborative development of Odoo features and
|
mission is to support the collaborative development of Odoo features and
|
||||||
promote its widespread use.
|
promote its widespread use.
|
||||||
|
|
||||||
This module is part of the `OCA/web <https://github.com/OCA/web/tree/14.0/web_notify>`_ project on GitHub.
|
This module is part of the `OCA/web <https://github.com/OCA/web/tree/15.0/web_notify>`_ project on GitHub.
|
||||||
|
|
||||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||||
|
|
|
@ -14,8 +14,7 @@
|
||||||
"depends": ["web", "bus", "base", "mail"],
|
"depends": ["web", "bus", "base", "mail"],
|
||||||
"assets": {
|
"assets": {
|
||||||
"web.assets_backend": [
|
"web.assets_backend": [
|
||||||
"web_notify/static/src/js/services/notification.js",
|
"web_notify/static/src/js/services/*.js",
|
||||||
"web_notify/static/src/js/services/notification_services.js",
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"demo": ["views/res_users_demo.xml"],
|
"demo": ["views/res_users_demo.xml"],
|
||||||
|
|
|
@ -1,4 +1 @@
|
||||||
# pylint: disable=missing-docstring
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from . import res_users
|
from . import res_users
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
# pylint: disable=missing-docstring
|
|
||||||
# Copyright 2016 ACSONE SA/NV
|
# Copyright 2016 ACSONE SA/NV
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
|
||||||
from odoo import _, api, exceptions, fields, models
|
from odoo import _, api, exceptions, fields, models
|
||||||
|
|
||||||
from odoo.addons.bus.models.bus import channel_with_db, json_dump
|
from odoo.addons.bus.models.bus import channel_with_db, json_dump
|
||||||
|
@ -82,7 +79,6 @@ class ResUsers(models.Model):
|
||||||
sticky=False,
|
sticky=False,
|
||||||
target=None,
|
target=None,
|
||||||
):
|
):
|
||||||
# pylint: disable=protected-access
|
|
||||||
if not self.env.user._is_admin() and any(
|
if not self.env.user._is_admin() and any(
|
||||||
user.id != self.env.uid for user in self
|
user.id != self.env.uid for user in self
|
||||||
):
|
):
|
||||||
|
|
|
@ -3,3 +3,6 @@
|
||||||
* Aitor Bouzas <aitor.bouzas@adaptivecity.com>
|
* Aitor Bouzas <aitor.bouzas@adaptivecity.com>
|
||||||
* Shepilov Vladislav <shepilov.v@protonmail.com>
|
* Shepilov Vladislav <shepilov.v@protonmail.com>
|
||||||
* Kevin Khao <kevin.khao@akretion.com>
|
* Kevin Khao <kevin.khao@akretion.com>
|
||||||
|
* `Tecnativa <https://www.tecnativa.com>`_:
|
||||||
|
|
||||||
|
* David Vidal
|
||||||
|
|
|
@ -29,7 +29,7 @@ or
|
||||||
|
|
||||||
self.env.user.notify_default(message='My default message')
|
self.env.user.notify_default(message='My default message')
|
||||||
|
|
||||||
.. figure:: static/description/notifications_screenshot.png
|
.. figure:: static/description/notifications_screenshot.gif
|
||||||
:scale: 80 %
|
:scale: 80 %
|
||||||
:alt: Sample notifications
|
:alt: Sample notifications
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
|
<meta name="generator" content="Docutils: http://docutils.sourceforge.net/" />
|
||||||
<title>Web Notify</title>
|
<title>Web Notify</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|
||||||
|
@ -367,10 +367,10 @@ ul.auto-toc {
|
||||||
!! This file is generated by oca-gen-addon-readme !!
|
!! This file is generated by oca-gen-addon-readme !!
|
||||||
!! changes will be overwritten. !!
|
!! changes will be overwritten. !!
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_notify"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_notify"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_notify"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_notify"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||||
<p>Send instant notification messages to the user in live.</p>
|
<p>Send instant notification messages to the user in live.</p>
|
||||||
<p>This technical module allows you to send instant notification messages from the server to the user in live.
|
<p>This technical module allows you to send instant notification messages from the server to the user in live.
|
||||||
Five kinds of notification are supported.</p>
|
Two kinds of notification are supported.</p>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>Success: Displayed in a <cite>success</cite> theme color flying popup div</li>
|
<li>Success: Displayed in a <cite>success</cite> theme color flying popup div</li>
|
||||||
<li>Danger: Displayed in a <cite>danger</cite> theme color flying popup div</li>
|
<li>Danger: Displayed in a <cite>danger</cite> theme color flying popup div</li>
|
||||||
|
@ -419,12 +419,12 @@ Five kinds of notification are supported.</p>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">notify_default</span><span class="p">(</span><span class="n">message</span><span class="o">=</span><span class="s1">'My default message'</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">notify_default</span><span class="p">(</span><span class="n">message</span><span class="o">=</span><span class="s1">'My default message'</span><span class="p">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/notifications_screenshot.png" />
|
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/notifications_screenshot.gif" />
|
||||||
</div>
|
</div>
|
||||||
<p>You can test the behaviour of the notifications by installing this module in a demo database.
|
<p>You can test the behaviour of the notifications by installing this module in a demo database.
|
||||||
Access the users form through Settings -> Users & Companies. You’ll see a tab called “Test web notify”, here you’ll find two buttons that’ll allow you test the module.</p>
|
Access the users form through Settings -> Users & Companies. You’ll see a tab called “Test web notify”, here you’ll find two buttons that’ll allow you test the module.</p>
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/test_notifications_demo.png" />
|
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/test_notifications_demo.png" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="bug-tracker">
|
<div class="section" id="bug-tracker">
|
||||||
|
@ -432,7 +432,7 @@ Access the users form through Settings -> Users & Companies. You’ll see
|
||||||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
|
||||||
In case of trouble, please check there if your issue has already been reported.
|
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
|
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||||
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="credits">
|
<div class="section" id="credits">
|
||||||
|
@ -452,6 +452,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
|
||||||
<li>Aitor Bouzas <<a class="reference external" href="mailto:aitor.bouzas@adaptivecity.com">aitor.bouzas@adaptivecity.com</a>></li>
|
<li>Aitor Bouzas <<a class="reference external" href="mailto:aitor.bouzas@adaptivecity.com">aitor.bouzas@adaptivecity.com</a>></li>
|
||||||
<li>Shepilov Vladislav <<a class="reference external" href="mailto:shepilov.v@protonmail.com">shepilov.v@protonmail.com</a>></li>
|
<li>Shepilov Vladislav <<a class="reference external" href="mailto:shepilov.v@protonmail.com">shepilov.v@protonmail.com</a>></li>
|
||||||
<li>Kevin Khao <<a class="reference external" href="mailto:kevin.khao@akretion.com">kevin.khao@akretion.com</a>></li>
|
<li>Kevin Khao <<a class="reference external" href="mailto:kevin.khao@akretion.com">kevin.khao@akretion.com</a>></li>
|
||||||
|
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
|
||||||
|
<li>David Vidal</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="maintainers">
|
<div class="section" id="maintainers">
|
||||||
|
@ -461,7 +465,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
|
||||||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||||
mission is to support the collaborative development of Odoo features and
|
mission is to support the collaborative development of Odoo features and
|
||||||
promote its widespread use.</p>
|
promote its widespread use.</p>
|
||||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_notify">OCA/web</a> project on GitHub.</p>
|
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_notify">OCA/web</a> project on GitHub.</p>
|
||||||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 211 KiB |
Binary file not shown.
Before Width: | Height: | Size: 56 KiB |
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 55 KiB |
|
@ -0,0 +1,12 @@
|
||||||
|
/** @odoo-module */
|
||||||
|
import {Notification} from "@web/core/notifications/notification";
|
||||||
|
import {patch} from "web.utils";
|
||||||
|
|
||||||
|
patch(Notification.props, "webNotifyProps", {
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
optional: true,
|
||||||
|
validate: (t) =>
|
||||||
|
["warning", "danger", "success", "info", "default"].includes(t),
|
||||||
|
},
|
||||||
|
});
|
|
@ -1,14 +0,0 @@
|
||||||
odoo.define("web_notify.Notification", function (require) {
|
|
||||||
"use strict";
|
|
||||||
const {Notification} = require("@web/core/notifications/notification");
|
|
||||||
const {patch} = require("web.utils");
|
|
||||||
|
|
||||||
patch(Notification.props, "webNotifyProps", {
|
|
||||||
type: {
|
|
||||||
type: String,
|
|
||||||
optional: true,
|
|
||||||
validate: (t) =>
|
|
||||||
["warning", "danger", "success", "info", "default"].includes(t),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
/** @odoo-module **/
|
||||||
|
import {browser} from "@web/core/browser/browser";
|
||||||
|
import {registry} from "@web/core/registry";
|
||||||
|
|
||||||
|
export const webNotificationService = {
|
||||||
|
dependencies: ["notification"],
|
||||||
|
|
||||||
|
start(env, {notification}) {
|
||||||
|
let webNotifTimeouts = {};
|
||||||
|
/**
|
||||||
|
* Displays the web notification on user's screen
|
||||||
|
*/
|
||||||
|
|
||||||
|
function displaywebNotification(notifications) {
|
||||||
|
Object.values(webNotifTimeouts).forEach((notif) =>
|
||||||
|
browser.clearTimeout(notif)
|
||||||
|
);
|
||||||
|
webNotifTimeouts = {};
|
||||||
|
|
||||||
|
notifications.forEach(function (notif) {
|
||||||
|
browser.setTimeout(function () {
|
||||||
|
notification.add(notif.message, {
|
||||||
|
title: notif.title,
|
||||||
|
type: notif.type,
|
||||||
|
sticky: notif.sticky,
|
||||||
|
className: notif.className,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
env.bus.on("WEB_CLIENT_READY", null, async () => {
|
||||||
|
const legacyEnv = owl.Component.env;
|
||||||
|
legacyEnv.services.bus_service.onNotification(this, (notifications) => {
|
||||||
|
for (const {payload, type} of notifications) {
|
||||||
|
if (type === "web.notify") {
|
||||||
|
displaywebNotification(payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
legacyEnv.services.bus_service.startPolling();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
registry.category("services").add("webNotification", webNotificationService);
|
|
@ -1,47 +0,0 @@
|
||||||
odoo.define("web_notify.NotificationService", function (require) {
|
|
||||||
"use strict";
|
|
||||||
const {browser} = require("@web/core/browser/browser");
|
|
||||||
const {registry} = require("@web/core/registry");
|
|
||||||
|
|
||||||
const webNotificationService = {
|
|
||||||
dependencies: ["notification"],
|
|
||||||
|
|
||||||
start(env, {notification}) {
|
|
||||||
let webNotifTimeouts = {};
|
|
||||||
/**
|
|
||||||
* Displays the web notification on user's screen
|
|
||||||
*/
|
|
||||||
|
|
||||||
function displaywebNotification(notifications) {
|
|
||||||
Object.values(webNotifTimeouts).forEach((notif) =>
|
|
||||||
browser.clearTimeout(notif)
|
|
||||||
);
|
|
||||||
webNotifTimeouts = {};
|
|
||||||
|
|
||||||
notifications.forEach(function (notif) {
|
|
||||||
browser.setTimeout(function () {
|
|
||||||
notification.add(notif.message, {
|
|
||||||
title: notif.title,
|
|
||||||
type: notif.type,
|
|
||||||
sticky: notif.sticky,
|
|
||||||
className: notif.className,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
env.bus.on("WEB_CLIENT_READY", null, async () => {
|
|
||||||
const legacyEnv = owl.Component.env;
|
|
||||||
legacyEnv.services.bus_service.onNotification(this, (notifications) => {
|
|
||||||
for (const {payload, type} of notifications) {
|
|
||||||
if (type === "web.notify") {
|
|
||||||
displaywebNotification(payload);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
legacyEnv.services.bus_service.startPolling();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
registry.category("services").add("webNotification", webNotificationService);
|
|
||||||
});
|
|
Loading…
Reference in New Issue