1 | tinyMCEPopup.requireLangPack();
|
---|
2 |
|
---|
3 | var TemplateDialog = {
|
---|
4 | preInit : function() {
|
---|
5 | var url = tinyMCEPopup.getParam("template_external_list_url");
|
---|
6 |
|
---|
7 | if (url != null)
|
---|
8 | document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
|
---|
9 | },
|
---|
10 |
|
---|
11 | init : function() {
|
---|
12 | var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
|
---|
13 |
|
---|
14 | tsrc = ed.getParam("template_templates", false);
|
---|
15 | sel = document.getElementById('tpath');
|
---|
16 |
|
---|
17 | // Setup external template list
|
---|
18 | if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
|
---|
19 | for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
|
---|
20 | tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
|
---|
21 | }
|
---|
22 |
|
---|
23 | for (x=0; x<tsrc.length; x++)
|
---|
24 | sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
|
---|
25 |
|
---|
26 | this.resize();
|
---|
27 | this.tsrc = tsrc;
|
---|
28 | },
|
---|
29 |
|
---|
30 | resize : function() {
|
---|
31 | var w, h, e;
|
---|
32 |
|
---|
33 | if (!self.innerWidth) {
|
---|
34 | w = document.body.clientWidth - 50;
|
---|
35 | h = document.body.clientHeight - 160;
|
---|
36 | } else {
|
---|
37 | w = self.innerWidth - 50;
|
---|
38 | h = self.innerHeight - 170;
|
---|
39 | }
|
---|
40 |
|
---|
41 | e = document.getElementById('templatesrc');
|
---|
42 |
|
---|
43 | if (e) {
|
---|
44 | e.style.height = Math.abs(h) + 'px';
|
---|
45 | e.style.width = Math.abs(w - 5) + 'px';
|
---|
46 | }
|
---|
47 | },
|
---|
48 |
|
---|
49 | loadCSSFiles : function(d) {
|
---|
50 | var ed = tinyMCEPopup.editor;
|
---|
51 |
|
---|
52 | tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
|
---|
53 | d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
|
---|
54 | });
|
---|
55 | },
|
---|
56 |
|
---|
57 | selectTemplate : function(u, ti) {
|
---|
58 | var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
|
---|
59 |
|
---|
60 | if (!u)
|
---|
61 | return;
|
---|
62 |
|
---|
63 | d.body.innerHTML = this.templateHTML = this.getFileContents(u);
|
---|
64 |
|
---|
65 | for (x=0; x<tsrc.length; x++) {
|
---|
66 | if (tsrc[x].title == ti)
|
---|
67 | document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
|
---|
68 | }
|
---|
69 | },
|
---|
70 |
|
---|
71 | insert : function() {
|
---|
72 | tinyMCEPopup.execCommand('mceInsertTemplate', false, {
|
---|
73 | content : this.templateHTML,
|
---|
74 | selection : tinyMCEPopup.editor.selection.getContent()
|
---|
75 | });
|
---|
76 |
|
---|
77 | tinyMCEPopup.close();
|
---|
78 | },
|
---|
79 |
|
---|
80 | getFileContents : function(u) {
|
---|
81 | var x, d, t = 'text/plain';
|
---|
82 |
|
---|
83 | function g(s) {
|
---|
84 | x = 0;
|
---|
85 |
|
---|
86 | try {
|
---|
87 | x = new ActiveXObject(s);
|
---|
88 | } catch (s) {
|
---|
89 | }
|
---|
90 |
|
---|
91 | return x;
|
---|
92 | };
|
---|
93 |
|
---|
94 | x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
|
---|
95 |
|
---|
96 | // Synchronous AJAX load file
|
---|
97 | x.overrideMimeType && x.overrideMimeType(t);
|
---|
98 | x.open("GET", u, false);
|
---|
99 | x.send(null);
|
---|
100 |
|
---|
101 | return x.responseText;
|
---|
102 | }
|
---|
103 | };
|
---|
104 |
|
---|
105 | TemplateDialog.preInit();
|
---|
106 | tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);
|
---|