X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=root%2Fjs%2Frelationship.js;h=79162d99a8533778ad0d62d9f8d955db0cb6e5e4;hb=32f1389102b080b2ce404b57d9612daa601866e8;hp=d079b5b0d53ac861e8431ed8c38d5edf005a3886;hpb=a51e34c5247defe228ec03ed2000f9feb08ce618;p=scpubgit%2Fstemmaweb.git diff --git a/root/js/relationship.js b/root/js/relationship.js index d079b5b..79162d9 100644 --- a/root/js/relationship.js +++ b/root/js/relationship.js @@ -5,7 +5,6 @@ var start_element_height = 0; var reltypes = {}; var readingdata = {}; var text_direction = 'LR'; -var current_selected = []; jQuery.removeFromArray = function(value, arr) { return jQuery.grep(arr, function(elem, index) { @@ -858,11 +857,12 @@ function merge_node( source_node_id, target_node_id ) { function compress_nodes(readings) { //add text of other readings to 1st reading - for (var i = 1; i < readings.length; i++) { - var first = get_ellipse(readings[0]); - var cur = get_ellipse(readings[i]); - var first_title = first.parent().find('text')[0]; + var first = get_ellipse(readings[0]); + var first_title = first.parent().find('text')[0]; + + for (var i = 1; i < readings.length; i++) { + var cur = get_ellipse(readings[i]); var cur_title = cur.parent().find('text')[0]; first_title.textContent += " " + cur_title.textContent; @@ -875,16 +875,30 @@ function compress_nodes(readings) { //[].slice.call(s.getElementsByTagName('title')).find(function(elem){return elem.textContent=='r64.2->r66.2'}).parentNode.remove() - console.log(svg_root, svg_root_element); + var titles = svg_root.getElementsByTagName('title'); + var titlesArray = [].slice.call(titles); + + if (titlesArray.length > 0) { + var title = titlesArray.find(function(elem){ + return elem.textContent === rid; + }); + + if (title && title.parentNode) { + title.parentNode.remove(); + } + } + + var x = parseInt(first[0].getAttribute('cx'), 10); - console.log(rid); + first[0].setAttribute('rx', 4.5 * first_title.textContent.length); - [].slice.call(svg_root.getElementsByTagName('title')) - .find(function(elem){ - return elem.textContent==rid - }).parentNode.remove(); + if (text_direction !== "BI") { + first[0].setAttribute('cx', x + first_title.textContent.length + 20); + first_title.setAttribute('x', first[0].getAttribute('cx')); + } - node.parent().remove(); + merge_node(readings[i], readings[0]); + //node.parent().remove(); } } @@ -977,8 +991,6 @@ function Marquee() { } }); if( $('ellipse[fill="#9999ff"]').size() > 0 ) { - current_selected = readings; - //add intersection of witnesses sets to the multi select form and open it $('#detach_collated_form').empty(); @@ -1011,6 +1023,7 @@ function Marquee() { $('#action-detach').change(function() { if ($('#action-detach')[0].checked) { $('#detach_collated_form').show(); + $('#multipleselect-form-text').show(); $('#detach_btn').show(); $('#merge_btn').hide(); @@ -1020,6 +1033,7 @@ function Marquee() { $('#action-merge').change(function() { if ($('#action-merge')[0].checked) { $('#detach_collated_form').hide(); + $('#multipleselect-form-text').hide(); $('#detach_btn').hide(); $('#merge_btn').show(); @@ -1311,7 +1325,10 @@ $(document).ready(function () { width: 250, modal: true, buttons: { - Cancel: function() { $( this ).dialog( "close" ); }, + Cancel: function() { + document.getElementById('duplicate-merge-error').innerHTML = ""; + $( this ).dialog( "close" ); + }, Detach: function ( evt ) { evt.target.id = 'detach_btn'; @@ -1337,11 +1354,20 @@ $(document).ready(function () { var form_values = $('#detach_collated_form').serialize(); var jqjson = $.post(ncpath, form_values, function(data) { - compress_nodes(current_selected); - current_selected = []; + if (data.success) { + document.getElementById('duplicate-merge-error').innerHTML = ""; - mybuttons.button('enable'); - self.dialog('close'); + if (data.nodes) { + compress_nodes(data.nodes); + } + + mybuttons.button('enable'); + self.dialog('close'); + } else if (data.error_msg) { + document.getElementById('duplicate-merge-error').innerHTML = data.error_msg; + mybuttons.button('enable'); + + } }); } },