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 --- .../static/src/js/editor/rte.summernote.js | 983 +++++++++++++++++++++ 1 file changed, 983 insertions(+) create mode 100644 addons/web_editor/static/src/js/editor/rte.summernote.js (limited to 'addons/web_editor/static/src/js/editor/rte.summernote.js') diff --git a/addons/web_editor/static/src/js/editor/rte.summernote.js b/addons/web_editor/static/src/js/editor/rte.summernote.js new file mode 100644 index 00000000000..979211cd4d7 --- /dev/null +++ b/addons/web_editor/static/src/js/editor/rte.summernote.js @@ -0,0 +1,983 @@ +odoo.define('web_editor.rte.summernote', function (require) { +'use strict'; + +var core = require('web.core'); +var ajax = require('web.ajax'); +var base = require('web_editor.base'); +var widgets = require('web_editor.widget'); +var rte = require('web_editor.rte'); + +var QWeb = core.qweb; +var _t = core._t; + +////////////////////////////////////////////////////////////////////////////////////////////////////////// + +ajax.jsonRpc('/web/dataset/call', 'call', { + 'model': 'ir.ui.view', + 'method': 'read_template', + 'args': ['web_editor.colorpicker', base.get_context()] +}).done(function (data) { + QWeb.add_template(data); +}); + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +/* Summernote Lib (neek change to make accessible: method and object) */ + +var dom = $.summernote.core.dom; +var range = $.summernote.core.range; +var eventHandler = $.summernote.eventHandler; +var renderer = $.summernote.renderer; +// var options = $.summernote.options; + +var tplButton = renderer.getTemplate().button; +var tplIconButton = renderer.getTemplate().iconButton; +var tplDropdown = renderer.getTemplate().dropdown; + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +/* update and change the popovers content, and add history button */ + +var fn_createPalette = renderer.createPalette; +renderer.createPalette = function ($container, options) { + fn_createPalette.call(this, $container, options); + + if (!QWeb.has_template('web_editor.colorpicker')) { + return; + } + + var $clpicker = $(QWeb.render('web_editor.colorpicker')); + + var groups; + if ($clpicker.is("colorpicker")) { + groups = _.map($clpicker.children(), function (el) { + return $(el).find("button").empty(); + }); + } else { + groups = [$clpicker.find("button").empty()]; + } + + var html = "
" + _t("Theme colors") + "
" + _.map(groups, function ($group) { + var $row = $("
", {"class": "note-color-row mb8"}).append($group); + var $after_breaks = $row.find(".o_small + :not(.o_small)"); + if ($after_breaks.length === 0) { + $after_breaks = $row.find(":nth-child(8n+9)"); + } + $after_breaks.addClass("o_clear"); + return $row[0].outerHTML; + }).join("") + "
" + _t("Common colors") + "
"; + var $palettes = $container.find(".note-color .note-color-palette"); + $palettes.prepend(html); + + var $bg = $palettes.filter(":even").find("button:not(.note-color-btn)").addClass("note-color-btn"); + var $fore = $palettes.filter(":odd").find("button:not(.note-color-btn)").addClass("note-color-btn"); + $bg.each(function () { + var $el = $(this); + var className = 'bg-' + $el.data('color'); + $el.attr('data-event', 'backColor').attr('data-value', className).addClass(className); + }); + $fore.each(function () { + var $el = $(this); + var className = 'text-' + $el.data('color'); + $el.attr('data-event', 'foreColor').attr('data-value', className).addClass('bg-' + $el.data('color')); + }); +}; + +var fn_tplPopovers = renderer.tplPopovers; +renderer.tplPopovers = function (lang, options) { + var $popover = $(fn_tplPopovers.call(this, lang, options)); + + var $imagePopover = $popover.find('.note-image-popover'); + var $linkPopover = $popover.find('.note-link-popover'); + var $airPopover = $popover.find('.note-air-popover'); + + if (window === window.top) { + $popover.children().addClass("hidden-xs"); + } + + //////////////// image popover + + // add center button for images + $(tplIconButton('fa fa-align-center', { + title: _t('Center'), + event: 'floatMe', + value: 'center' + })).insertAfter($imagePopover.find('[data-event="floatMe"][data-value="left"]')); + $imagePopover.find('button[data-event="removeMedia"]').parent().remove(); + $imagePopover.find('button[data-event="floatMe"][data-value="none"]').remove(); + + // padding button + var $padding = $('
'); + $padding.insertBefore($imagePopover.find('.btn-group:first')); + var dropdown_content = [ + '
  • '+_t('None')+'
  • ', + '
  • '+_t('Small')+'
  • ', + '
  • '+_t('Medium')+'
  • ', + '
  • '+_t('Large')+'
  • ', + '
  • '+_t('Xl')+'
  • ', + ]; + $(tplIconButton('fa fa-plus-square-o', { + title: _t('Padding'), + dropdown: tplDropdown(dropdown_content) + })).appendTo($padding); + + // circle, boxed... options became toggled + $imagePopover.find('[data-event="imageShape"]:not([data-value])').remove(); + var $button = $(tplIconButton('fa fa-sun-o', { + title: _t('Shadow'), + event: 'imageShape', + value: 'shadow' + })).insertAfter($imagePopover.find('[data-event="imageShape"][data-value="img-circle"]')); + + // add spin for fa + var $spin = $('