From 1ca3b3df3421961caec3b747a364071c80f5c7da Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 17:14:58 +0700 Subject: initial commit --- .../static/src/components/control_panel.js | 70 ++++++++++++++++++++++ .../static/src/components/control_panel.xml | 65 ++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 muk_web_theme/static/src/components/control_panel.js create mode 100644 muk_web_theme/static/src/components/control_panel.xml (limited to 'muk_web_theme/static/src/components') diff --git a/muk_web_theme/static/src/components/control_panel.js b/muk_web_theme/static/src/components/control_panel.js new file mode 100644 index 0000000..38d7a78 --- /dev/null +++ b/muk_web_theme/static/src/components/control_panel.js @@ -0,0 +1,70 @@ +/********************************************************************************** +* +* 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 . +* +**********************************************************************************/ + +odoo.define('muk_web_theme.ControlPanel', function (require) { +"use strict"; + +const ControlPanel = require('web.ControlPanel'); +const config = require('web.config'); + +const { useState } = owl.hooks; + +if (!config.device.isMobile) { + return; +} + +ControlPanel.patch('muk_web_theme.ControlPanel', T => { + + class ControlPanelPatch extends T { + constructor() { + super(...arguments); + this.state = useState({ + showViewSwitcherButtons: false, + }); + this.isMobile = true; + } + mounted() { + super.mounted(); + this.onWindowClickEvent = this._onWindowClick.bind(this); + window.addEventListener('click', this.onWindowClickEvent); + } + willUnmount() { + super.willUnmount(); + window.removeEventListener('click', this.onWindowClickEvent); + } + _onWindowClick(event) { + if (this.state.showViewSwitcherButtons && !event.target.closest('.o_cp_switch_buttons')) { + this.state.showViewSwitcherButtons = false; + } + } + _getCurrentViewIcon() { + const currentView = this.props.views.find((view) => { + return view.type === this.env.view.type + }) + return currentView.icon; + } + } + + return ControlPanelPatch; +}); + +}); diff --git a/muk_web_theme/static/src/components/control_panel.xml b/muk_web_theme/static/src/components/control_panel.xml new file mode 100644 index 0000000..692dd50 --- /dev/null +++ b/muk_web_theme/static/src/components/control_panel.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + -- cgit v1.2.3