summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/editor.js
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2017-06-07 17:45:15 +0200
committerqsm-odoo <qsm@odoo.com>2017-08-16 10:59:39 +0200
commit4f925af06fd3cebfcfb56eb947ab68c8a2ca4490 (patch)
treeb13bd049b6b3e7bbdfb537d19b53c95fc4025ea5 /addons/web_editor/static/src/js/editor.js
parentf205bfcd4ddcf3f1d8676ee87ee0b29941bd6773 (diff)
[MOV] web_editor, website: reorganize files
Diffstat (limited to 'addons/web_editor/static/src/js/editor.js')
-rw-r--r--addons/web_editor/static/src/js/editor.js149
1 files changed, 0 insertions, 149 deletions
diff --git a/addons/web_editor/static/src/js/editor.js b/addons/web_editor/static/src/js/editor.js
deleted file mode 100644
index 240a0a36121..00000000000
--- a/addons/web_editor/static/src/js/editor.js
+++ /dev/null
@@ -1,149 +0,0 @@
-odoo.define('web_editor.editor', function (require) {
-"use strict";
-
-var ajax = require('web.ajax');
-var Dialog = require('web.Dialog');
-var Widget = require('web.Widget');
-var core = require('web.core');
-var base = require('web_editor.base');
-var rte = require('web_editor.rte');
-
-var qweb = core.qweb;
-var _t = core._t;
-var editor = {};
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-editor.dummy = function () {return true;}; // used for snippets, options...
-
-editor.editable = !!($('html').data('editable') || $("[data-oe-model]").length); // temporary hack, this should be done in python
-
-ajax.loadXML('/web_editor/static/src/xml/editor.xml', qweb);
-
-$(document).on('click', '.note-editable', function (ev) {
- ev.preventDefault();
-});
-
-$(document).on('submit', '.note-editable form .btn', function (ev) {
- ev.preventDefault(); // Disable form submition in editable mode
-});
-
-$(document).on('hide.bs.dropdown', '.dropdown', function (ev) {
- // Prevent dropdown closing when a contenteditable children is focused
- if (ev.originalEvent
- && $(ev.target).has(ev.originalEvent.target).length
- && $(ev.originalEvent.target).is('[contenteditable]')) {
- ev.preventDefault();
- }
-});
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-editor.reload = function () {
- location.hash = "scrollTop=" + window.document.body.scrollTop;
- if (location.search.indexOf("enable_editor") > -1) {
- window.location.href = window.location.href.replace(/&?enable_editor(=[^&]*)?/g, '');
- } else {
- window.location.reload(true);
- }
-};
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-/* ----- TOP EDITOR BAR FOR ADMIN ---- */
-
-base.ready().then(function () {
- if (editor.editable && location.search.indexOf("enable_editor") >= 0) {
- editor.editor_bar = new editor.Class();
- editor.editor_bar.prependTo(document.body);
- }
-});
-
-editor.Class = Widget.extend({
- template: 'web_editor.editorbar',
- events: {
- 'click button[data-action=save]': 'save',
- 'click button[data-action=cancel]': 'cancel',
- },
- init: function (parent) {
- var self = this;
- var res = this._super.apply(this, arguments);
- this.parent = parent;
- this.rte = new rte.Class(this);
- this.rte.on('rte:start', this, function () {
- self.trigger('rte:start');
- });
- return res;
- },
- start: function () {
- $('.dropdown-toggle').dropdown();
-
- this.display_placeholder();
-
- this.rte.on('change', this, this.proxy('rte_changed'));
- this.rte.start();
-
- var flag = false;
- window.onbeforeunload = function (event) {
- if (rte.history.getEditableHasUndo().length && !flag) {
- flag = true;
- _.defer(function () { flag=false; });
- return _t('This document is not saved!');
- }
- };
-
- return this._super.apply(this, arguments);
- },
- display_placeholder: function () {
- var $area = $("#wrapwrap").find("[data-oe-model] .oe_structure.oe_empty, [data-oe-model].oe_structure.oe_empty, [data-oe-type=html]")
- .filter(".oe_not_editable")
- .filter(".oe_no_empty");
-
- this.on('rte:start', this, function () {
- $area.attr("data-oe-placeholder", _t("Write Your Text Here"));
- });
- this.on("snippets:ready", this, function () {
- if ($("body").hasClass("editor_has_snippets")) {
- $area.attr("data-oe-placeholder", _t("Write Your Text or Drag a Block Here"));
- }
- });
-
- $(document).on("keyup", function (event) {
- if((event.keyCode === 8 || event.keyCode === 46)) {
- var $target = $(event.target).closest(".o_editable");
- if(!$target.is(":has(*:not(p):not(br))") && !$target.text().match(/\S/)) {
- $target.empty();
- }
- }
- });
- },
- rte_changed: function () {},
- save: function () {
- return this.rte.save().then(function () {
- editor.reload();
- });
- },
- /**
- * Saves an RTE content, which always corresponds to a view section (?).
- */
- save_without_reload: function () {
- return this.rte.save();
- },
- cancel: function () {
- return new $.Deferred(function (d) {
- if (!rte.history.getEditableHasUndo().length) {
- return d.resolve();
- }
- var confirm = Dialog.confirm(null, _t("If you discard the current edition, all unsaved changes will be lost. You can cancel to return to the edition mode."), {
- confirm_callback: d.resolve.bind(d)
- });
- confirm.on("closed", d, d.reject);
- }).then(function () {
- window.onbeforeunload = null;
- editor.reload();
- });
- },
-});
-
-return editor;
-});