From ae0274783d8fdd527afc167f989b5ad60990da38 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Sat, 6 Mar 2010 18:28:51 -0600 Subject: [PATCH 1/2] Small Fixes Get rid of 'markdown' attribute on SVG-Edit whitelist (it's no longer needed). Slightly smarter detection of existing SVGs. --- public/javascripts/page_helper.js | 2 +- public/svg-edit/editor/svgcanvas.js | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/public/javascripts/page_helper.js b/public/javascripts/page_helper.js index 53efdc73..65e8eefb 100644 --- a/public/javascripts/page_helper.js +++ b/public/javascripts/page_helper.js @@ -136,7 +136,7 @@ function setupSVGedit(path){ selected = t.value.slice(begin, end); after = t.value.slice(end, t.value.length); if (selected && selected != '') { - if ( selected.match(/^$/) ) { + if ( selected.match(/^$/) && !selected.match(/<\/svg>(.|\n)/)) { SVGeditButton.disabled = false; SVGeditButton.value = 'Edit existing SVG graphic'; } else { diff --git a/public/svg-edit/editor/svgcanvas.js b/public/svg-edit/editor/svgcanvas.js index 6b893dc4..47f9df5d 100644 --- a/public/svg-edit/editor/svgcanvas.js +++ b/public/svg-edit/editor/svgcanvas.js @@ -99,7 +99,7 @@ var isOpera = !!window.opera, "ellipse": ["class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"], "feGaussianBlur": ["class", "id", "requiredFeatures", "stdDeviation"], "filter": ["class", "filterRes", "filterUnits", "height", "id", "primitiveUnits", "requiredFeatures", "width", "x", "xlink:href", "y"], - "foreignObject": ["class", "font-size", "height", "id", "markdown", "opacity", "overflow", "requiredFeatures", "style", "transform", "width", "x", "y"], + "foreignObject": ["class", "font-size", "height", "id", "opacity", "requiredFeatures", "style", "transform", "width", "x", "y"], "g": ["class", "clip-path", "clip-rule", "id", "display", "fill", "fill-opacity", "fill-rule", "filter", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"], "image": ["class", "clip-path", "clip-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "style", "systemLanguage", "transform", "width", "x", "xlink:href", "xlink:title", "y"], "line": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "x1", "x2", "y1", "y2"], @@ -114,7 +114,7 @@ var isOpera = !!window.opera, "radialGradient": ["class", "cx", "cy", "fx", "fy", "gradientTransform", "gradientUnits", "id", "r", "requiredFeatures", "spreadMethod", "systemLanguage", "xlink:href"], "rect": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "width", "x", "y"], "stop": ["class", "id", "offset", "requiredFeatures", "stop-color", "stop-opacity", "style", "systemLanguage"], - "svg": ["class", "clip-path", "clip-rule", "filter", "id", "height", "markdown", "mask", "preserveAspectRatio", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xmlns", "xmlns:se", "xmlns:xlink", "y"], + "svg": ["class", "clip-path", "clip-rule", "filter", "id", "height", "mask", "preserveAspectRatio", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xmlns", "xmlns:se", "xmlns:xlink", "y"], "switch": ["class", "id", "requiredFeatures", "systemLanguage"], "symbol": ["class", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "opacity", "preserveAspectRatio", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "viewBox"], "text": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "transform", "x", "xml:space", "y"], @@ -1567,7 +1567,8 @@ function BatchCommand(text) { $.inArray(attr.localName, ['width','height','xmlns','x','y','viewBox','id','overflow']) == -1) { if(!attr.namespaceURI || nsMap[attr.namespaceURI]) { - out.push(' '); out.push(attr.nodeName); out.push("=\""); + out.push(' '); + out.push(attr.nodeName); out.push("=\""); out.push(attrVal); out.push("\""); } } @@ -7988,7 +7989,7 @@ function BatchCommand(text) { // Function: getVersion // Returns a string which describes the revision number of SvgCanvas. this.getVersion = function() { - return "svgcanvas.js ($Rev: 1443 $)"; + return "svgcanvas.js ($Rev: 1448 $)"; }; this.setUiStrings = function(strs) { From 9ed0772978adafb0836145f1c3a9a617b1e8075e Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Tue, 9 Mar 2010 12:20:37 -0600 Subject: [PATCH 2/2] Sync with latest SVG-Edit --- public/svg-edit/editor/svg-editor.css | 83 ++++++++++++++++++++++---- public/svg-edit/editor/svg-editor.html | 82 ++++++++++++++----------- public/svg-edit/editor/svg-editor.js | 17 ++++-- public/svg-edit/editor/svgcanvas.js | 3 +- 4 files changed, 136 insertions(+), 49 deletions(-) diff --git a/public/svg-edit/editor/svg-editor.css b/public/svg-edit/editor/svg-editor.css index 22795574..66188dbf 100644 --- a/public/svg-edit/editor/svg-editor.css +++ b/public/svg-edit/editor/svg-editor.css @@ -53,13 +53,14 @@ body { border: 1px solid #808080; border-top: none; margin-top: 2px; + margin-left: 4px; } #svg_editor #stroke_bg, #svg_editor #fill_bg { height: 16px; width: 16px; - margin: 2px; + margin: 1px; } #svg_editor #fill_color, #svg_editor #stroke_color { @@ -67,10 +68,14 @@ body { width: 16px; border: 1px solid #808080; cursor: pointer; - margin-top: -19px; + margin-top: -18px; margin-left: 1px; } +#tool_stroke select { + margin-top: 0; +} + #svg_editor div#palette { float: left; width: 6848px; @@ -82,7 +87,7 @@ body { position:absolute; top: 75px; left: 40px; - bottom: 60px; + bottom: 62px; right: 14px; background-color: #A0A0A0; border: 1px solid #808080; @@ -544,9 +549,6 @@ span.zoom_tool { margin-right: 0; } -#opacity_dropdown li { - width: 140px; -} #svg_editor .tool_button, #svg_editor .push_button, @@ -660,9 +662,10 @@ span.zoom_tool { #svg_editor #tools_bottom { position: absolute; left: 40px; - right: 2px; - bottom: 2px; - height: 60px; + right: 0; + bottom: 0; + height: 64px; + overflow: visible; } #svg_editor #tools_bottom_1 { @@ -671,15 +674,75 @@ span.zoom_tool { } #svg_editor #tools_bottom_2 { - width: 250px; + width: 204px; + position: relative; float: left; } +#svg_editor #color_tools { + display: table; + margin-top: 0px; + border-spacing: 0 4px; + clip: rect(0,0,10px,0); +} + +.color_tool { + display: table-row; + overflow: hidden; + height: 26px; + padding: 0 4px; +} + +.color_tool > * { + display: table-cell; + background: #f0f0f0; + padding: 0 5px; + vertical-align: middle; + height: 26px; +} + +.color_tool > *:first-child { + -moz-border-radius-topleft: 4px; + -moz-border-radius-bottomleft: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; +} + +.color_tool > *:last-child { + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + +} + +#svg_editor #tool_opacity { + position: absolute; + top: 4px; + right: 2px; + background: #f0f0f0; + height: 26px; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + padding: 0 3px; +} + +#tool_opacity .dropdown button { + margin-top: 2px; +} + +#opacity_dropdown li { + width: 140px; +} + + #svg_editor #tools_bottom_3 { } #svg_editor #copyright { text-align: right; + padding-right: .3em; } #svg_source_editor { diff --git a/public/svg-edit/editor/svg-editor.html b/public/svg-edit/editor/svg-editor.html index 0a971c08..baddecb8 100644 --- a/public/svg-edit/editor/svg-editor.html +++ b/public/svg-edit/editor/svg-editor.html @@ -164,24 +164,6 @@ script type="text/javascript" src="locale/locale.min.js"> --> -
- - -