summaryrefslogtreecommitdiff
path: root/muk_web_theme/static/src/js/chrome/appsbar.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
commit1ca3b3df3421961caec3b747a364071c80f5c7da (patch)
tree6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /muk_web_theme/static/src/js/chrome/appsbar.js
parentb57188be371d36d96caac4b8d65a40745c0e972c (diff)
initial commit
Diffstat (limited to 'muk_web_theme/static/src/js/chrome/appsbar.js')
-rw-r--r--muk_web_theme/static/src/js/chrome/appsbar.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/muk_web_theme/static/src/js/chrome/appsbar.js b/muk_web_theme/static/src/js/chrome/appsbar.js
new file mode 100644
index 0000000..eaa91d3
--- /dev/null
+++ b/muk_web_theme/static/src/js/chrome/appsbar.js
@@ -0,0 +1,69 @@
+/**********************************************************************************
+*
+* Copyright (c) 2017-today MuK IT GmbH.
+*
+* This file is part of MuK Grid Snippets
+* (see https://mukit.at).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*
+**********************************************************************************/
+
+odoo.define('muk_web_theme.AppsBar', function (require) {
+"use strict";
+
+const Widget = require('web.Widget');
+
+const AppsBar = Widget.extend({
+ events: _.extend({}, Widget.prototype.events, {
+ 'click .nav-link': '_onAppsMenuItemClicked',
+ }),
+ template: "muk_web_theme.AppsBarMenu",
+ init(parent, menu) {
+ this._super(...arguments);
+ this._apps = _.map(menu.children, (app) => ({
+ actionID: parseInt(app.action.split(',')[1]),
+ web_icon_data: app.web_icon_data,
+ menuID: app.id,
+ name: app.name,
+ xmlID: app.xmlid,
+ })
+ );
+ },
+ getApps() {
+ return this._apps;
+ },
+ _openApp(app) {
+ this.trigger_up('app_clicked', {
+ action_id: app.actionID,
+ menu_id: app.menuID,
+ });
+ },
+ _onAppsMenuItemClicked(ev) {
+ const $target = $(ev.currentTarget);
+ const actionID = $target.data('action-id');
+ const menuID = $target.data('menu-id');
+ const app = _.findWhere(this._apps, {
+ actionID: actionID,
+ menuID: menuID
+ });
+ this._openApp(app);
+ ev.preventDefault();
+ $target.blur();
+ },
+});
+
+return AppsBar;
+
+}); \ No newline at end of file