Commit | Line | Data |
---|---|---|
b4661721 | 1 | var svgeditor_path = 'https://cdn.rawgit.com/SVG-Edit/svgedit/stable/editor/'; //online stable |
b84f0fac | 2 | //var svgeditor_path = 'https://raw.githubusercontent.com/SVG-Edit/svgedit/master/editor/'; //online latest (unstable) |
b3a6ad9d H |
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() { | |
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 | } | |
22 | function 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 | ||
35 | function showhide(elem) { | |
36 | elem.style.display = (elem.style.display == 'none' ? '' : 'none'); | |
37 | } | |
38 | ||
39 | function insertAfter(newNode, preNode) { | |
40 | if (preNode.nextSibling) | |
41 | preNode.parentNode.insertBefore(newNode, preNode.nextSibling); | |
42 | else | |
43 | preNode.parentNode(newNode); | |
44 | } | |
45 | ||
46 | var svgedit = null; | |
5e7d36de | 47 | |
b3a6ad9d | 48 | function 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 |
110 | jQuery(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);}) ; |