odoo.define('website.editor', function (require) { 'use strict'; var ajax = require('web.ajax'); var core = require('web.core'); var Widget = require('web.Widget'); var base = require('web_editor.base'); var editor = require('web_editor.editor'); var widget = require('web_editor.widget'); var website = require('website.website'); var qweb = core.qweb; var _t = core._t; ajax.loadXML('/website/static/src/xml/website.editor.xml', qweb); /** * Object who contains all method and bind for the top bar, the template is create server side. */ website.TopBar.include({ events: { 'click [data-action="edit"]': 'edit', }, start: function () { $("#wrapwrap").find("[data-oe-model] .oe_structure.oe_empty, [data-oe-model].oe_structure.oe_empty, [data-oe-type=html]:empty") .filter(".oe_not_editable") .filter(".oe_no_empty") .addClass("oe_empty"); if (location.search.indexOf("enable_editor") >= 0 && $('html').attr('lang').match(/en[-_]US/)) { this.$el.addClass('editing_mode'); this.delayed_hide(); } return this._super.apply(this, arguments); }, edit: function () { this.$('button[data-action=edit]').prop('disabled', true); this.$el.addClass('editing_mode'); editor.editor_bar = new editor.Class(this); editor.editor_bar.prependTo(document.body); $('.o_homepage_editor_welcome_message').remove(); this.delayed_hide(); }, delayed_hide: function () { _.delay((function () { this.do_hide(); }).bind(this), 800); }, }); /* ----- Customize Template ---- */ website.TopBarCustomize = Widget.extend({ events: { 'click > ul a[data-view-id]': 'do_customize', }, start: function () { this.view_name = $(document.documentElement).data('view-xmlid'); if (!this.view_name) { this.$el.hide(); } if (this.$el.is(".open")) { this.load_menu(); } else { this.$el.one("mousedown", "> a.dropdown-toggle", this.load_menu.bind(this)); } }, load_menu: function () { var $menu = this.$el.children("ul"); ajax.jsonRpc('/website/get_switchable_related_views', 'call', { key: this.view_name, }).then(function (result) { var current_group = ""; _.each(result, function (item) { if (current_group !== item.inherit_id[1]) { current_group = item.inherit_id[1]; $menu.append("