changeset 429:a3cc13004cf0

SvgEditor: svg-edit adapted
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Wed, 23 Sep 2009 21:57:39 +0200
parents c5cdc6016107
children dd83c7348499
files data/plugin/action/SvgEditor.py htdocs/svg-edit/CHANGES.current htdocs/svg-edit/editor/svg-editor.css htdocs/svg-edit/editor/svg-editor.js
diffstat 4 files changed, 356 insertions(+), 264 deletions(-) [+]
line wrap: on
line diff
--- a/data/plugin/action/SvgEditor.py	Wed Sep 23 20:52:24 2009 +0200
+++ b/data/plugin/action/SvgEditor.py	Wed Sep 23 21:57:39 2009 +0200
@@ -26,7 +26,8 @@
     # we force the title here, needed later for html>wiki converter
     kw['title'] = "drawing:%s" % wikiutil.quoteWikinameURL(url)
     pagename, drawing = AttachFile.absoluteName(url, self.page.page_name)
-    drawing_url = AttachFile.getAttachUrl(pagename, drawing+'.svg', self.request, drawing=drawing, upload=True)
+    drawing = wikiutil.taintfilename(drawing)
+    drawing_url = AttachFile.getAttachUrl(pagename, drawing, self.request, do='modify')
     if not AttachFile.exists(self.request, pagename, drawing+'.svg'):
         title = _('Create new drawing "%(filename)s (opens in new window)"') % {'filename': drawing}
         img = self.icon('attachimg')  # TODO: we need a new "drawimg" in similar grey style and size
@@ -42,10 +43,8 @@
     # XXX text arg is unused!
     _ = self.request.getText
     pagename, drawing = AttachFile.absoluteName(url, self.page.page_name)
-    if not drawing.endswith('.svg'):
-        drawing = "%s%s" % (drawing, '.svg')
-
-    drawing_url = AttachFile.getAttachUrl(pagename, drawing, self.request, drawing=drawing, upload=True)
+    drawing = wikiutil.taintfilename(drawing)
+    drawing_url = AttachFile.getAttachUrl(pagename, drawing, self.request, do='modify')
     if not AttachFile.exists(self.request, pagename, drawing):
         title = _('Create new drawing "%(filename)s (opens in new window)"') % {'filename': drawing}
         img = self.icon('attachimg')  # TODO: we need a new "drawimg" in similar grey style and size
@@ -120,6 +119,7 @@
 <!--script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script-->
 <script type="text/javascript" src="%(htdocs)s/js-hotkeys/jquery.hotkeys.min.js"></script>
 <!--script type="text/javascript" src="%(htdocs)s/js-hotkeys/jquery.hotkeys-0.7.9.js"></script-->
+<script type="text/javascript" src="%(htdocs)s/jquery-ui/jquery-ui-1.7.2.custom.min.js"></script>
 <script type="text/javascript" src="%(htdocs)s/jgraduate/jpicker-1.0.9.min.js"></script>
 <script type="text/javascript" src="%(htdocs)s/jgraduate/jquery.jgraduate.js"></script>
 <!--script type="text/javascript" src="%(htdocs)s/jgraduate/jquery.jgraduate.min.js"></script-->
@@ -139,284 +139,337 @@
 <div id="svgcanvas"></div>
 <div id="svgdata">%(filecontent)s</div>
 </div>
+<div id="sidepanels">
+	<div id="layerpanel">
+		<h3>Layers</h3>
+		<fieldset id="layerbuttons">
+			<img id="layer_new" class="layer_button" src="%(htdocs)s/images/clear.png" alt="New Layer" title="New Layer"/>
+			<img id="layer_delete" class="layer_button" src="%(htdocs)s/images/delete.png" alt="Delete Layer" title="Delete Layer"/>
+			<img id="layer_rename" class="layer_button" src="%(htdocs)s/images/view-refresh.png" alt="Rename Layer" title="Rename Layer"/>
+			<img id="layer_up" class="layer_button" src="%(htdocs)s/images/go-up.png" alt="Move Layer up" title="Move Layer Up"/>
+			<img id="layer_down" class="layer_button" src="%(htdocs)s/images/go-down.png" alt="Move Layer Down" title="Move Layer Down"/>
+		</fieldset>
+		
+		<select id="layerlist" size="20" multiple="multiple">
+			<option value="Layer 1" selected="selected">Layer 1</option>
+			<option value="Layer 2">Layer 2</option>
+			<option value="Layer 3">Layer 3</option>
+		</select>
+	</div>
+</div>
 
 <div id="logo">
-    <a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
-        <img src="%(htdocs)s/images/logo.png" alt="logo" >
-    </a>
+	<a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
+		<img src="%(htdocs)s/images/logo.png" alt="logo" />
+	</a>
 </div>
 
 <div id="tools_top" class="tools_panel">
