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 | }, |
---|
28 | |
---|
29 | resize : function() { |
---|
30 | var w, h, e; |
---|
31 | |
---|
32 | if (!self.innerWidth) { |
---|
33 | w = document.body.clientWidth - 50; |
---|
34 | h = document.body.clientHeight - 160; |
---|
35 | } else { |
---|
36 | w = self.innerWidth - 50; |
---|
37 | h = self.innerHeight - 170; |
---|
38 | } |
---|
39 | |
---|
40 | e = document.getElementById('templatesrc'); |
---|
41 | |
---|
42 | if (e) { |
---|
43 | e.style.height = Math.abs(h) + 'px'; |
---|
44 | e.style.width = Math.abs(w - 5) + 'px'; |
---|
45 | } |
---|
46 | }, |
---|
47 | |
---|
48 | loadCSSFiles : function(d) { |
---|
49 | var ed = tinyMCEPopup.editor; |
---|
50 | |
---|
51 | tinymce.each(ed.getParam("content_css", '').split(','), function(u) { |
---|
52 | d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />'); |
---|
53 | }); |
---|
54 | }, |
---|
55 | |
---|
56 | selectTemplate : function(u) { |
---|
57 | var d = window.frames['templatesrc'].document; |
---|
58 | |
---|
59 | if (!u) |
---|
60 | return; |
---|
61 | |
---|
62 | d.body.innerHTML = this.templateHTML = this.getFileContents(u); |
---|
63 | }, |
---|
64 | |
---|
65 | insert : function() { |
---|
66 | tinyMCEPopup.execCommand('mceInsertTemplate', false, { |
---|
67 | content : this.templateHTML, |
---|
68 | selection : tinyMCEPopup.editor.selection.getContent() |
---|
69 | }); |
---|
70 | |
---|
71 | tinyMCEPopup.close(); |
---|
72 | }, |
---|
73 | |
---|
74 | getFileContents : function(u) { |
---|
75 | var x, d, t = 'text/plain'; |
---|
76 | |
---|
77 | function g(s) { |
---|
78 | x = 0; |
---|
79 | |
---|
80 | try { |
---|
81 | x = new ActiveXObject(s); |
---|
82 | } catch (s) { |
---|
83 | } |
---|
84 | |
---|
85 | return x; |
---|
86 | }; |
---|
87 | |
---|
88 | x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest(); |
---|
89 | |
---|
90 | // Synchronous AJAX load file |
---|
91 | x.overrideMimeType && x.overrideMimeType(t); |
---|
92 | x.open("GET", u, false); |
---|
93 | x.send(null); |
---|
94 | |
---|
95 | return x.responseText; |
---|
96 | } |
---|
97 | }; |
---|
98 | |
---|
99 | TemplateDialog.preInit(); |
---|
100 | tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog); |
---|