From 4cd626ef490c7d5c8d6ee3e40fb3e3d6abde9f94 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Tue, 23 Feb 2010 17:24:23 -0600 Subject: [PATCH] Cleanup itex extension Most of the DOM manipulations can be done before doing the AJAX call. This leaves just the insertion of the MathML nodes in the mrow for the AJAX callback function. Also, make the stroke-width for the connector tool default to 2. --- .../editor/extensions/ext-connector.js | 2 +- public/svg-edit/editor/extensions/ext-itex.js | 25 +++++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/public/svg-edit/editor/extensions/ext-connector.js b/public/svg-edit/editor/extensions/ext-connector.js index f64b6610..7083217f 100644 --- a/public/svg-edit/editor/extensions/ext-connector.js +++ b/public/svg-edit/editor/extensions/ext-connector.js @@ -305,7 +305,7 @@ $(function() { "id": getNextId(), "points": (x+','+y+' '+x+','+y+' '+start_x+','+start_y), "stroke": '#000', - "stroke-width": 3, + "stroke-width": 2, "fill": "none", "opacity": .5, "style": "pointer-events:none" diff --git a/public/svg-edit/editor/extensions/ext-itex.js b/public/svg-edit/editor/extensions/ext-itex.js index b8ad543a..9368876f 100644 --- a/public/svg-edit/editor/extensions/ext-itex.js +++ b/public/svg-edit/editor/extensions/ext-itex.js @@ -60,24 +60,27 @@ $(function() { function setItexString(tex) { var elt = selElems[0]; try { - math = svgdoc.createElementNS(mathns, 'math'); + var math = svgdoc.createElementNS(mathns, 'math'); + math.setAttributeNS(xmlnsns, 'xmlns', mathns); + math.setAttribute('display', 'inline'); + var semantics = document.createElementNS(mathns, 'semantics'); + var annotation = document.createElementNS(mathns, 'annotation'); + annotation.setAttribute('encoding', 'application/x-tex'); + annotation.textContent = tex; + var mrow = document.createElementNS(mathns, 'mrow'); + semantics.appendChild(mrow); + semantics.appendChild(annotation); + math.appendChild(semantics); // make an AJAX request to the server, to get the MathML $.post(ajaxEndpoint, {'tex': tex, 'display': 'inline'}, function(data){ - math.setAttributeNS(xmlnsns, 'xmlns', mathns); - math.setAttribute('display', 'inline'); - var semantics = document.createElementNS(mathns, 'semantics'); - var annotation = document.createElementNS(mathns, 'annotation'); - annotation.setAttribute('encoding', 'application/x-tex'); - annotation.textContent = tex; - var mrow = document.createElementNS(mathns, 'mrow'); var children = data.documentElement.childNodes; while (children.length > 0) { mrow.appendChild(children[0]); } - semantics.appendChild(mrow); - semantics.appendChild(annotation); - math.appendChild(semantics); S.sanitizeSvg(math); + //elt.setAttribute('width', math.clientWidth+5); + //elt.setAttribute('height', math.clientHeight+5); + S.call("changed", [elt]); }); elt.replaceChild(math, elt.firstChild); S.call("changed", [elt]);