From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- .../website/static/src/js/theme_preview_kanban.js | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 addons/website/static/src/js/theme_preview_kanban.js (limited to 'addons/website/static/src/js/theme_preview_kanban.js') diff --git a/addons/website/static/src/js/theme_preview_kanban.js b/addons/website/static/src/js/theme_preview_kanban.js new file mode 100644 index 00000000..a8c573b9 --- /dev/null +++ b/addons/website/static/src/js/theme_preview_kanban.js @@ -0,0 +1,61 @@ +odoo.define('website.theme_preview_kanban', function (require) { +"use strict"; + +var KanbanController = require('web.KanbanController'); +var KanbanView = require('web.KanbanView'); +var ViewRegistry = require('web.view_registry'); +const ThemePreviewControllerCommon = require('website.theme_preview_form').ThemePreviewControllerCommon; +var core = require('web.core'); +var _lt = core._lt; + +var ThemePreviewKanbanController = KanbanController.extend(ThemePreviewControllerCommon, { + /** + * @override + */ + start: async function () { + await this._super(...arguments); + + // hide pager + this.el.classList.add('o_view_kanban_theme_preview_controller'); + + // update breacrumb + const websiteLink = Object.assign(document.createElement('a'), { + className: 'btn btn-secondary ml-3 text-black-75', + href: '/', + innerHTML: '', + }); + const smallBreadcumb = Object.assign(document.createElement('small'), { + className: 'mx-2 text-muted', + innerHTML: _lt("Don't worry, you can switch later."), + }); + this._controlPanelWrapper.el.querySelector('.o_cp_top .breadcrumb li.active').classList.add('text-black-75'); + this._controlPanelWrapper.el.querySelector('.o_cp_top').appendChild(websiteLink); + this._controlPanelWrapper.el.querySelector('.o_cp_top li').appendChild(smallBreadcumb); + }, + /** + * Called when user click on any button in kanban view. + * Targeted buttons are selected using name attribute value. + * + * @override + */ + _onButtonClicked: function (ev) { + const attrName = ev.data.attrs.name; + if (attrName === 'button_choose_theme' || attrName === 'button_refresh_theme') { + this._handleThemeAction(ev.data.record.res_id, attrName); + } else { + this._super(...arguments); + } + }, +}); + +var ThemePreviewKanbanView = KanbanView.extend({ + withSearchBar: false, // hide searchBar + + config: _.extend({}, KanbanView.prototype.config, { + Controller: ThemePreviewKanbanController, + }), +}); + +ViewRegistry.add('theme_preview_kanban', ThemePreviewKanbanView); + +}); -- cgit v1.2.3