From a33bce29e93fd7b66b6d78320459dcd9a4bfb044 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Thu, 22 Jan 2015 16:37:03 +0100 Subject: [PATCH] [PRT] Odoo integration of web_ckeditor4 --- web_ckeditor4/README.rst | 4 +++ web_ckeditor4/__init__.py | 1 - web_ckeditor4/__openerp__.py | 18 ++++++------ web_ckeditor4/static/src/js/web_ckeditor4.js | 30 +++++++++++--------- web_ckeditor4/views/qweb.xml | 18 ++++++++++++ 5 files changed, 46 insertions(+), 25 deletions(-) create mode 100644 web_ckeditor4/README.rst create mode 100644 web_ckeditor4/views/qweb.xml diff --git a/web_ckeditor4/README.rst b/web_ckeditor4/README.rst new file mode 100644 index 000000000..813d58f35 --- /dev/null +++ b/web_ckeditor4/README.rst @@ -0,0 +1,4 @@ +This addon provides a widget for editing html fields via CKEditor 4.x + +Use widget="text_html" if you need just html display. In the unlikely case +you need specific features of ckeditor, use widget="text_ckeditor4". diff --git a/web_ckeditor4/__init__.py b/web_ckeditor4/__init__.py index a97ee816f..fae962cca 100644 --- a/web_ckeditor4/__init__.py +++ b/web_ckeditor4/__init__.py @@ -19,4 +19,3 @@ # along with this program. If not, see . # ############################################################################## - diff --git a/web_ckeditor4/__openerp__.py b/web_ckeditor4/__openerp__.py index 6465c7e7d..b3b759c4d 100644 --- a/web_ckeditor4/__openerp__.py +++ b/web_ckeditor4/__openerp__.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# This module copyright (C) 2013 Therp BV () +# This module copyright (C) 2013-2015 Therp BV () # All Rights Reserved # # This program is free software: you can redistribute it and/or modify @@ -23,18 +23,16 @@ { 'name': 'CKEditor 4.x widget', 'version': '1.0', - 'description': """ - This addon provides a widget for editing html fields via CKEditor 4.x - - Use widget="text_html" if you need just html display. In the unlikely case - you need specific features of ckeditor, use widget="text_ckeditor4". - """, 'author': 'Therp BV', - 'website': 'http://www.therp.nl', + 'website': 'https://github.com/OCA/web', + 'summary': 'Provides a widget for editing HTML fields using CKEditor 4.x', "category": "Tools", "depends": [ 'web', - ], + ], + 'data': [ + 'views/qweb.xml', + ], 'css': [ 'static/src/css/web_ckeditor4.css', ], @@ -107,7 +105,7 @@ # 'static/lib/trunk/core/_bootstrap.js', #end of ckeditor debug 'static/src/js/web_ckeditor4.js', - ], + ], 'installable': True, 'auto_install': False, 'certificate': '', diff --git a/web_ckeditor4/static/src/js/web_ckeditor4.js b/web_ckeditor4/static/src/js/web_ckeditor4.js index c72b36a33..1969d29ea 100644 --- a/web_ckeditor4/static/src/js/web_ckeditor4.js +++ b/web_ckeditor4/static/src/js/web_ckeditor4.js @@ -20,7 +20,7 @@ # ############################################################################*/ -openerp.web_ckeditor4 = function(openerp) +openerp.web_ckeditor4 = function(instance) { var ckeditor_addFunction_org = CKEDITOR.tools.addFunction; //this is a quite complicated way to kind of monkey patch the private @@ -87,14 +87,14 @@ openerp.web_ckeditor4 = function(openerp) }); }); - openerp.web.form.widgets.add('text_ckeditor4', - 'openerp.web_ckeditor4.FieldCKEditor4'); - openerp.web.form.widgets.add('text_ckeditor4_raw', - 'openerp.web_ckeditor4.FieldCKEditor4Raw'); - openerp.web.form.widgets.add('text_html', - 'openerp.web_ckeditor4.FieldCKEditor4'); - openerp.web.form.widgets.add('html', - 'openerp.web_ckeditor4.FieldCKEditor4'); + instance.web.form.widgets.add('text_ckeditor4', + 'instance.web_ckeditor4.FieldCKEditor4'); + instance.web.form.widgets.add('text_ckeditor4_raw', + 'instance.web_ckeditor4.FieldCKEditor4Raw'); + instance.web.form.widgets.add('text_html', + 'instance.web_ckeditor4.FieldCKEditor4'); + instance.web.form.widgets.add('html', + 'instance.web_ckeditor4.FieldCKEditor4'); function filter_html(value, ckeditor_filter, ckeditor_writer) { @@ -117,11 +117,13 @@ openerp.web_ckeditor4 = function(openerp) }); default_ckeditor_writer = new CKEDITOR.htmlParser.basicWriter(); - openerp.web_ckeditor4.FieldCKEditor4 = openerp.web.form.FieldText.extend({ + instance.web_ckeditor4.FieldCKEditor4 = instance.web.form.FieldText.extend({ ckeditor_config: { removePlugins: 'iframe,flash,forms,smiley,pagebreak,stylescombo', filebrowserImageUploadUrl: 'dummy', extraPlugins: 'filebrowser', + // this is '#39' per default which screws up single quoted text in ${} + entities_additional: '', }, ckeditor_filter: default_ckeditor_filter, ckeditor_writer: default_ckeditor_writer, @@ -129,7 +131,7 @@ openerp.web_ckeditor4 = function(openerp) { this._super.apply(this, arguments); - CKEDITOR.lang.load(openerp.session.user_context.lang.split('_')[0], 'en', function() {}); + CKEDITOR.lang.load(instance.session.user_context.lang.split('_')[0], 'en', function() {}); }, initialize_content: function() { @@ -142,7 +144,7 @@ openerp.web_ckeditor4 = function(openerp) this.editor = CKEDITOR.replace(this.$textarea.get(0), _.extend( { - language: openerp.session.user_context.lang.split('_')[0], + language: instance.session.user_context.lang.split('_')[0], on: { 'change': function() @@ -155,7 +157,7 @@ openerp.web_ckeditor4 = function(openerp) }, store_dom_value: function() { - this.internal_set_value(this.editor ? this.editor.getData() : openerp.web.parse_value(this.get('value'), this)); + this.internal_set_value(this.editor ? this.editor.getData() : instance.web.parse_value(this.get('value'), this)); }, filter_html: function(value) { @@ -207,7 +209,7 @@ openerp.web_ckeditor4 = function(openerp) this._cleanup_editor(); } }); - openerp.web_ckeditor4.FieldCKEditor4Raw = openerp.web_ckeditor4.FieldCKEditor4.extend({ + instance.web_ckeditor4.FieldCKEditor4Raw = instance.web_ckeditor4.FieldCKEditor4.extend({ filter_html: function(value) { return value; diff --git a/web_ckeditor4/views/qweb.xml b/web_ckeditor4/views/qweb.xml new file mode 100644 index 000000000..480971369 --- /dev/null +++ b/web_ckeditor4/views/qweb.xml @@ -0,0 +1,18 @@ + + + + + +