diff --git a/src/graphxq.xqm b/src/graphxq.xqm index 9bf5956..fa21987 100644 --- a/src/graphxq.xqm +++ b/src/graphxq.xqm @@ -49,12 +49,19 @@ function graphxq-svg($dot,$url,$dl) { return ($down[$dl],$svg) }; +(:~ +: display dot edit form +: @param src load from url +:) declare %rest:GET %rest:path("graphxq/dot") %output:method("html5") -function dotform(){ +%rest:form-param("src","{$src}") +function dotform($src){ + let $dot:= getdot("digraph {{a -> b}}",$src) let $map:=map{"list-shapes":=dotui:shapes(""), - "list-colors":=dotui:colors("")} + "list-colors":=dotui:colors(""), + "dot":=$dot} return render("graphxq/views/dotform.xml",$map) }; @@ -97,7 +104,15 @@ declare %private function get-svg($dot as xs:string) as node(){ }; declare function render($template,$locals){ - let $default:=map{"sidebar":="Sidebar..." , + let $sidebar:=
+ +
+ let $default:=map{"sidebar":=$sidebar , "usermenu":=
users
, "title":=request:path(), "messages":=()} diff --git a/src/graphxq/app.js b/src/graphxq/app.js index c6b198b..debb8d2 100644 --- a/src/graphxq/app.js +++ b/src/graphxq/app.js @@ -71,6 +71,7 @@ function getsvg(dl){ var n = document.importNode(data.documentElement,true); $("#svgdiv").empty().append(n); $("#svgsrc").empty().text(str); + $("#svgdiv svg").svgPan("graph1"); } }); }; diff --git a/src/graphxq/jquery-svgpan.js b/src/graphxq/jquery-svgpan.js index 881c851..5e70468 100644 --- a/src/graphxq/jquery-svgpan.js +++ b/src/graphxq/jquery-svgpan.js @@ -163,9 +163,10 @@ offsetX = evt.pageX - offset.left; offsetY = evt.pageY - offset.top; } - - p.x = offsetX; - p.y = offsetY; +p.x = evt.originalEvent.clientX - root.getBoundingClientRect().left; +p.y = evt.originalEvent.clientY - root.getBoundingClientRect().top; + // p.x = offsetX; + // p.y = offsetY; return p; }, diff --git a/src/graphxq/views/dotform.xml b/src/graphxq/views/dotform.xml index 1c288b9..45acb64 100644 --- a/src/graphxq/views/dotform.xml +++ b/src/graphxq/views/dotform.xml @@ -8,17 +8,14 @@
-
- - - -
+
- - }} + {{ + }} @@ -58,6 +55,11 @@
+
+ + + +
svg here