From 4f925af06fd3cebfcfb56eb947ab68c8a2ca4490 Mon Sep 17 00:00:00 2001
From: qsm-odoo
Date: Wed, 7 Jun 2017 17:45:15 +0200
Subject: [MOV] web_editor, website: reorganize files
---
addons/web_editor/static/src/js/backend.js | 409 -----------------------------
1 file changed, 409 deletions(-)
delete mode 100644 addons/web_editor/static/src/js/backend.js
(limited to 'addons/web_editor/static/src/js/backend.js')
diff --git a/addons/web_editor/static/src/js/backend.js b/addons/web_editor/static/src/js/backend.js
deleted file mode 100644
index 6b167c59edd..00000000000
--- a/addons/web_editor/static/src/js/backend.js
+++ /dev/null
@@ -1,409 +0,0 @@
-odoo.define('web_editor.backend', function (require) {
-'use strict';
-
-var AbstractField = require('web.AbstractField');
-var basic_fields = require('web.basic_fields');
-var config = require('web.config');
-var core = require('web.core');
-var session = require('web.session');
-var field_registry = require('web.field_registry');
-
-var transcoder = require('web_editor.transcoder');
-
-var TranslatableFieldMixin = basic_fields.TranslatableFieldMixin;
-
-var QWeb = core.qweb;
-var _t = core._t;
-
-
-/**
- * FieldTextHtmlSimple Widget
- * Intended to display HTML content. This widget uses the summernote editor
- * improved by odoo.
- *
- */
-var FieldTextHtmlSimple = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
- className: 'oe_form_field oe_form_field_html_text',
- supportedFieldTypes: ['html'],
-
- //--------------------------------------------------------------------------
- // Public
- //--------------------------------------------------------------------------
-
- /**
- * Summernote doesn't notify for changes done in code mode. We override
- * commitChanges to manually switch back to normal mode before committing
- * changes, so that the widget is aware of the changes done in code mode.
- *
- * @override
- */
- commitChanges: function () {
- // switch to WYSIWYG mode if currently in code mode to get all changes
- if (config.debug && this.mode === 'edit') {
- var layoutInfo = this.$textarea.data('layoutInfo');
- $.summernote.pluginEvents.codeview(undefined, undefined, layoutInfo, false);
- }
- this._super.apply(this, arguments);
- },
- /**
- * @override
- */
- isSet: function () {
- return this.value && this.value !== "
" && this.value.match(/\S/);
- },
- /**
- * Do not re-render this field if it was the origin of the onchange call.
- *
- * @override
- */
- reset: function (record, event) {
- this._reset(record, event);
- if (!event || event.target !== this) {
- if (this.mode === 'edit') {
- this.$content.html(this._textToHtml(this.value));
- } else {
- this._renderReadonly();
- }
- }
- return $.when();
- },
-
- //--------------------------------------------------------------------------
- // Private
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * @returns {Object} the summernote configuration
- */
- _getSummernoteConfig: function () {
- var summernoteConfig = {
- focus: false,
- height: 180,
- toolbar: [
- ['style', ['style']],
- ['font', ['bold', 'italic', 'underline', 'clear']],
- ['fontsize', ['fontsize']],
- ['color', ['color']],
- ['para', ['ul', 'ol', 'paragraph']],
- ['table', ['table']],
- ['insert', ['link', 'picture']],
- ['history', ['undo', 'redo']]
- ],
- prettifyHtml: false,
- styleWithSpan: false,
- inlinemedia: ['p'],
- lang: "odoo",
- onChange: this._doDebouncedAction.bind(this),
- };
- if (config.debug) {
- summernoteConfig.toolbar.splice(7, 0, ['view', ['codeview']]);
- }
- return summernoteConfig;
- },
- /**
- * @override
- * @private
- */
- _getValue: function () {
- if (this.nodeOptions['style-inline']) {
- transcoder.class_to_style(this.$content);
- transcoder.font_to_img(this.$content);
- }
- return this.$content.html();
- },
- /**
- * @override
- * @private
- */
- _renderEdit: function () {
- this.$textarea = $('
');
- }
- }
- return value;
- },
- /**
- * @override
- * @private
- * @returns {jQueryElement}
- */
- _renderTranslateButton: function () {
- if (_t.database.multi_lang && this.field.translate && this.res_id) {
- return $(QWeb.render('web_editor.FieldTextHtml.button.translate', {widget: this}))
- .on('click', this._onTranslate.bind(this));
- }
- return $();
- },
-
-});
-
-var FieldTextHtml = AbstractField.extend({
- template: 'web_editor.FieldTextHtml',
- supportedFieldTypes: ['html'],
-
- start: function () {
- var self = this;
-
- this.loaded = false;
- this.callback = _.uniqueId('FieldTextHtml_');
- window.odoo[this.callback+"_editor"] = function (EditorBar) {
- setTimeout(function () {
- self.on_editor_loaded(EditorBar);
- },0);
- };
- window.odoo[this.callback+"_content"] = function () {
- self.on_content_loaded();
- };
- window.odoo[this.callback+"_updown"] = null;
- window.odoo[this.callback+"_downup"] = function () {
- self.resize();
- };
-
- // init jqery objects
- this.$iframe = this.$el.find('iframe');
- this.document = null;
- this.$body = $();
- this.$content = $();
-
- this.$iframe.css('min-height', 'calc(100vh - 360px)');
-
- // init resize
- this.resize = function resize() {
- if (self.mode === 'edit') {
- if ($("body").hasClass("o_field_widgetTextHtml_fullscreen")) {
- self.$iframe.css('height', (document.body.clientHeight - self.$iframe.offset().top) + 'px');
- } else {
- self.$iframe.css("height", (self.$body.find("#oe_snippets").length ? 500 : 300) + "px");
- }
- }
- };
- $(window).on('resize', this.resize);
-
- this.old_initialize_content();
- var def = this._super.apply(this, arguments);
- return def;
- },
- getDatarecord: function () {
- return this.recordData;
- },
- get_url: function (_attr) {
- var src = this.nodeOptions.editor_url || "/mass_mailing/field/email_template";
- var k;
- var datarecord = this.getDatarecord();
- var attr = {
- 'model': this.model,
- 'field': this.name,
- 'res_id': datarecord.id || '',
- 'callback': this.callback
- };
- _attr = _attr || {};
-
- if (this.nodeOptions['style-inline']) {
- attr.inline_mode = 1;
- }
- if (this.nodeOptions.snippets) {
- attr.snippets = this.nodeOptions.snippets;
- }
- if (this.nodeOptions.template) {
- attr.template = this.nodeOptions.template;
- }
- if (this.mode === "edit") {
- attr.enable_editor = 1;
- }
- if (session.debug) {
- attr.debug = session.debug;
- }
-
- for (k in _attr) {
- attr[k] = _attr[k];
- }
-
- if (src.indexOf('?') === -1) {
- src += "?";
- }
-
- for (k in attr) {
- if (attr[k] !== null) {
- src += "&"+k+"="+(_.isBoolean(attr[k]) ? +attr[k] : attr[k]);
- }
- }
-
- // delete datarecord[this.name];
- src += "&datarecord="+ encodeURIComponent(JSON.stringify(datarecord));
- return src;
- },
- old_initialize_content: function () {
- this.$el.closest('.modal-body').css('max-height', 'none');
- this.$iframe = this.$el.find('iframe');
- this.document = null;
- this.$body = $();
- this.$content = $();
- this.editor = false;
- window.odoo[this.callback+"_updown"] = null;
- this.$iframe.attr("src", this.get_url());
- },
- on_content_loaded: function () {
- var self = this;
- this.document = this.$iframe.contents()[0];
- this.$body = $("body", this.document);
- this.$content = this.$body.find("#editable_area");
- this.render();
- this.add_button();
- this.loaded = true;
- setTimeout(self.resize, 0);
- },
- on_editor_loaded: function (EditorBar) {
- var self = this;
- this.editor = EditorBar;
- if (this.value && window.odoo[self.callback+"_updown"] && !(this.$content.html()||"").length) {
- this.render();
- }
- setTimeout(function () {
- setTimeout(self.resize,0);
- }, 0);
- },
- add_button: function () {
- var self = this;
- var $to = this.$body.find("#web_editor-top-edit, #wrapwrap").first();
-
- $(QWeb.render('web_editor.FieldTextHtml.fullscreen'))
- .appendTo($to)
- .on('click', '.o_fullscreen', function () {
- $("body").toggleClass("o_field_widgetTextHtml_fullscreen");
- var full = $("body").hasClass("o_field_widgetTextHtml_fullscreen");
- self.$iframe.parents().toggleClass('o_form_fullscreen_ancestor', full);
- $(window).trigger("resize"); // induce a resize() call and let other backend elements know (the navbar extra items management relies on this)
- });
-
- this.$body.on('click', '[data-action="cancel"]', function (event) {
- event.preventDefault();
- self.old_initialize_content();
- });
- },
- render: function () {
- var value = (this.value || "").replace(/^]*>(\s*|
)<\/p>$/, '');
- if (!this.$content) {
- return;
- }
- if (this.mode === "edit") {
- if(window.odoo[this.callback+"_updown"]) {
- // FIXME
- // window.odoo[this.callback+"_updown"](value, this.view.get_fields_values(), this.name);
- this.resize();
- }
- } else {
- this.$content.html(value);
- if (this.$iframe[0].contentWindow) {
- this.$iframe.css("height", (this.$body.height()+20) + "px");
- }
- }
- },
- has_no_value: function () {
- return this.value === false || !this.$content.html() || !this.$content.html().match(/\S/);
- },
- destroy: function () {
- $(window).off('resize', this.resize);
- delete window.odoo[this.callback+"_editor"];
- delete window.odoo[this.callback+"_content"];
- delete window.odoo[this.callback+"_updown"];
- delete window.odoo[this.callback+"_downup"];
- },
-
- //--------------------------------------------------------------------------
- // Public
- //--------------------------------------------------------------------------
-
- /**
- * @override
- */
- commitChanges: function () {
- if (!this.loaded || this.mode === 'readonly') {
- return;
- }
- // switch to WYSIWYG mode if currently in code mode to get all changes
- if (config.debug && this.mode === 'edit' && this.editor.rte) {
- var layoutInfo = this.editor.rte.editable().data('layoutInfo');
- $.summernote.pluginEvents.codeview(undefined, undefined, layoutInfo, false);
- }
- this.editor.buildingBlock.clean_for_save();
- this._setValue(this.$content.html());
- return this._super.apply(this, arguments);
- },
-});
-
-field_registry
- .add('html', FieldTextHtmlSimple)
- .add('html_frame', FieldTextHtml);
-
-return {
- FieldTextHtmlSimple: FieldTextHtmlSimple,
- FieldTextHtml: FieldTextHtml,
-};
-
-});
--
cgit v1.2.3