Now with visible bridges.

This commit is contained in:
Edward Betts 2018-12-06 16:13:37 +00:00
parent d5c599c160
commit 6b86da3b51
2 changed files with 18 additions and 15 deletions
sourcing
static/js
templates/view

View file

@ -3,7 +3,6 @@
var doc1 = document.getElementById('doc1'); var doc1 = document.getElementById('doc1');
var edlform = document.getElementById('edlform'); var edlform = document.getElementById('edlform');
var max_zindex = 0; var max_zindex = 0;
var bridge_count = 0;
var link_bridge_count = 0; var link_bridge_count = 0;
var payment_params = {}; var payment_params = {};
var payment_content; var payment_content;
@ -37,12 +36,8 @@ function dragMoveListener (event) {
} }
function update() { function update() {
for(var i = 0; i < bridge_count; i++) {
update_bridge('bridge' + i, 'span' + i, 'transclusion' + i);
}
for(var i = 0; i < link_bridge_count; i++) { for(var i = 0; i < link_bridge_count; i++) {
update_bridge('linkbridge' + i, 'xanalink' + i, 'link' + i); update_bridge('linkbridge' + i, 'link1_' + i, 'link2_' + i);
} }
} }
@ -52,6 +47,7 @@ function update_bridge(bridge, name_h1, name_h2) {
var h1 = document.getElementById(name_h1); var h1 = document.getElementById(name_h1);
var h2 = document.getElementById(name_h2); var h2 = document.getElementById(name_h2);
if (!h1) { if (!h1) {
return; return;
} }
@ -68,6 +64,8 @@ function update_bridge(bridge, name_h1, name_h2) {
var bridge_element = document.getElementById(bridge); var bridge_element = document.getElementById(bridge);
console.log(h1, h2, bridge_element);
var h_l, h_r, rect_l, rect_r; var h_l, h_r, rect_l, rect_r;
if (h1_x_center < h2_x_center) { if (h1_x_center < h2_x_center) {
h_l = h1; h_l = h1;
@ -220,7 +218,6 @@ function reset() {
svg.removeChild(svg.firstChild); svg.removeChild(svg.firstChild);
} }
bridge_count = 0;
link_bridge_count = 0; link_bridge_count = 0;
} }
@ -237,9 +234,9 @@ function get_end_number(str) {
function hover_link_bridge(element, hover) { function hover_link_bridge(element, hover) {
var num = get_end_number(element.id); var num = get_end_number(element.id);
// var bridge = document.getElementById('linkbridge' + num); var bridge = document.getElementById('linkbridge' + num);
// bridge.setAttribute("class", hover ? 'hoverlinkbridge' : 'linkbridge'); bridge.setAttribute("class", hover ? 'hoverlinkbridge' : 'linkbridge');
var cls = 'hoverlink'; var cls = 'hoverlink';
@ -254,16 +251,17 @@ function hover_link_bridge(element, hover) {
} }
} }
function fulfil(doc, index, doc_count, link_count) { function create_bridges(link_count) {
bridge_count = doc.span_count;
link_bridge_count = link_count; link_bridge_count = link_count;
var svg_element = document.getElementById('svg'); var svg_element = document.getElementById('svg');
for(var i = 0; i < link_count; i++) { for(var i = 0; i < link_count; i++) {
var p = document.createElementNS('http://www.w3.org/2000/svg', 'polygon'); var p = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
p.setAttribute('id', 'linkbridge' + i); p.setAttribute('id', 'linkbridge' + i);
p.setAttribute('class', 'linkbridge'); p.setAttribute('class', 'linkbridge');
p.setAttribute('visibility', 'hidden'); p.setAttribute('visibility', 'visible');
p.addEventListener('mouseover', function(e) { p.addEventListener('mouseover', function(e) {
hover_link_bridge(this, true); hover_link_bridge(this, true);
@ -275,6 +273,10 @@ function fulfil(doc, index, doc_count, link_count) {
svg_element.appendChild(p); svg_element.appendChild(p);
} }
}
function fulfil(doc, index, doc_count) {
var svg_element = document.getElementById('svg');
new_document({'heading': 'xanadoc', new_document({'heading': 'xanadoc',
'text': doc.doc, 'text': doc.doc,
@ -282,8 +284,6 @@ function fulfil(doc, index, doc_count, link_count) {
'index': index, 'index': index,
'doc_count': doc_count}); 'doc_count': doc_count});
update();
$('.link').bind('mouseover', function(e) { $('.link').bind('mouseover', function(e) {
hover_link_bridge(this, true); hover_link_bridge(this, true);
}); });

View file

@ -49,14 +49,17 @@
var get_span_path = "{{ url_for('.get_span') }}"; var get_span_path = "{{ url_for('.get_span') }}";
var docs = {{ docs | tojson }}; var docs = {{ docs | tojson }};
var link_count = {{ link_count | tojson }};
$(function() { $(function() {
size_svg(); size_svg();
$(window).resize(size_svg); $(window).resize(size_svg);
reset(); // clear all documents and bridges reset(); // clear all documents and bridges
docs.forEach((doc, index) => { docs.forEach((doc, index) => {
fulfil(doc, index, docs.length, {{ link_count | tojson }}); fulfil(doc, index, docs.length);
create_bridges(link_count);
}); });
update();
}); });
</script> </script>