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.
73 lines
2.3 KiB
73 lines
2.3 KiB
/** @odoo-module **/
|
|
import { registry } from "@web/core/registry";
|
|
import { useService } from "@web/core/utils/hooks";
|
|
import VisualEditor from 'backend_theme_infinito.VisualEditor';
|
|
import session from 'web.session';
|
|
import AdvancedFeatures from 'backend_theme_infinito.AdvancedFeatures';
|
|
|
|
class InfinitoSystrayItem extends owl.Component {
|
|
setup() {
|
|
this.render();
|
|
this.action = useService("action");
|
|
this.mode = false;
|
|
}
|
|
_onClickSimpleEditor() {
|
|
var $el = $('body')
|
|
this.mode = 'simple';
|
|
$(this.el).find('#dropdown_infinito_mode').hide();
|
|
this._removeEvents($el);
|
|
this._addEvents($el);
|
|
for (var element of $el.find('.dropdown-menu')){
|
|
$(element).removeClass('.dropdown-menu');
|
|
}
|
|
}
|
|
_onClickAdvancedEditor() {
|
|
this.action.doAction('action_theme_studio');
|
|
}
|
|
_removeEvents(element) {
|
|
element = element[0] || element;
|
|
for (var child of element.children) {
|
|
$(child).off();
|
|
this._removeEvents(child);
|
|
}
|
|
}
|
|
_addEvents(element) {
|
|
element = element[0] || element;
|
|
for (var child of element.children) {
|
|
$(child).on('click', this._onClickStudioMode.bind(this));
|
|
this._addEvents(child);
|
|
}
|
|
}
|
|
_onClickStudioMode(e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
var $target = $(e.target);
|
|
this.visual_editor = new VisualEditor($target);
|
|
this.visual_editor.open();
|
|
}
|
|
}
|
|
InfinitoSystrayItem.template = "backend_theme_infinito.StudioSystray";
|
|
|
|
export const systrayItem = {
|
|
Component: InfinitoSystrayItem,
|
|
isDisplayed: (env) => env.services.user.isAdmin && env.services.ui.size >= 4
|
|
};
|
|
|
|
class InfinitoSystrayAdv extends owl.Component {
|
|
_onClick(){
|
|
if(this.sidebarAdvanced) this.sidebarAdvanced.destroy();
|
|
this.sidebarAdvanced = new AdvancedFeatures(this, 'user');
|
|
}
|
|
}
|
|
|
|
|
|
InfinitoSystrayAdv.template = "backend_theme_infinito.AdvSystray";
|
|
|
|
export const InfinitoSystrayAdvItem = {
|
|
Component: InfinitoSystrayAdv,
|
|
isDisplayed: (env) => session.userEdit && env.services.ui.size >= 4
|
|
};
|
|
|
|
registry.category("systray")
|
|
.add("InfinitoSystrayItem", systrayItem, { sequence: 1 })
|
|
.add("InfinitoSystrayAdv", InfinitoSystrayAdvItem, { sequence: 1 });
|