add index page link to stexaminer and relmapper
[scpubgit/stemmaweb.git] / root / src / index.tt
index 6ed683e..53bf324 100644 (file)
@@ -7,6 +7,7 @@ var basepath = window.location.pathname
 if( basepath.lastIndexOf('/') == basepath.length - 1 ) { 
        basepath = basepath.slice( 0, basepath.length - 1) 
 };
+var textOnLoad = "[% withtradition %]";
 var selectedTextID;
 var selectedTextInfo;
 var selectedStemmaID = -1;
@@ -20,6 +21,13 @@ function refreshDirectory () {
                        if (status == "error") {
                                var msg = "An error occurred: ";
                                $("#directory").html(msg + xhr.status + " " + xhr.statusText);
+                       } else {
+                               if( textOnLoad != "" ) {
+                                       // Call the click callback for the relevant text, if it is
+                                       // in the page.
+                                       $('#'+textOnLoad).click();
+                                       textOnLoad = "";
+                               }
                        }
                }
        );
@@ -183,6 +191,48 @@ $(document).ready( function() {
                    $('#filelist').empty().html( 'Use the \'Pick\' button to choose a source fileā€¦' );
                }
        });
+       
+       $('#stemma_graph').mousedown( function(evt) {
+        evt.stopPropagation();
+        $('#stemma_graph').data( 'mousedown_xy', [evt.clientX, evt.clientY] );
+        $('body').mousemove( function(evt) {
+            mouse_scale = 1; // for now, was:  mouse_scale = svg_root_element.getScreenCTM().a;
+            dx = (evt.clientX - $('#stemma_graph').data( 'mousedown_xy' )[0]) / mouse_scale;
+            dy = (evt.clientY - $('#stemma_graph').data( 'mousedown_xy' )[1]) / mouse_scale;
+            $('#stemma_graph').data( 'mousedown_xy', [evt.clientX, evt.clientY] );
+            var svg_root = $('#stemma_graph svg').svg().svg('get').root();
+            var g = $('g.graph', svg_root).get(0);
+            current_translate = g.getAttribute( 'transform' ).split(/translate\(/)[1].split(')',1)[0].split(' ');
+            new_transform = g.getAttribute( 'transform' ).replace( /translate\([^\)]*\)/, 'translate(' + (parseFloat(current_translate[0]) + dx) + ' ' + (parseFloat(current_translate[1]) + dy) + ')' );
+            g.setAttribute( 'transform', new_transform );
+            evt.returnValue = false;
+            evt.preventDefault();
+            return false;
+        });
+        $('body').mouseup( function(evt) {
+            $('body').unbind('mousemove');
+            $('body').unbind('mouseup');
+        });
+       });
+        
+       $('#stemma_graph').mousewheel(function (event, delta) {
+        event.returnValue = false;
+        event.preventDefault();
+        if (!delta || delta == null || delta == 0) delta = event.originalEvent.wheelDelta;
+        if (!delta || delta == null || delta == 0) delta = -1 * event.originalEvent.detail;
+        if( delta < -9 ) { delta = -9 }; 
+        var z = 1 + delta/10;
+        z = delta > 0 ? 1 : -1;
+        var svg_root = $('#stemma_graph svg').svg().svg('get').root();
+        var g = $('g.graph', svg_root).get(0);
+        if (g && ((z<1 && (g.getScreenCTM().a * start_element_height) > 4.0) || (z>=1 && (g.getScreenCTM().a * start_element_height) < 1000))) {
+            var scaleLevel = z/10;
+            current_scale = parseFloat( g.getAttribute( 'transform' ).split(/scale\(/)[1].split(')',1)[0].split(' ')[0] );
+            new_transform = g.getAttribute( 'transform' ).replace( /scale\([^\)]*\)/, 'scale(' + (current_scale + scaleLevel) + ')' );
+            g.setAttribute( 'transform', new_transform );
+        }
+    });
+    
 });
     </script>
 
@@ -190,7 +240,7 @@ $(document).ready( function() {
 
     <div id="topbanner">
       <h1>Stemmaweb - a collection of tools for analysis of collated texts</h1>
-      <span class="mainnav">[% IF c.user_exists %]Hello! [% c.user.get_object.email %] <a class="navlink" href="[% c.uri_for( '/logout' ) %]">Sign out</a> | [% ELSE %]<a class="navlink" onclick="window.open('[% c.uri_for( '/login' ) %]', 'loginwindow', 'height=385,width=445')">Login</a> | <a class="navlink" onclick="window.open('[% c.uri_for( '/register' ) %]', 'regwindow', 'height=385,width=445')">Register</a> | [% END %]<a class="navlink" href="[% c.uri_for( 'about.html' ) %]">About</a> </span>
+      <span class="mainnav">[% IF c.user_exists %]Hello! [% c.user.get_object.email %] <a class="navlink" href="[% c.uri_for( '/logout' ) %]">Sign out</a> | [% ELSE %]<a class="navlink" onclick="window.open('[% c.uri_for( '/login' ) %]', 'loginwindow', 'height=385,width=445')">Login</a> | [% END %]<a class="navlink" href="[% c.uri_for( 'about.html' ) %]">About</a> </span>
     </div>
     <div id="directory_container">
       <h2>Text directory</h2>
@@ -208,6 +258,12 @@ $(document).ready( function() {
     <div id="textinfo_container">
       <div id="textinfo_load_status"></div>
       <h2>Text <span class="texttitle"></span></h2>
+      <form id="open_textinfo_edit" action="" method="GET" name="edit_textinfo">
+        <div class="button" id="edit_textinfo_button"
+               onClick="$('#textinfo-edit-dialog').dialog('open')">
+         <span>Modify information about this tradition</span>
+        </div>
+      </form>
       <ul>
          <li>is owned by <span id="owner_id"></span></li>
          <li>is <span id="not_public"></span>public</li>
@@ -215,17 +271,11 @@ $(document).ready( function() {
              <li>has <span id="witness_num"></span> witnesses: <span id="witness_list"></span></li>
       </ul>
       
-      <!-- TODO buttons on either side of the graph div to flip through the stemmata -->
       <div id="textinfo_container_buttons">
-          <form id="open_textinfo_edit" action="" method="GET" name="edit_textinfo">
-            <div class="button" id="edit_textinfo_button"
-               onClick="$('#textinfo-edit-dialog').dialog('open')">
-                 <span>Modify information about this tradition</span>
-            </div>
-          </form>
           <form id="stemma_pager" action="" method="GET" name="stemma_pager">
-            <div class="button" id="stemma_pager_button" onClick="$('#stemma_pager').submit()">
-                 <span>Left &amp; right go here</span>
+            <div id="stemma_pager_buttons">
+              <div class="pager_left_button" id="stemma_pager_left_button"></div>
+              <div class="pager_right_button" id="stemma_pager_right_button"></div>
             </div>
           </form>
           <form id="open_stemma_add" action="" method="GET" name="add_new_stemma">