-    <!-- File-like buttons: New, Save, Source -->
-    <div>
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_clear" src="%(htdocs)s/images/clear.png" title="New Image [N]" alt="Clear" >
-        <img style="display:none" class="tool_button" id="tool_open" src="%(htdocs)s/images/open.png" title="Open Image [O]" alt="Open">
-        <img class="tool_button" id="tool_save" src="%(htdocs)s/images/save.png" title="Save Image [S]" alt="Save">
-        <img class="tool_button" id="tool_source" src="%(htdocs)s/images/source.png" title="Edit Source [U]" alt="Source">
-    </div>
+	
+	<!-- File-like buttons: New, Save, Source -->
+	<div id="file_panel">
+		<img class="tool_button" id="tool_clear" src="%(htdocs)s/images/clear.png" title="New Image [N]" alt="Clear" />
+		<img style="display:none" class="tool_button" id="tool_open" src="%(htdocs)s/images/open.png" title="Open Image [O]" alt="Open"/>
+		<img class="tool_button" id="tool_save" src="%(htdocs)s/images/save.png" title="Save Image [S]" alt="Save"/>
+		<img class="tool_button" id="tool_docprops" src="%(htdocs)s/images/document-properties.png" title="Document Properties [I]"/>
+		<img class="tool_button" id="tool_source" src="%(htdocs)s/images/source.png" title="Edit Source [U]" alt="Source"/>
+	</div>
 
     <!-- History buttons -->
-    <div>
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button tool_button_disabled" id="tool_undo" src="%(htdocs)s/images/undo.png" title="Undo [Z]" alt="Undo" >
-        <img class="tool_button tool_button_disabled" id="tool_redo" src="%(htdocs)s/images/redo.png" title="Redo [Y]" alt="Redo">
-    </div>
-
-    <!-- Buttons when a single element is selected -->
-    <div id="selected_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_clone" src="%(htdocs)s/images/clone.png" title="Clone Element [C]" alt="Copy">
-        <img class="tool_button" id="tool_delete" src="%(htdocs)s/images/delete.png" title="Delete Element [Delete/Backspace]" alt="Delete">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_move_top" src="%(htdocs)s/images/move_top.png" title="Move to Top [Shift+Up]" alt="Top">
-        <img class="tool_button" id="tool_move_bottom" src="%(htdocs)s/images/move_bottom.png" title="Move to Bottom [Shift+Down]" alt="Bottom">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <select id="group_opacity" class="selected_tool" title="Change selected item opacity">
-            <option selected="selected" value="1">100 %%</option>
-            <option value="0.9">90 %%</option>
-            <option value="0.8">80 %%</option>
-            <option value="0.7">70 %%</option>
-            <option value="0.6">60 %%</option>
-            <option value="0.5">50 %%</option>
-            <option value="0.4">40 %%</option>
-            <option value="0.3">30 %%</option>
-            <option value="0.2">20 %%</option>
-            <option value="0.1">10 %%</option>
-            <option value="0">0 %%</option>
+	<div id="history_panel">
+		<div class="tool_sep"></div>
+		<div class="tool_button tool_button_disabled" id="tool_undo" title="Undo [Z]"></div>
+		<div class="tool_button tool_button_disabled" id="tool_redo" title="Redo [Y]"></div>
+	</div>
+	
+	<!-- Buttons when a single element is selected -->
+	<div id="selected_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_clone" src="%(htdocs)s/images/clone.png" title="Clone Element [C]" alt="Copy"/>
+		<img class="tool_button" id="tool_delete" src="%(htdocs)s/images/delete.png" title="Delete Element [Delete/Backspace]" alt="Delete"/>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_move_top" src="%(htdocs)s/images/move_top.png" title="Move to Top [Shift+Up]" alt="Top"/>
+		<img class="tool_button" id="tool_move_bottom" src="%(htdocs)s/images/move_bottom.png" title="Move to Bottom [Shift+Down]" alt="Bottom"/>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<select id="group_opacity" class="selected_tool" title="Change selected item opacity">
+			<option selected="selected" value="1">100 %%</option>
+			<option value="0.9">90 %%</option>
+			<option value="0.8">80 %%</option>
+			<option value="0.7">70 %%</option>
+			<option value="0.6">60 %%</option>
+			<option value="0.5">50 %%</option>
+			<option value="0.4">40 %%</option>
+			<option value="0.3">30 %%</option>
+			<option value="0.2">20 %%</option>
+			<option value="0.1">10 %%</option>
+			<option value="0">0 %%</option>
+		</select>
+		<span class="selected_tool">angle:</span>
+		<input id="angle" class="selected_tool" title="Change rotation angle" size="2" value="0" type="text"/>
+	</div>
 
-        </select>
-        <span class="selected_tool">angle:</span>
-        <input id="angle" class="selected_tool" title="Change rotation angle" alt="Rotation Angle" size="2" value="0" type="text">
-    </div>
+	<!-- Buttons when multiple elements are selected -->
+	<div id="multiselected_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_clone_multi" src="%(htdocs)s/images/clone.png" title="Clone Elements [C]" alt="Clone"/>
+		<img class="tool_button" id="tool_delete_multi" src="%(htdocs)s/images/delete.png" title="Delete Selected Elements [Delete/Backspace]" alt="Delete"/>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<div class="tool_button" id="tool_alignleft" title="Align Left"></div>
+		<div class="tool_button" id="tool_aligncenter" title="Align Center"></div>
+		<div class="tool_button" id="tool_alignright" title="Align Right"></div>
+		<div class="tool_button" id="tool_aligntop" title="Align Top"></div>
+		<div class="tool_button" id="tool_alignmiddle" title="Align Middle"></div>
+		<div class="tool_button" id="tool_alignbottom" title="Align Bottom"></div>
+		<span class="selected_tool">relative to:</span>
+		<select id="align_relative_to" class="selected_tool" title="Align relative to ...">
+		<option value="selected">selected objects</option>
+		<option value="largest">largest object</option>
+		<option value="smallest">smallest object</option>
+		<option value="page">page</option>
+		</select>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_group" src="%(htdocs)s/images/shape_group.png" title="Group Elements [G]" alt="Group"/>
+	</div>
 
