wiki-archive/twiki/pub/TWiki/KupuContrib/_kupu/roundup/kupuinit.js

94 lines
3.2 KiB
JavaScript

/* here's where the customized initialization will be done */
function RoundupLinkTool() {
this.createLinkHandler = function(event) {
/* create a link according to a url entered in a popup */
var linkWindow = openPopup('_file/kupu/common/popups/link.html', 300, 200);
linkWindow.linktool = this;
linkWindow.focus();
};
};
RoundupLinkTool.prototype = new LinkTool;
function RoundupImageTool() {
this.createImageHandler = function(event) {
/* create an image according to a url entered in a popup */
var imageWindow = openPopup('_file/kupu/common/popups/image.html', 300, 200);
imageWindow.imagetool = this;
imageWindow.focus();
};
};
RoundupImageTool.prototype = new ImageTool;
function initKupu(iframe) {
/* Although this is meant to be a sample implementation, it can
be used out-of-the box to run the sample pagetemplate or for simple
implementations that just don't use some elements. When you want
to do some customization, this should probably be overridden. For
larger customization actions you will have to subclass or roll your
own UI object.
*/
// first we create a logger
var l = new DummyLogger();
// now some config values
// XXX To mimic the 'old' behaviour, vars should be retrieved from the
// iframe (attributes)
var src = iframe.getAttribute('src');
var dst = iframe.getAttribute('dst');
if (!dst) {
dst = '..';
}
var use_css = (iframe.getAttribute('usecss') != "0");
var reload_src = (iframe.getAttribute('reloadsrc') == "1");
var strict_output = (iframe.getAttribute('strict_output') == "1");
var content_type = 'application/xhtml+xml';
if (iframe.getAttribute('content_type')) {
content_type = iframe.getAttribute('content_type');
};
var conf = {'src': src,
'dst': dst,
'use_css': use_css,
'reload_after_save': reload_src,
'strict_output': strict_output,
'content_type': content_type
};
// the we create the document, hand it over the id of the iframe
var doc = new KupuDocument(iframe);
// now we can create the controller
var kupu = new KupuEditor(doc, conf, l);
// add the contextmenu
var cm = new ContextMenu();
kupu.setContextMenu(cm);
var listtool = new ListTool('kupu-list-ul-addbutton', 'kupu-list-ol-addbutton', 'kupu-ulstyles', 'kupu-olstyles');
kupu.registerTool('listtool', listtool);
var linktool = new RoundupLinkTool();
kupu.registerTool('linktool', linktool);
var imagetool = new RoundupImageTool();
kupu.registerTool('imagetool', imagetool);
// now we can create a UI object which we can use from the UI
var ui = new KupuUI('kupu-tb-styles');
// the ui must be registered to the editor as well so it can be notified
// of state changes
kupu.registerTool('ui', ui); // XXX Should this be a different method?
// register some cleanup filter
// remove tags that aren't in the XHTML DTD
var nonxhtmltagfilter = new NonXHTMLTagFilter();
kupu.registerFilter(nonxhtmltagfilter);
return kupu;
}