apostrophe
Version:
Apostrophe is a user-friendly content management system. This core module of Apostrophe provides rich content editing and essential facilities to integrate Apostrophe into your Express project. Apostrophe also includes simple facilities for storing your r
58 lines (45 loc) • 1.24 kB
JavaScript
/* global rangy, $, _ */
/* global alert, prompt, AposWidgetEditor, apos */
function AposHtmlWidgetEditor(options)
{
var self = this;
self.code = '';
if (!options.messages) {
options.messages = {};
}
if (!options.messages.missing) {
options.messages.missing = 'Paste in some HTML code first.';
}
self.type = 'html';
options.template = '.apos-html-editor';
AposWidgetEditor.call(self, options);
self.afterCreatingEl = function() {
self.$code = self.$el.find('.apos-code');
self.$code.val(self.data.code);
setTimeout(function() {
self.$code.focus();
self.$code.setSelection(0, 0);
}, 500);
// Automatically preview if we detect something that looks like a
// fresh paste
var last = '';
self.timers.push(setInterval(function() {
var next = self.$code.val();
self.exists = (next.length > 2);
if (next !== last) {
self.preview();
}
last = next;
}, 500));
};
self.getCode = function(callback) {
var code = self.$code.val();
self.data.code = code;
if (callback) {
callback();
}
};
self.preSave = self.getCode;
self.prePreview = self.getCode;
}
AposHtmlWidgetEditor.label = 'Raw HTML';