-    <!-- Buttons when multiple elements are selected -->
-    <div id="multiselected_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_clone_multi" src="%(htdocs)s/images/clone.png" title="Clone Elements [C]" alt="Clone">
-        <img class="tool_button" id="tool_delete_multi" src="%(htdocs)s/images/delete.png" title="Delete Selected Elements [Delete/Backspace]" alt="Delete">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_alignleft" src="%(htdocs)s/images/align-left.png" title="Align Left" alt="Left">
-        <img class="tool_button" id="tool_aligncenter" src="%(htdocs)s/images/align-center.png" title="Align Center" alt="Center">
-        <img class="tool_button" id="tool_alignright" src="%(htdocs)s/images/align-right.png" title="Align Right" alt="Right">
-        <img class="tool_button" id="tool_aligntop" src="%(htdocs)s/images/align-top.png" title="Align Top" alt="Top">
-        <img class="tool_button" id="tool_alignmiddle" src="%(htdocs)s/images/align-middle.png" title="Align Middle" alt="Middle">
-        <img class="tool_button" id="tool_alignbottom" src="%(htdocs)s/images/align-bottom.png" title="Align Bottom" alt="Bottom">
-        <span class="selected_tool">relative to:</span>
-        <select id="align_relative_to" class="selected_tool" title="Align relative to ...">
-        <option value="selected">selected objects</option>
-        <option value="largest">largest object</option>
-        <option value="smallest">smallest object</option>
-        <option value="page">page</option>
-        </select>
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_group" src="%(htdocs)s/images/shape_group.png" title="Group Elements [G]" alt="Group">
-        </div>
-        <div id="g_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <img class="tool_button" id="tool_ungroup" src="%(htdocs)s/images/shape_ungroup.png" title="Ungroup Elements [G]" alt="Ungroup">
-        </div>
+	<div id="g_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_ungroup" src="%(htdocs)s/images/shape_ungroup.png" title="Ungroup Elements [G]" alt="Ungroup"/>
+	</div>
+
+	<div id="rect_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="rect_tool">x:</label>
+		<input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" size="3"/>
+		<label class="rect_tool">y:</label>
+		<input id="rect_y" class="rect_tool attr_changer" title="Change rectangle Y coordinate" size="3"/>
+		<label class="rect_tool">width:</label>
+		<input id="rect_width" class="rect_tool attr_changer" title="Change rectangle width" size="3"/>
+		<label class="rect_tool">height:</label>
+		<input id="rect_height" class="rect_tool attr_changer" title="Change rectangle height" size="3"/>
+		<label class="rect_tool">Corner Radius:</label>
+		<input id="rect_rx" size="3" value="0" class="rect_tool" type="text" title="Change Rectangle Corner Radius"/>
+	</div>
+
+	<div id="image_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="image_tool">x:</label>
+		<input id="image_x" class="image_tool attr_changer" title="Change image X coordinate" size="3"/>
+		<label class="image_tool">y:</label>
+		<input id="image_y" class="image_tool attr_changer" title="Change image Y coordinate" size="3"/>
+		<label class="image_tool">width:</label>
+		<input id="image_width" class="image_tool attr_changer" title="Change image width" size="3"/>
+		<label class="image_tool">height:</label>
+		<input id="image_height" class="image_tool attr_changer" title="Change image height" size="3"/>
+    <label class="image_tool">url:</label>
+    <input id="image_url" class="image_tool" type="text" title="Change URL" size="35"/>
+  </div>
 
 
-    <div id="rect_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <label class="rect_tool">x:</label>
-        <input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" alt="x" size="3">
-        <label class="rect_tool">y:</label>
-        <input id="rect_y" class="rect_tool attr_changer" title="Change rectangle Y coordinate" alt="y" size="3">
-        <label class="rect_tool">width:</label>
-        <input id="rect_width" class="rect_tool attr_changer" title="Change rectangle width" alt="width" size="3">
-        <label class="rect_tool">height:</label>
-        <input id="rect_height" class="rect_tool attr_changer" title="Change rectangle height" alt="height" size="3">
-        <label class="rect_tool">Corner Radius:</label>
-        <input id="rect_rx" size="3" value="0" class="rect_tool" type="text" title="Change Rectangle Corner Radius" alt="Corner Radius">
-    </div>
-    <div id="image_panel">
-         <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-         <label class="image_tool">x:</label>
-         <input id="image_x" class="image_tool attr_changer" title="Change image X coordinate" alt="x" size="3">
-         <label class="image_tool">y:</label>
-         <input id="image_y" class="image_tool attr_changer" title="Change image Y coordinate" alt="y" size="3">
-         <label class="image_tool">width:</label>
-         <input id="image_width" class="image_tool attr_changer" title="Change image width" alt="width" size="3">
-         <label class="image_tool">height:</label>
-         <input id="image_height" class="image_tool attr_changer" title="Change image height" alt="height" size="3">
-         <label class="image_tool">url:</label>
-         <input id="image_url" class="image_tool" type="text" title="Change URL" size="35">
-    </div>
-
-
-    <div id="circle_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <label class="circle_tool">cx:</label>
-        <input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" alt="cx" size="3">
-        <label class="circle_tool">cy:</label>
-        <input id="circle_cy" class="circle_tool attr_changer" title="Change circle's cy coordinate" alt="cy" size="3">
-        <label class="circle_tool">r:</label>
-        <input id="circle_r" class="circle_tool attr_changer" title="Change circle's radius" alt="r" size="3">
-    </div>
+	<div id="circle_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="circle_tool">cx:</label>
+		<input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" size="3"/>
+		<label class="circle_tool">cy:</label>
+		<input id="circle_cy" class="circle_tool attr_changer" title="Change circle's cy coordinate" size="3"/>
+		<label class="circle_tool">r:</label>
+		<input id="circle_r" class="circle_tool attr_changer" title="Change circle's radius" size="3"/>
+	</div>
 
