diff options
Diffstat (limited to 'muk_web_theme/static/src/js/chrome/appsbar.js')
| -rw-r--r-- | muk_web_theme/static/src/js/chrome/appsbar.js | 69 |
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 |
