Browse Source

Merge 9e9e1c4b00 into fda204e80f

pull/158/merge
Holger Brunn 5 years ago
committed by GitHub
parent
commit
c9f6d38eac
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      web_ckeditor4/__openerp__.py
  2. 42
      web_ckeditor4/static/src/js/web_ckeditor4.js

2
web_ckeditor4/__openerp__.py

@ -22,7 +22,7 @@
{
'name': 'CKEditor 4.x widget',
'version': '8.0.1.0.0',
'version': '8.0.1.0.1',
'author': "Therp BV,Odoo Community Association (OCA)",
'website': 'https://github.com/OCA/web',
'summary': 'Provides a widget for editing HTML fields using CKEditor 4.x',

42
web_ckeditor4/static/src/js/web_ckeditor4.js

@ -135,13 +135,50 @@ openerp.web_ckeditor4 = function(instance)
});
default_ckeditor_writer = new CKEDITOR.htmlParser.basicWriter();
//CKEditor's version of this is not accessible unfortunately
var protected_source_marker = '{cke_protected}';
//we need to enforce line statements to be on its own line
//CKEditor doesn't care about whitespace, jinja does
function fix_protected_source_line_statement(element)
{
element.value = element.value.replace(
protected_source_marker, protected_source_marker + '\n') + '\n';
}
function fix_protected_source(e)
{
function traverse_tree(element)
{
if(element.value && element.value.indexOf(protected_source_marker) == 0)
{
if(new RegExp('^' + protected_source_marker + '(%20)*%25').test(element.value))
{
fix_protected_source_line_statement(element);
}
}
if(element.children)
{
_.each(element.children, function(c)
{
traverse_tree(c);
});
}
}
traverse_tree(e.data.dataValue);
};
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: '',
protectedSource: [
// variable expressions
/\${[\s\S]*?}/g,
// blocks
/<%[\s\S]*?%>/g,
// line expressions
/^\s*%.*$/gm,
],
},
ckeditor_filter: default_ckeditor_filter,
ckeditor_writer: default_ckeditor_writer,
@ -169,6 +206,7 @@ openerp.web_ckeditor4 = function(instance)
{
self.store_dom_value();
},
'toDataFormat': fix_protected_source,
},
},
this.ckeditor_config));

Loading…
Cancel
Save