-    <div id="ellipse_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <label class="ellipse_tool">cx:</label>
-        <input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" alt="cx" size="3">
-        <label class="ellipse_tool">cy:</label>
-        <input id="ellipse_cy" class="ellipse_tool attr_changer" title="Change ellipse's cy coordinate" alt="cy" size="3">
-        <label class="ellipse_tool">rx:</label>
-        <input id="ellipse_rx" class="ellipse_tool attr_changer" title="Change ellipse's x radius" alt="rx" size="3">
-        <label class="ellipse_tool">ry:</label>
-        <input id="ellipse_ry" class="ellipse_tool attr_changer" title="Change ellipse's y radius" alt="ry" size="3">
-    </div>
-
-    <div id="line_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <label class="line_tool">x1:</label>
-        <input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" alt="x1" size="3">
-        <label class="line_tool">y1:</label>
-        <input id="line_y1" class="line_tool attr_changer" title="Change line's starting y coordinate" alt="y1" size="3">
-        <label class="line_tool">x2:</label>
-        <input id="line_x2" class="line_tool attr_changer" title="Change line's ending x coordinate" alt="x2" size="3">
-        <label class="line_tool">y2:</label>
-        <input id="line_y2" class="line_tool attr_changer" title="Change line's ending y coordinate" alt="x1" size="3">
-    </div>
+	<div id="ellipse_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="ellipse_tool">cx:</label>
+		<input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" size="3"/>
+		<label class="ellipse_tool">cy:</label>
+		<input id="ellipse_cy" class="ellipse_tool attr_changer" title="Change ellipse's cy coordinate" size="3"/>
+		<label class="ellipse_tool">rx:</label>
+		<input id="ellipse_rx" class="ellipse_tool attr_changer" title="Change ellipse's x radius" size="3"/>
+		<label class="ellipse_tool">ry:</label>
+		<input id="ellipse_ry" class="ellipse_tool attr_changer" title="Change ellipse's y radius" size="3"/>
+	</div>
 
-    <div id="text_panel">
-        <img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|">
-        <label class="text_tool">x:</label>
-        <input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" alt="x" size="3">
-        <label class="text_tool">y:</label>
-        <input id="text_y" class="text_tool attr_changer" title="Change text Y coordinate" alt="y" size="3">
-        <img class="tool_button" id="tool_bold" src="%(htdocs)s/images/bold.png" title="Bold Text [B]" alt="Bold">
-        <img class="tool_button" id="tool_italic" src="%(htdocs)s/images/italic.png" title="Italic Text [I]" alt="Italic">
-        <select id="font_family" class="text_tool" title="Change Font Family">
-            <option selected="selected" value="serif">serif</option>
-            <option value="sans-serif">sans-serif</option>
-            <option value="cursive">cursive</option>
-            <option value="fantasy">fantasy</option>
-            <option value="monospace">monospace</option>
-        </select>
-        <select id="font_size" class="text_tool" title="Change Font Size">
-            <option value="6pt">6pt</option>
-            <option value="8pt">8pt</option>
-            <option value="10pt">10pt</option>
-            <option selected="selected" value="12pt">12pt</option>
-            <option value="14pt">14pt</option>
-            <option value="16pt">16pt</option>
-            <option value="20pt">20pt</option>
-            <option value="24pt">24pt</option>
-            <option value="32pt">32pt</option>
-            <option value="48pt">48pt</option>
-            <option value="64pt">64pt</option>
-            <option value="72pt">72pt</option>
-            <option value="80pt">80pt</option>
-            <option value="96pt">96pt</option>
-            <option value="120pt">120pt</option>
-        </select>
-        <input id="text" class="text_tool" type="text" title="Change text contents" size="35">
-    </div>
+	<div id="line_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="line_tool">x1:</label>
+		<input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" size="3"/>
+		<label class="line_tool">y1:</label>
+		<input id="line_y1" class="line_tool attr_changer" title="Change line's starting y coordinate" size="3"/>
+		<label class="line_tool">x2:</label>
+		<input id="line_x2" class="line_tool attr_changer" title="Change line's ending x coordinate" size="3"/>
+		<label class="line_tool">y2:</label>
+		<input id="line_y2" class="line_tool attr_changer" title="Change line's ending y coordinate" size="3"/>
+	</div>
+
+	<div id="text_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="text_tool">x:</label>
+		<input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" size="3"/>
+		<label class="text_tool">y:</label>
+		<input id="text_y" class="text_tool attr_changer" title="Change text Y coordinate" size="3"/>
+		<img class="tool_button" id="tool_bold" src="%(htdocs)s/images/bold.png" title="Bold Text [B]" alt="Bold"/>
+		<img class="tool_button" id="tool_italic" src="%(htdocs)s/images/italic.png" title="Italic Text [I]" alt="Italic"/>
+		<select id="font_family" class="text_tool" title="Change Font Family">
+			<option selected="selected" value="serif">serif</option>
+			<option value="sans-serif">sans-serif</option>
+			<option value="cursive">cursive</option>
+			<option value="fantasy">fantasy</option>
+			<option value="monospace">monospace</option>
+		</select>
+		<select id="font_size" class="text_tool" title="Change Font Size">
+			<option value="6pt">6pt</option>
+			<option value="8pt">8pt</option>
+			<option value="10pt">10pt</option>
+			<option selected="selected" value="12pt">12pt</option>
+			<option value="14pt">14pt</option>
+			<option value="16pt">16pt</option>
+			<option value="20pt">20pt</option>
+			<option value="24pt">24pt</option>
+			<option value="32pt">32pt</option>
+			<option value="48pt">48pt</option>
+			<option value="64pt">64pt</option>
+			<option value="72pt">72pt</option>
+			<option value="80pt">80pt</option>
+			<option value="96pt">96pt</option>
+			<option value="120pt">120pt</option>
+		</select>
+		<input id="text" class="text_tool" type="text" title="Change text contents" size="35"/>
+	</div>
 </div> <!-- tools_top -->
 
 <div id="tools_left" class="tools_panel">
