mirror of
https://git.victorphan.net/basketballcantho/study4.git
synced 2026-08-05 06:13:11 +07:00
81 lines
3.1 KiB
Plaintext
81 lines
3.1 KiB
Plaintext
/* global CKEDITOR, django */
|
|
;(function() {
|
|
var el = document.getElementById('ckeditor-init-script');
|
|
if (el && !window.CKEDITOR_BASEPATH) {
|
|
window.CKEDITOR_BASEPATH = el.getAttribute('data-ckeditor-basepath');
|
|
}
|
|
|
|
function runInitialisers() {
|
|
if (!window.CKEDITOR) {
|
|
setTimeout(runInitialisers, 100);
|
|
return;
|
|
}
|
|
|
|
initialiseCKEditor();
|
|
initialiseCKEditorInInlinedForms();
|
|
}
|
|
|
|
if (document.readyState != 'loading' && document.body) {
|
|
document.addEventListener('DOMContentLoaded', initialiseCKEditor);
|
|
runInitialisers();
|
|
} else {
|
|
document.addEventListener('DOMContentLoaded', runInitialisers);
|
|
}
|
|
|
|
var filterStyles = {
|
|
attributes: {
|
|
style: function( value, element ) {
|
|
value = CKEDITOR.tools.parseCssText( value, 1 );
|
|
// If there's no CSS rules left, discard style attribute.
|
|
if (value.color == '#000000') return false;
|
|
}
|
|
}
|
|
};
|
|
|
|
function initialiseCKEditor() {
|
|
var textareas = Array.prototype.slice.call(document.querySelectorAll('textarea[data-type=ckeditortype]'));
|
|
for (var i=0; i<textareas.length; ++i) {
|
|
var t = textareas[i];
|
|
if (t.getAttribute('data-processed') == '0' && t.id.indexOf('__prefix__') == -1) {
|
|
t.setAttribute('data-processed', '1');
|
|
var ext = JSON.parse(t.getAttribute('data-external-plugin-resources'));
|
|
for (var j=0; j<ext.length; ++j) {
|
|
CKEDITOR.plugins.addExternal(ext[j][0], ext[j][1], ext[j][2]);
|
|
}
|
|
var conf = JSON.parse(t.getAttribute('data-config'));
|
|
conf.on = {
|
|
instanceReady: function(evt) {
|
|
evt.editor.pasteFilter = evt.editor.activeFilter.clone();
|
|
// evt.editor.pasteFilter.allow('div[data-plyr-embed-id,data-plyr-provider]');
|
|
evt.editor.pasteFilter.disallow('span{font-weight,font-size,font-family,text-decoration}');
|
|
evt.editor.pasteFilter.disallow('div{margin-left}');
|
|
},
|
|
paste: function(evt) {
|
|
var pasteFilter = evt.editor.pasteFilter;
|
|
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( evt.data.dataValue ),
|
|
writer = new CKEDITOR.htmlParser.basicWriter();
|
|
pasteFilter.applyTo( fragment );
|
|
fragment.writeHtml( writer );
|
|
evt.data.dataValue = writer.getHtml();
|
|
|
|
// Filter data that comes INTO the editor.
|
|
this.dataProcessor.dataFilter.addRules( filterStyles );
|
|
// Filter data that comes OUT of the editor.
|
|
this.dataProcessor.htmlFilter.addRules( filterStyles );
|
|
}
|
|
};
|
|
CKEDITOR.replace(t.id, conf);
|
|
}
|
|
}
|
|
}
|
|
|
|
function initialiseCKEditorInInlinedForms() {
|
|
if (typeof django === 'object' && django.jQuery) {
|
|
django.jQuery(document).on('formset:added', initialiseCKEditor);
|
|
}
|
|
}
|
|
|
|
window.initialiseCKEditor = initialiseCKEditor;
|
|
window.initialiseCKEditorInInlinedForms = initialiseCKEditorInInlinedForms;
|
|
}());
|