Merge PR #2142 into 14.0

Signed-off-by ivantodorovich
pull/2152/head
OCA-git-bot 2022-02-07 18:50:14 +00:00
commit c06c1e3f22
4 changed files with 31 additions and 14 deletions

View File

@ -1 +1 @@
# from . import models from . import models

View File

@ -0,0 +1 @@
from . import ir_config_parameter

View File

@ -0,0 +1,16 @@
# Copyright 2022 Camptocamp SA (https://www.camptocamp.com).
# @author Iván Todorovich <ivan.todorovich@camptocamp.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models
class IrConfigParameter(models.Model):
_inherit = "ir.config_parameter"
@api.model
def get_web_widget_ckeditor_config(self):
get_param = self.sudo().get_param
return {
"toolbar": get_param("web_widget_ckeditor.toolbar"),
}

View File

@ -17,22 +17,21 @@ odoo.define("web_widget_ckeditor.field_ckeditor", function (require) {
const TranslatableFieldMixin = basic_fields.TranslatableFieldMixin; const TranslatableFieldMixin = basic_fields.TranslatableFieldMixin;
// Load configuration for the editor // Load configuration for the editor
const defaultCKEditorToolbarPromise = rpc.query({ const getCKEditorConfigPromise = rpc.query({
model: "ir.config_parameter", model: "ir.config_parameter",
method: "get_param", method: "get_web_widget_ckeditor_config",
args: ["web_widget_ckeditor.toolbar"],
}); });
// Load CKEditor localization files // Load CKEditor localization files
async function loadCKEditorLanguageSource(languageCode) { async function loadCKEditorLanguageSource(languageCode) {
if (languageCode == "en") { if (languageCode === "en") {
return; return;
} }
const languageURL = `/web_widget_ckeditor/static/lib/ckeditor/build/translations/${languageCode}.js`; const languageURL = `/web_widget_ckeditor/static/lib/ckeditor/build/translations/${languageCode}.js`;
try { try {
ajax.loadJS(languageURL); ajax.loadJS(languageURL);
} catch (error) { } catch (error) {
console.warning("Unable to load CKEditor language: ", languageCode); console.warn("Unable to load CKEditor language: ", languageCode);
} }
} }
const CKEditorLanguageCode = session.user_context.lang.split("_")[0]; const CKEditorLanguageCode = session.user_context.lang.split("_")[0];
@ -87,9 +86,10 @@ odoo.define("web_widget_ckeditor.field_ckeditor", function (require) {
* @override * @override
*/ */
isSet: function () { isSet: function () {
var value = // Removing spaces & html spaces
const value =
this.value && this.value &&
this.value.split("&nbsp;").join("").replace(/\s/g, ""); // Removing spaces & html spaces this.value.split("&nbsp;").join("").replace(/\s/g, "");
return ( return (
value && value &&
value !== "<p></p>" && value !== "<p></p>" &&
@ -143,19 +143,19 @@ odoo.define("web_widget_ckeditor.field_ckeditor", function (require) {
*/ */
_getCKEditorToolbarItems: async function () { _getCKEditorToolbarItems: async function () {
try { try {
const toolbarConfig = await defaultCKEditorToolbarPromise; const ckconfig = await getCKEditorConfigPromise;
if (toolbarConfig) { if (ckconfig.toolbar) {
return toolbarConfig.split(/[\s,]+/).filter((item) => item); return ckconfig.toolbar.split(/[\s,]+/).filter((item) => item);
} }
} catch (error) { } catch (error) {
console.warning( console.warn(
"Unable to use CKEditor toolbar configuration: ", "Unable to use CKEditor toolbar configuration: ",
error error
); );
console.warning( console.warn(
"Please check the value for ir.config_parameter 'web_widget_ckeditor.toolbar' is correct" "Please check the value for ir.config_parameter 'web_widget_ckeditor.toolbar' is correct"
); );
console.warning("Using default toolbar configuration"); console.warn("Using default toolbar configuration");
} }
return [ return [
"heading", "heading",