-    <img class="tool_button_current" id="tool_select" src="%(htdocs)s/images/select.png" title="Select Tool [1]" alt="Select"><br>
-    <img class="tool_button" id="tool_path" src="%(htdocs)s/images/path.png" title="Pencil Tool [2]" alt="Pencil"><br>
-    <img class="tool_button" id="tool_line" src="%(htdocs)s/images/line.png" title="Line Tool [3]" alt="Line"><br>
-    <img class="tool_button" id="tools_rect_show" src="%(htdocs)s/images/square.png" title="Square/Rect Tool [4/Shift+4]" alt="Square">
-    <img class="flyout_arrow_horiz" src="%(htdocs)s/images/flyouth.png">
-    <img class="tool_button" id="tools_ellipse_show" src="%(htdocs)s/images/circle.png" title="Ellipse/Circle Tool [5/Shift+5]" alt="Circle"><br>
-    <img class="flyout_arrow_horiz" src="%(htdocs)s/images/flyouth.png">
-    <img class="tool_button" id="tool_text" src="%(htdocs)s/images/text.png" title="Text Tool [6]" alt="Text">
-    <img class="tool_button" id="tool_poly" src="%(htdocs)s/images/polygon.png" title="Poly Tool [7]" alt="Poly">
-    <img class="tool_button" id="tool_image" src="%(htdocs)s/images/image.png" title="Image Tool [8]" alt="Image">
+	<img class="tool_button_current" id="tool_select" src="%(htdocs)s/images/select.png" title="Select Tool [1]" alt="Select"/><br/>
+	<img class="tool_button" id="tool_path" src="%(htdocs)s/images/path.png" title="Pencil Tool [2]" alt="Pencil"/><br/>
+	<img class="tool_button" id="tool_line" src="%(htdocs)s/images/line.png" title="Line Tool [3]" alt="Line"/><br/>
+	<img class="tool_button" id="tools_rect_show" src="%(htdocs)s/images/square.png" title="Square/Rect Tool [4/Shift+4]" alt="Square"/>
+	<img class="flyout_arrow_horiz" src="%(htdocs)s/images/flyouth.png"/>
+	<img class="tool_button" id="tools_ellipse_show" src="%(htdocs)s/images/circle.png" title="Ellipse/Circle Tool [5/Shift+5]" alt="Circle"/><br/>
+	<img class="flyout_arrow_horiz" src="%(htdocs)s/images/flyouth.png"/>
+	<img class="tool_button" id="tool_text" src="%(htdocs)s/images/text.png" title="Text Tool [6]" alt="Text"/>
+	<img class="tool_button" id="tool_poly" src="%(htdocs)s/images/polygon.png" title="Poly Tool [7]" alt="Poly"/>
+	<img class="tool_button" id="tool_image" src="%(htdocs)s/images/image.png" title="Image Tool [8]" alt="Image"/>
+	<img class="tool_button" id="tool_zoom" src="%(htdocs)s/images/zoom.png" title="Zoom Tool [Ctrl+Up/Down]" alt="Zoom"/>
 </div> <!-- tools_left -->
 
 <div id="tools_bottom" class="tools_panel">
 
