You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

115 lines
3.5 KiB

odoo.define('backend_theme_infinito.ThemeStudioMenu', function (require) {
"use strict";
var core = require('web.core');
var Widget = require('backend_theme_infinito.ThemeStudioWidget');
var ajax = require('web.ajax');
var ThemeStudioMenu = Widget.extend({
template: 'ThemeStudioMenu',
events: {
'click .backend_theme_studio_close': '_onThemeStudioClose',
'click .theme_studio_toggle_sidebar': '_onThemeStudioToggleSidebar',
'click .dropdown-item': '_onButtonClick',
'click .reset_to_default': '_onResetClick',
},
init: function (parent, action) {
this._super(this, arguments);
this.action = action;
this.parent = parent;
this.editMode = parent.editMode;
this.menus = [{
name: 'Views',
children: [{
'name': 'Tree/List',
'selector': 'tree',
},
{
'name': 'Form',
'selector': 'form',
},
{
'name': 'Kanban',
'selector': 'kanban',
},
{
'name': 'Control Panel',
'selector': 'control_panel',
}],
}, {
name: 'UI Elements',
children: [{
'name': 'Button',
'selector': 'button',
},
{
'name': 'Progress Bar',
'selector': 'progress_bar',
},
{
'name': 'Tab',
'selector': 'tab',
},
{
'name': 'Input',
'selector': 'input',
},
{
'name': 'Search',
'selector': 'search',
},
{
'name': 'Misc',
'selector': 'misc',
},],
}
];
},
_onThemeStudioClose: function (ev) {
ev.preventDefault();
window.location.href = '/web'
},
_onThemeStudioToggleSidebar: function (ev) {
ev.currentTarget.classList.toggle('open');
ev.preventDefault();
this.parent._onToggleSidebar();
},
_onButtonClick: function (ev) {
ev.preventDefault();
var mode = ev.currentTarget.id;
if(mode){
this.parent.editMode = mode;
this.parent.render();
this.editMode = mode;
var sidebar = this.parent.sidebar;
if (sidebar) {
sidebar._Close();
sidebar.destroy();
}
this.saveData();
} else {
var mode = ev.currentTarget.dataset.other;
this.parent.colors();
}
},
_onResetClick: async function(ev){
await ajax.jsonRpc('/theme_studio/reset_to_default', 'call', {});
await this.setAssets();
location.reload();
},
setAssets: function(){
location.search = "?debug=assets";
},
saveData: function () {
this._super.apply(this, arguments);
this.localStorage.setItem('editMode', this.editMode);
},
});
return ThemeStudioMenu;
});