get rid of intermediate local analysis DB
[scpubgit/stemmaweb.git] / root / js / stexaminer.js
CommitLineData
b8a92065 1var colors = ['#ffeeaa','#afc6e9','#d5fff6','#ffccaa','#ffaaaa','#e5ff80','#e5d5ff','#ffd5e5'];
2var row_triggered = false;
be8bf746 3var original_svg;
4
5function handle_row_click( row ) {
6 var ridx = row.parent().parent().index()
7 var rs = readingstats[ridx];
8 var imghtml = '<img src="../images/ajax-loader.gif" alt="Loading SVG..."/>'
9 $('#stemma_graph').empty();
10 $('#stemma_graph').append( imghtml );
11 if( rs.layerwits ) {
12 var stemma_form = { 'dot': graphdot, 'layerwits': rs.layerwits };
13 $('#stemma_graph').load( 'graphsvg', stemma_form, function() {
14 color_row( row );
15 show_stats( rs );
16 });
17 } else {
18 $('#stemma_graph').empty();
19 $('#stemma_graph').append( original_svg );
20 color_row( row );
21 show_stats( rs );
22 }
23}
d5514865 24
25function color_row( row ) {
b8a92065 26 row_triggered = true;
f007ac1e 27 $('ellipse').attr( {stroke:'white', fill:'#fff'} );
b8a92065 28 $('.node').children('polygon').attr( {stroke:'#fff', fill:'#fff'} );
29 $('.node').children('text').attr( {stroke:'none', fill:'#000'} );
30 $('tr.active_variant_row').children('td').removeClass('cellb0 cellb1 cellb2 cellb3 cellb4 cellb5 cellb6 cellb7');
d5514865 31 row.parent().nextAll('.clickable').children('span').click();
b8a92065 32 $('td.active_variant_cell').removeClass('active_variant_cell');
33 row_triggered = false;
d5514865 34}
35
b8a92065 36function color_nodes( column_index, arr_node_ids, arr_greynode_ids ) {
37 if( !row_triggered ) {
38 $('tr.active_variant_row').children('td').removeClass('cellb0 cellb1 cellb2 cellb3 cellb4 cellb5 cellb6 cellb7');
39 $('td.active_variant_cell').removeClass('active_variant_cell');
f007ac1e 40 $('ellipse').attr( {stroke:'white', fill:'#fff'} );
b8a92065 41 $('.node').children('polygon').attr( {stroke:'#fff', fill:'#fff'} );
42 $('.node').children('text').attr( {stroke:'none', fill:'#000'} );
43 };
44 $('tr.active_variant_row').removeClass('active_variant_row')
45 jQuery.each( arr_greynode_ids, function(index,value) {
46 nodes = $('.node').children('title').filter( function(index) {
47 return $(this).text() == value;
48 })
49 nodes.siblings('ellipse, polygon, text').each( function( index ) {
50 $(this).attr( {stroke:'#ddd', fill:'#f8f8f8'} );
51 });
52 });
53 jQuery.each( arr_node_ids, function(index,value) {
54 $('.node').children('title').filter( function(index) {
55 return $(this).text() == value;
56 }).siblings('ellipse').each( function( index ) {
57 $(this).attr( {stroke:'black', fill:colors[column_index-1]} );
58 });
59 });
60}
ef3db56f 61
be8bf746 62function show_stats( rs ) {
ef3db56f 63 var rshtml = $('#stats_template').clone();
64 rshtml.find('#statrank').append( rs.id );
65 $.each( rs.readings, function( idx, rdghash ) {
ef3db56f 66 var rdgstats = $('#reading_template').clone();
5089c3b7 67 rdgstats.find('.readinglabel').append( rdghash.text );
ef3db56f 68 rdgstats.find('.reading_copied').append( rdghash.followed );
69 rdgstats.find('.reading_changed').append( rdghash.not_followed );
70 rdgstats.find('.reading_unclear').append( rdghash.follow_unknown );
5089c3b7 71 rdgstats.find('.readingroots').append( rdghash.independent_occurrence );
f7371955 72 if( rdghash.is_reverted ) {
73 rdgstats.find('.reversionroots').append( rdghash.reversions );
74 } else {
75 rdgstats.find('.readingreversions').empty();
ef3db56f 76 }
f7371955 77 rdgstats.find('.reading_statistics').append(
78 fill_parent_template( rdghash, 'source' ) );
79 rdgstats.find('.reading_statistics').append(
80 fill_parent_template( rdghash, 'reversion' ) );
ef3db56f 81 rshtml.append( rdgstats.contents() );
82 });
83 $('#row_statistics').empty();
84 $('#row_statistics').append( rshtml.contents() );
f7371955 85
ef3db56f 86};
be8bf746 87
f7371955 88function fill_parent_template( rdghash, type ) {
89 var objname = type + '_parents';
90 var template_id = '#reading_' + type + '_template';
91 var list_class = '.reading_' + type + '_list';
92 if( ! $.isEmptyObject( rdghash[objname] ) ) {
93 var parentstats = $( template_id ).clone();
94 $.each( rdghash[objname], function( parentid, pdata ) {
95 var parentdesc = pdata.label;
96 if( pdata.relation ) {
97 parentdesc += ' - variant type ' + pdata.relation.type;
98 if( pdata.relation.annotation ) {
99 parentdesc += ' [ ' + pdata.relation.annotation + ' ]';
100 }
101 } else {
102 parentdesc += ' - no syntactic relation';
103 }
104 var parentitem = $('<li>').append( parentdesc );
105 parentstats.find( list_class ).append( parentitem );
106 });
107 return( parentstats.contents() );
108 }
109}
110
be8bf746 111// Save the original unextended SVG for when we need it.
112$(document).ready(function () {
113 original_svg = $('#stemma_graph > svg').clone();
2fd8f80c 114
115 $('#aboutlink').popupWindow({
116 height:500,
117 width:800,
118 top:50,
119 left:50,
120 scrollbars:1
121 });
122 $('#options').dialog({
123 autoOpen: false,
124 height: 200,
125 width: 300,
126 modal: true,
127 buttons: {
128 Cancel: function() {
129 $(this).dialog( "close" );
130 },
131 Reanalyze: function() {
132 $('#use_variants_form').submit();
133 },
134 }
135 });
136
be8bf746 137});