-    <div id="tools_bottom_1">
-        <select id="resolution">
-            <option selected="selected">640x480</option>
-            <option>800x600</option>
-            <option>1024x768</option>
-            <option>1280x960</option>
-            <option>1600x1200</option>
-            <option>Fit to Content</option>
-            <option>Custom</option>
-        </select>
-    </div>
+    <!-- Zoom buttons -->
+	<div id="zoom_panel">
+		<span class="zoom_tool">zoom:</span>
+		<input id="zoom" class="zoom_tool" title="Change zoom level" size="3" value="100" type="text"/>
+		<div id="zoom_dropdown">
+			<button></button>
+			<ul>
+				<li>100%%</li>
+				<li data-val="content">Fit to all content</li>
+				<li data-val="layer">Fit to layer content</li>
+				<li data-val="selection">Fit to selection</li>
+				<li data-val="canvas">Fit to canvas</li>
+				<li>25%%</li>
+				<li>50%%</li>
+				<li>100%%</li>
+				<li>200%%</li>
+				<li>400%%</li>
+				<li>1000%%</li>
+			</ul>
+		</div>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+	</div>
 
-    <div id="tools_bottom_2">
-        <table>
-        <tr>
-            <td>fill:</td>
-            <td><div id="fill_color" class="color_block"  title="Change fill color"></div></td>
-            <td><div id="fill_opacity">100 %%</div></td>
-        </tr><tr>
-            <td>stroke:</td>
-            <td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
-            <td><div id="stroke_opacity">100 %%</div></td>
-            <td>
-                <input id="stroke_width" title="Change stroke width" alt="Stroke Width" size="2" value="5" type="text">
-            </td>
-            <td>
-                <select id="stroke_style" title="Change stroke dash style">
-                    <option selected="selected" value="none">---</option>
-                    <option value="2,2">...</option>
-                    <option value="5,5">- -</option>
-                    <option value="5,2,2,2">- .</option>
-                    <option value="5,2,2,2,2,2">- ..</option>
-                </select>
-            </td>
-        </tr>
-        </table>
-    </div>
+	<div id="tools_bottom_2">
+		<table>
+		<tr>
+			<td>fill:</td>
+			<td><div id="fill_color" class="color_block"  title="Change fill color"></div></td>
+			<td colspan="3"><div id="fill_opacity">100%%</div></td>
+		</tr><tr>
+			<td>stroke:</td>
+			<td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
+			<td><div id="stroke_opacity">100 %%</div></td>
+			<td>
+				<input id="stroke_width" title="Change stroke width" size="2" value="5" type="text"/>
+			</td>
+			<td>
+				<select id="stroke_style" title="Change stroke dash style">
+					<option selected="selected" value="none">---</option>
+					<option value="2,2">...</option>
+					<option value="5,5">- -</option>
+					<option value="5,2,2,2">- .</option>
+					<option value="5,2,2,2,2,2">- ..</option>
+				</select>
+			</td>
+		</tr>
+		</table>
+	</div>
 
-    <div id="tools_bottom_3">
-        <div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
-        <div id="copyright">Powered by <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.4-unstable</a></div>
-    </div>
+	<div id="tools_bottom_3">
+		<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
+		<div id="copyright">Powered by <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.4-unstable</a></div>
+	</div>
 </div>
 
 <!-- hidden divs -->
 <div id="color_picker"></div>
 
 <div id="tools_rect" class="tools_flyout">
-    <div id="tool_square" class="tool_flyout_button" title="Square"></div>
-    <div id="tool_rect" class="tool_flyout_button" title="Rectangle"></div>
-    <div id="tool_fhrect" class="tool_flyout_button" title="Free-Hand Rectangle"></div>
+	<div id="tool_square" class="tool_flyout_button" title="Square"></div>
+	<div id="tool_rect" class="tool_flyout_button" title="Rectangle"></div>
+	<div id="tool_fhrect" class="tool_flyout_button" title="Free-Hand Rectangle"></div>
 </div>
 
 <div id="tools_ellipse" class="tools_flyout">
-    <div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
-    <div id="tool_ellipse" class="tool_flyout_button" title="Ellipse"></div>
-    <div id="tool_fhellipse" class="tool_flyout_button" title="Free-Hand Ellipse"></div>
-</div>
-
-<div id="tools_stacking" class="tools_flyout_v">
-    <div id="tool_stacktop" class="tool_flyout_button" title="Move to Top [Shift+Up]"></div>
-    <div id="tool_stackbottom" class="tool_flyout_button" title="Move to Bottom [Shift+Down]"></div>
-</div>
-
-<div id="tools_align" class="tools_flyout_v">
-    <div id="tool_aligntop" class="tool_flyout_button" title="Align to Top"></div>
-    <div id="tool_alignbottom" class="tool_flyout_button" title="Align to Bottom"></div>
-    <div id="tool_alignmiddle" class="tool_flyout_button" title="Align to Middle"></div>
-    <div id="tool_alignleft" class="tool_flyout_button" title="Align to Left"></div>
-    <div id="tool_alignright" class="tool_flyout_button" title="Align to Right"></div>
-    <div id="tool_aligncenter" class="tool_flyout_button" title="Align to Center"></div>
+	<div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
+	<div id="tool_ellipse" class="tool_flyout_button" title="Ellipse"></div>
+	<div id="tool_fhellipse" class="tool_flyout_button" title="Free-Hand Ellipse"></div>
 </div>
 
 </div> <!-- svg_editor -->
 
 <div id="svg_source_editor">
