Commit | Line | Data |
---|---|---|
b3a6ad9d H |
1 | var 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 | |
6 | var head = document.getElementsByTagName("head")[0]; | |
7 | script = document.createElement('script'); | |
8 | script.type = 'text/javascript'; | |
9 | script.src = svgeditor_path + 'embedapi.js'; | |
10 | head.appendChild(script); | |
11 | ||
12 | function svgedit_load() { | |
13 | var field = $('wiki__text'); | |
14 | if (!field) | |
15 | return; | |
16 | var timeout = setTimeout('svgedit_load();', 500); //load ASAP | |
17 | window.svgedit.setSvgString(field.value) (function(a) { | |
18 | clearTimeout(timeout); | |
19 | } | |
20 | ); | |
21 | } | |
22 | function svgedit_save(page) { | |
23 | window.svgedit.getSvgString()(function(data) { | |
24 | var field = $('wiki__text'); | |
25 | if (!field) return; | |
26 | field.value = data; if (page) { | |
27 | field = $('edbtn__save'); field.click();} | |
28 | } | |
29 | ) ; | |
30 | } | |
31 | ||
32 | function showhide(elem) { | |
33 | elem.style.display = (elem.style.display == 'none' ? '' : 'none'); | |
34 | } | |
35 | ||
36 | function insertAfter(newNode, preNode) { | |
37 | if (preNode.nextSibling) | |
38 | preNode.parentNode.insertBefore(newNode, preNode.nextSibling); | |
39 | else | |
40 | preNode.parentNode(newNode); | |
41 | } | |
42 | ||
43 | var svgedit = null; | |
44 | function svgedit_init() { | |
45 | var field = $('wiki__text'); | |
46 | if (!field) | |
47 | return; | |
48 | ||
49 | //toggle view | |
50 | showhide(field); | |
51 | showhide($('tool__bar')); | |
52 | showhide($('edbtn__save')); | |
53 | ||
54 | //lock | |
55 | if ($('svg__edit')) | |
56 | return; | |
57 | ||
58 | //create iframe | |
59 | ||
60 | var el = document.createElement('iframe'); | |
61 | el.setAttribute("src", svgeditor_path + 'svg-editor.html'); | |
62 | el.setAttribute("id", "svg__edit"); | |
63 | el.setAttribute("name", "svg__edit"); | |
64 | el.setAttribute("frameborder", "0"); | |
65 | el.setAttribute("width", "100%"); | |
66 | el.setAttribute("height", "70%"); | |
67 | el.setAttribute("style", "min-height: 400px;"); | |
68 | insertAfter(el, field); | |
69 | ||
70 | //create save button | |
71 | field = $('edbtn__save'); | |
72 | if (!field) | |
73 | return; | |
74 | el = document.createElement('input'); | |
75 | el.setAttribute("type", "button"); | |
76 | el.setAttribute("onclick", "svgedit_save(true)"); | |
77 | el.setAttribute("value", "SVG-SAVE"); | |
78 | el.setAttribute("title", "Save SVG to server"); | |
79 | el.setAttribute("class", "button"); | |
80 | field.parentNode.insertBefore(el, field); | |
81 | ||
82 | el = document.createElement('input'); | |
83 | el.setAttribute("type", "button"); | |
84 | el.setAttribute("onclick", "svgedit_load()"); | |
85 | el.setAttribute("value", "TXT->SVG"); | |
86 | el.setAttribute("title", "Copy SVG from textarea to svg-editor"); | |
87 | el.setAttribute("class", "button"); | |
88 | field.parentNode.insertBefore(el, field); | |
89 | ||
90 | el = document.createElement('input'); | |
91 | el.setAttribute("type", "button"); | |
92 | el.setAttribute("onclick", "svgedit_save()"); | |
93 | el.setAttribute("value", "SVG->TXT"); | |
94 | el.setAttribute("title", "Copy SVG from svg-editor to textarea"); | |
95 | el.setAttribute("class", "button"); | |
96 | field.parentNode.insertBefore(el, field); | |
97 | ||
98 | //create embedapi | |
99 | window.svgedit = new embedded_svg_edit($('svg__edit')); | |
100 | ||
101 | //load image | |
102 | svgedit_load(); | |
103 | } | |
104 | ||
105 | addInitEvent(function() { | |
106 | if (!$('wiki__text') || $('wiki__text').readOnly) return; | |
107 | var field = $('tool__bar'); | |
108 | if (!field) return; | |
109 | field.style.float = 'left'; | |
110 | var el = document.createElement('button'); | |
111 | el.setAttribute("id", "TZT"); | |
112 | el.setAttribute("class", "toolbutton"); | |
113 | el.setAttribute("onclick", "svgedit_init();"); | |
114 | el.setAttribute("title", "Edit this page as SVG!"); | |
115 | el.setAttribute("style", "float: left;"); | |
116 | field.parentNode.insertBefore(el, field); | |
117 | el.appendChild(document.createTextNode("SVG")); | |
118 | var el = document.createElement('br'); | |
119 | el.setAttribute('style', "clear: left;"); | |
120 | field.appendChild(el);}) ; |