Updated script.js to be compatible with 2013-05-10a "Weatherwax" version of DokuWiki
[mirrors/DokuWiki-Plugin-SVGEdit.git] / script.js
CommitLineData
b3a6ad9d
H
1var svgeditor_path = 'http://svg-edit.googlecode.com/svn/tags/stable/editor/'; //online stable
2//var svgeditor_path = 'http://svg-edit.googlecode.com/svn/trunk/editor/'; //online latest (unstable)
3//var svgeditor_path = DOKU_BASE+'lib/plugins/svgedit/svg-edit/'; //offline
4
5//load embedapi.js
6var head = document.getElementsByTagName("head")[0];
7script = document.createElement('script');
8script.type = 'text/javascript';
9script.src = svgeditor_path + 'embedapi.js';
10head.appendChild(script);
11
12function svgedit_load() {
5e7d36de
AH
13 var field = jQuery('#wiki__text');
14 if (!field) return;
15 field = field[0];
b3a6ad9d
H
16 var timeout = setTimeout('svgedit_load();', 500); //load ASAP
17 window.svgedit.setSvgString(field.value) (function(a) {
18 clearTimeout(timeout);
19 }
20 );
21}
22function svgedit_save(page) {
23 window.svgedit.getSvgString()(function(data) {
5e7d36de 24 var field = jQuery('#wiki__text');
b3a6ad9d 25 if (!field) return;
5e7d36de
AH
26 field = field[0];
27 field.value = data;
28 if (page) {
29 field = jQuery('#edbtn__save');
30 field.click();
b3a6ad9d 31 }
5e7d36de 32 }) ;
b3a6ad9d
H
33}
34
35function showhide(elem) {
36 elem.style.display = (elem.style.display == 'none' ? '' : 'none');
37}
38
39function insertAfter(newNode, preNode) {
40 if (preNode.nextSibling)
41 preNode.parentNode.insertBefore(newNode, preNode.nextSibling);
42 else
43 preNode.parentNode(newNode);
44}
45
46var svgedit = null;
5e7d36de 47
b3a6ad9d 48function svgedit_init() {
5e7d36de
AH
49 var field = jQuery('#wiki__text');
50 if (!field) return;
51 field = field[0];
b3a6ad9d
H
52
53 //toggle view
54 showhide(field);
5e7d36de
AH
55 showhide(jQuery('#tool__bar')[0]);
56 showhide(jQuery('#edbtn__save')[0]);
b3a6ad9d
H
57
58 //lock
5e7d36de 59 if (jQuery('#svg__edit').length) return;
b3a6ad9d
H
60
61 //create iframe
62
63 var el = document.createElement('iframe');
64 el.setAttribute("src", svgeditor_path + 'svg-editor.html');
65 el.setAttribute("id", "svg__edit");
66 el.setAttribute("name", "svg__edit");
67 el.setAttribute("frameborder", "0");
68 el.setAttribute("width", "100%");
69 el.setAttribute("height", "70%");
5e7d36de 70 el.setAttribute("style", "min-height: 600px;");
b3a6ad9d
H
71 insertAfter(el, field);
72
73 //create save button
5e7d36de
AH
74 field = jQuery('#edbtn__save');
75 if (!field) return;
76 field = field[0];
77
b3a6ad9d
H
78 el = document.createElement('input');
79 el.setAttribute("type", "button");
80 el.setAttribute("onclick", "svgedit_save(true)");
81 el.setAttribute("value", "SVG-SAVE");
82 el.setAttribute("title", "Save SVG to server");
83 el.setAttribute("class", "button");
84 field.parentNode.insertBefore(el, field);
85
86 el = document.createElement('input');
87 el.setAttribute("type", "button");
88 el.setAttribute("onclick", "svgedit_load()");
89 el.setAttribute("value", "TXT->SVG");
90 el.setAttribute("title", "Copy SVG from textarea to svg-editor");
91 el.setAttribute("class", "button");
92 field.parentNode.insertBefore(el, field);
93
94 el = document.createElement('input');
95 el.setAttribute("type", "button");
96 el.setAttribute("onclick", "svgedit_save()");
97 el.setAttribute("value", "SVG->TXT");
98 el.setAttribute("title", "Copy SVG from svg-editor to textarea");
99 el.setAttribute("class", "button");
100 field.parentNode.insertBefore(el, field);
101
102 //create embedapi
5e7d36de 103 window.svgedit = new embedded_svg_edit(jQuery('#svg__edit')[0]);
b3a6ad9d
H
104
105 //load image
106 svgedit_load();
5e7d36de
AH
107};
108
b3a6ad9d 109
5e7d36de
AH
110jQuery(function() {
111 if (!jQuery('#wiki__text').length || jQuery('#wiki__text').attr("readOnly")) return;
112 var field = jQuery('#tool__bar');
113 if (!field.length) return;
114 field = field[0];
b3a6ad9d
H
115 field.style.float = 'left';
116 var el = document.createElement('button');
117 el.setAttribute("id", "TZT");
118 el.setAttribute("class", "toolbutton");
119 el.setAttribute("onclick", "svgedit_init();");
120 el.setAttribute("title", "Edit this page as SVG!");
121 el.setAttribute("style", "float: left;");
122 field.parentNode.insertBefore(el, field);
123 el.appendChild(document.createTextNode("SVG"));
124 var el = document.createElement('br');
125 el.setAttribute('style', "clear: left;");
126 field.appendChild(el);}) ;
This page took 0.203423 seconds and 4 git commands to generate.