-    <div id="svg_source_overlay"></div>
-    <div id="svg_source_container">
-        <div id="tool_source_back" class="toolbar_button">
-            <button id="tool_source_save">Save</button>
-            <button id="tool_source_cancel">Cancel</button>
-        </div>
-        <form>
-            <textarea id="svg_source_textarea"></textarea>
-        </form>
-    </div>
+	<div id="svg_source_overlay"></div>
+	<div id="svg_source_container">
+		<div id="tool_source_back" class="toolbar_button">
+			<button id="tool_source_save">Save</button>
+			<button id="tool_source_cancel">Cancel</button>
+		</div>
+		<form>
+			<textarea id="svg_source_textarea"></textarea>
+		</form>
+	</div>
+</div>
+
+<div id="svg_docprops">
+	<div id="svg_docprops_overlay"></div>
+	<div id="svg_docprops_container">
+		<div id="tool_docprops_back" class="toolbar_button">
+			<button id="tool_docprops_save">Save</button>
+			<button id="tool_docprops_cancel">Cancel</button>
+
+			<fieldset id="change_background">
+				<legend>Canvas Background</legend>
+					<div id="bkgnd_color" class="color_block"  title="Change background color/opacity"></div>
+			</fieldset>
+			
+			<fieldset id="change_resolution">
+				<legend>Canvas Dimensions</legend>
+
+				<label>Width: <input type="text" id="canvas_width" size="6"></label>
+					
+				<label>Height: <input type="text" id="canvas_height" size="6"></label>
+					
+				<label>
+					<select id="resolution">
+						<option selected="selected">Select predefined:</option>
+						<option>640x480</option>
+						<option>800x600</option>
+						<option>1024x768</option>
+						<option>1280x960</option>
+						<option>1600x1200</option>
+						<option value="content">Fit to Content</option>
+					</select>
+				</label>
+				
+			</fieldset>
+		</div>
+	</div>
 </div>
 
 """ % {"htdocs": htdocs,
--- a/htdocs/svg-edit/CHANGES.current	Wed Sep 23 20:52:24 2009 +0200
+++ b/htdocs/svg-edit/CHANGES.current	Wed Sep 23 21:57:39 2009 +0200
@@ -13,6 +13,6 @@
  * adjust coordinates for drawing tools (offset probably from relative)
  * Link Syntax for attachments
 
-SVG-edit is a lightweight, web-based, Javascript-driven SVG editor that works in any modern browser: version of svg-edit Revision r630 (http://code.google.com/p/svg-edit/) for moin-1.9
+SVG-edit is a lightweight, web-based, Javascript-driven SVG editor that works in any modern browser: version of svg-edit Revision r699 (http://code.google.com/p/svg-edit/) for moin-1.9
 
 htdocs/svg-edit must be linked into MoinMoin/web/static/htdocs
--- a/htdocs/svg-edit/editor/svg-editor.css	Wed Sep 23 20:52:24 2009 +0200
+++ b/htdocs/svg-edit/editor/svg-editor.css	Wed Sep 23 21:57:39 2009 +0200
@@ -3,6 +3,9 @@
 }
 
 #svg_editor {
+	position: relative;
+	width: 660px;
+	height: 640px;
 	font-size: 8pt;
 	font-family: Verdana, Helvetica, Arial;
 	color: #000000;
@@ -26,6 +29,7 @@
 }
 
 #svg_editor #svgcanvas {
+	position: relative;
 	background-color: #FFFFFF;
 	text-align: center;
 	vertical-align: middle;
@@ -35,6 +39,7 @@
 }
 
 #svg_editor div#palette_holder {
+	position: relative;
 	overflow-x: scroll;
 	overflow-y: hidden;
 	height: 31px;
@@ -58,10 +63,11 @@
 
 #svg_editor div#workarea {
 	display: inline-block;
-	position:absolute;
-	top: 75px;
+	position: relative;
+	width: 100%;
+	top: 80px;
 	left: 40px;
-	bottom: 60px;
+	bottom: 0px;
 	right: 155px;
 	background-color: #A0A0A0;
 	border: 1px solid #808080;
@@ -71,10 +77,10 @@
 #svg_editor #sidepanels {
 	display: inline-block;
 	background-color: #E8E8E8;
-	position:absolute;
-	top: 75px;
-	bottom: 60px;
-	right: 0px;
+	position: absolute;
+	top: 80px;
+	bottom: 80px;
+	right: -200px;
 	width: 126px;
 	border-color: #808080;
 	border-style: solid;
@@ -140,6 +146,7 @@
 }
 
 #svg_editor #logo {
+	display: None;
 	position: absolute;
 	top: 4px;
 	left: 4px;
@@ -328,6 +335,7 @@
 }
 
 #svg_editor .tool_button_current {
+	position: relative;
 	border-left: 1px solid #808080;
 	border-top: 1px solid #808080;
 	border-right: 1px solid #FFFFFF;
@@ -336,11 +344,13 @@
 }
 
 #svg_editor .tool_button_disabled {
+	position: relative;
 	opacity: 0.5;
 	cursor: default;
 }
 
 #svg_editor .tool_sep {
+	position: relative;
 	width: 2px;
 	height: 24px;
 	margin: 2px;
@@ -400,6 +410,7 @@
 }
 
 #svg_editor #tools_rect .tool_flyout_button_current, #svg_editor #tools_ellipse .tool_flyout_button_current {
+	position: relative;
 	border-left: 1px solid #808080;
 	border-top: 1px solid #808080;
 	border-right: 1px solid #FFFFFF;
@@ -408,14 +419,16 @@
 }
 
 #svg_editor #tools_bottom {
-	position: absolute;
+	position: relative;
+	top: 80px;
 	left: 40px;
 	right: 2px;
 	bottom: 2px;
-	height: 60px;
+	height: 0px;
 }
 
 #svg_editor #tools_bottom_1 {
+	display: none;
 	width: 115px;
 	float: left;
 }
@@ -426,6 +439,7 @@
 }
 
 #svg_editor #tools_bottom_3 {
+	position: relative;
 }
 
 #svg_editor #copyright {
--- a/htdocs/svg-edit/editor/svg-editor.js	Wed Sep 23 20:52:24 2009 +0200
+++ b/htdocs/svg-edit/editor/svg-editor.js	Wed Sep 23 21:57:39 2009 +0200
@@ -12,7 +12,20 @@
 
 	var isMac = false; //(navigator.platform.indexOf("Mac") != -1);
 	var modKey = ""; //(isMac ? "meta+" : "ctrl+");
+	var htdocs = document.getElementById("htdocs").innerHTML.replace('<!-- ', '').replace(' -->', '');
 	var svgCanvas = new SvgCanvas(document.getElementById("svgcanvas"));
+	// because moin uses currently HTML 4.0.1 we send the data as a comment in the HTML code
+	var svgdata = document.getElementById("svgdata").innerHTML;
+	var filecontent = svgdata.slice(8, svgdata.length - 9);
+	if (filecontent != '') {
+	    if (!svgCanvas.setSvgString(filecontent)) {
+	        if(!confirm('There were parsing errors in your SVG source.\nRevert back to original SVG source?') ) {
+	           return false;
+	        }
+	    }
+	    svgCanvas.clearSelection();
+	}
+
 
 	var setSelectMode = function() {
 		$('.tool_button_current').removeClass('tool_button_current').addClass('tool_button');
@@ -39,7 +52,19 @@
 	// with a gradient will appear black in Firefox, etc.  See bug 308590
 	// https://bugzilla.mozilla.org/show_bug.cgi?id=308590
 	var saveHandler = function(window,svg) {
-		window.open("data:image/svg+xml;base64," + Utils.encode64(svg));
+	var titlename = window.content.parent.document.title.split('-')[0];
+	titlename = titlename.replace(' ', '');
+	var svg_data = Utils.encode64(svg);
+	var pagename = titlename.split(':')[0];
+	var svg_target = titlename.split(':')[1];
+	$.post(
+	        pagename,
+	        {'action': "SvgEditor", 'do': "save", 'target': svg_target, 'svg_data': svg_data}
+	      );
+	// redirects to the page
+	window.location = location.pathname;
+
+		//window.open("data:image/svg+xml;base64," + Utils.encode64(svg));
 	};
 
 	// called when we've selected a different element
@@ -515,14 +540,14 @@
 			flyoutspeed = 'normal';
 			svgCanvas.setMode('square');
 		}
-		$('#tools_rect_show').attr('src', 'images/square.png');
+		$('#tools_rect_show').attr('src', htdocs + 'images/square.png');
 	};
 
 	var clickRect = function(){
 		if (toolButtonClick('#tools_rect_show')) {
 			svgCanvas.setMode('rect');
 		}
-		$('#tools_rect_show').attr('src', 'images/rect.png');
+		$('#tools_rect_show').attr('src', htdocs + 'images/rect.png');
 	};
 
 	var clickImage = function(){
@@ -552,7 +577,7 @@
 		if (toolButtonClick('#tools_rect_show')) {
 			svgCanvas.setMode('fhrect');
 		}
-		$('#tools_rect_show').attr('src', 'images/freehand-square.png');
+		$('#tools_rect_show').attr('src', htdocs + 'images/freehand-square.png');
 	};
 
 	var clickCircle = function(){
@@ -560,21 +585,21 @@
 			flyoutspeed = 'normal';
 			svgCanvas.setMode('circle');
 		}
-		$('#tools_ellipse_show').attr('src', 'images/circle.png');
+		$('#tools_ellipse_show').attr('src', htdocs + 'images/circle.png');
 	};
 
 	var clickEllipse = function(){
 		if (toolButtonClick('#tools_ellipse_show')) {
 			svgCanvas.setMode('ellipse');
 		}
-		$('#tools_ellipse_show').attr('src', 'images/ellipse.png');
+		$('#tools_ellipse_show').attr('src', htdocs + 'images/ellipse.png');
 	};
 
 	var clickFHEllipse = function(){
 		if (toolButtonClick('#tools_ellipse_show')) {
 			svgCanvas.setMode('fhellipse');
 		}
-		$('#tools_ellipse_show').attr('src', 'images/freehand-circle.png');
+		$('#tools_ellipse_show').attr('src', htdocs + 'images/freehand-circle.png');
 	};
 
 	var clickText = function(){