Partially use the new user code
The 'edit self' is not working fully yet, the 'lookup' code is not
working at all, as such, only 'create', 'edit', 'list', and 'delete'
make use of the generic code.
tinyMCEPopup.requireLangPack();
var TemplateDialog = {
preInit : function() {
var url = tinyMCEPopup.getParam("template_external_list_url");
if (url != null)
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
},
init : function() {
var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
tsrc = ed.getParam("template_templates", false);
sel = document.getElementById('tpath');
// Setup external template list
if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
}
for (x=0; x<tsrc.length; x++)
sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
this.resize();
this.tsrc = tsrc;
},
resize : function() {
var w, h, e;
if (!self.innerWidth) {
w = document.body.clientWidth - 50;
h = document.body.clientHeight - 160;
} else {
w = self.innerWidth - 50;
h = self.innerHeight - 170;
}
e = document.getElementById('templatesrc');
if (e) {
e.style.height = Math.abs(h) + 'px';
e.style.width = Math.abs(w - 5) + 'px';
}
},
loadCSSFiles : function(d) {
var ed = tinyMCEPopup.editor;
tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
});
},
selectTemplate : function(u, ti) {
var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
if (!u)
return;
d.body.innerHTML = this.templateHTML = this.getFileContents(u);
for (x=0; x<tsrc.length; x++) {
if (tsrc[x].title == ti)
document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
}
},
insert : function() {
tinyMCEPopup.execCommand('mceInsertTemplate', false, {
content : this.templateHTML,
selection : tinyMCEPopup.editor.selection.getContent()
});
tinyMCEPopup.close();
},
getFileContents : function(u) {
var x, d, t = 'text/plain';
function g(s) {
x = 0;
try {
x = new ActiveXObject(s);
} catch (s) {
}
return x;
};
x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
// Synchronous AJAX load file
x.overrideMimeType && x.overrideMimeType(t);
x.open("GET", u, false);
x.send(null);
return x.responseText;
}
};
TemplateDialog.preInit();
tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);