X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=root%2Fjs%2Fcomponentload.js;h=37b4f12c5f441a2374979774005963bd0ef5f595;hb=d9d6b62b9d18cb04a220749f547ffb3bb155c21e;hp=cd9307f7cee16efe88e8ac136d1d7f1eac2afa77;hpb=6cf17f047a7cc39d7f0c691bad4df9839cae573c;p=scpubgit%2Fstemmaweb.git diff --git a/root/js/componentload.js b/root/js/componentload.js index cd9307f..37b4f12 100644 --- a/root/js/componentload.js +++ b/root/js/componentload.js @@ -166,32 +166,36 @@ function load_stemma( idx ) { function query_stemweb_progress() { var requrl = _get_url([ "stemweb", "query", selectedTextInfo.stemweb_jobid ]); $.getJSON( requrl, function (data) { - // Look for a status message, either success, running, or notfound. - if( data.status === 'success' ) { - // Add the new stemmata to the textinfo and tell the user. - selectedTextInfo.stemweb_jobid = 0; - if( data.stemmata.length > 0 ) { - stemmata = stemmata.concat( data.stemmata ); - if( selectedStemmaID == -1 ) { - // We have a stemma for the first time; load the first one. - load_stemma( 0, true ); - } else { - // Move to the index of the first added stemma. - var newIdx = stemmata.length - data.stemmata.length; - load_stemma( newIdx, true ); - } - alert( 'You have one or more new stemmata!' ); + process_stemweb_result( data ); + }); +} + +function process_stemweb_result(data) { + // Look for a status message, either success, running, or notfound. + if( data.status === 'success' ) { + // Add the new stemmata to the textinfo and tell the user. + selectedTextInfo.stemweb_jobid = 0; + if( data.stemmata.length > 0 ) { + stemmata = stemmata.concat( data.stemmata ); + if( selectedStemmaID == -1 ) { + // We have a stemma for the first time; load the first one. + load_stemma( 0, true ); } else { - alert( 'Stemweb run finished with no stemmata...huh?!' ); + // Move to the index of the first added stemma. + var newIdx = stemmata.length - data.stemmata.length; + load_stemma( newIdx, true ); } - } else if( data.status === 'running' ) { - // Just tell the user. - alert( 'Your Stemweb query is still running!' ); - } else if( data.status === 'notfound' ) { - // Ask the user to refresh, for now. - alert( 'Your Stemweb query probably finished and reported back. Please reload to check.' ); + alert( 'You have one or more new stemmata!' ); + } else { + alert( 'Stemweb run finished with no stemmata...huh?!' ); } - }); + } else if( data.status === 'running' ) { + // Just tell the user. + alert( 'Your Stemweb query is still running!' ); + } else if( data.status === 'notfound' ) { + // Ask the user to refresh, for now. + alert( 'Your Stemweb query probably finished and reported back. Please reload to check.' ); + } } // Load the SVG we are given @@ -433,7 +437,8 @@ $(document).ready( function() { buttons: { Save: function (evt) { $("#edit_textinfo_status").empty(); - $(evt.target).button("disable"); + var mybuttons = $(evt.target).closest('button').parent().find('button'); + mybuttons.button( 'disable' ); var requrl = _get_url([ "textinfo", selectedTextID ]); var reqparam = $('#edit_textinfo').serialize(); $.post( requrl, reqparam, function (data) { @@ -441,7 +446,7 @@ $(document).ready( function() { selectedTextInfo = data; load_textinfo(); // Reenable the button and close the form - $(evt.target).button("enable"); + mybuttons.button("enable"); $('#textinfo-edit-dialog').dialog('close'); }, 'json' ); }, @@ -486,7 +491,8 @@ $(document).ready( function() { buttons: { Save: function (evt) { $("#edit_stemma_status").empty(); - $(evt.target).button("disable"); + var mybuttons = $(evt.target).closest('button').parent().find('button'); + mybuttons.button( 'disable' ); var stemmaseq = $('#stemmaseq').val(); var requrl = _get_url([ "stemma", selectedTextID, stemmaseq ]); var reqparam = { 'dot': $('#dot_field').val() }; @@ -503,7 +509,7 @@ $(document).ready( function() { // Display the new stemma load_stemma( selectedStemmaID, true ); // Reenable the button and close the form - $(evt.target).button("enable"); + mybuttons.button("enable"); $('#stemma-edit-dialog').dialog('close'); }, 'json' ); }, @@ -542,25 +548,32 @@ $(document).ready( function() { $('#stemweb-ui-dialog').dialog({ autoOpen: false, - height: 160, - width: 225, + height: 425, + width: 400, modal: true, buttons: { Run: function (evt) { $("#stemweb_run_status").empty(); - $(evt.target).button("disable"); + var mybuttons = $(evt.target).closest('button').parent().find('button'); + mybuttons.button( 'disable' ); var requrl = _get_url([ "stemweb", "request" ]); var reqparam = $('#call_stemweb').serialize(); // TODO We need to stash the literal SVG string in stemmata // somehow. Implement accept header on server side to decide // whether to send application/json or application/xml? $.getJSON( requrl, reqparam, function (data) { - // Job ID is in data.jobid. TODO do something with it. - selectedTextInfo.stemweb_jobid = data.jobid; - $(evt.target).button("enable"); + mybuttons.button("enable"); $('#stemweb-ui-dialog').dialog('close'); - // Reload the current stemma to rejigger the buttons - load_stemma( selectedStemmaID, true ); + if( 'jobid' in data ) { + // There is a pending job. + selectedTextInfo.stemweb_jobid = data.jobid; + alert("Your request has been submitted to Stemweb.\nThe resulting tree will appear in due course."); + // Reload the current stemma to rejigger the buttons + load_stemma( selectedStemmaID, true ); + } else { + // We appear to have an answer; process it. + process_stemweb_result( data ); + } }, 'json' ); }, Cancel: function() { @@ -594,6 +607,14 @@ $(document).ready( function() { // "name" -> form label $('#stemweb_algorithm').change( function() { var pk = $(this).val(); + // Display a link to the popup description, and fill in + // the description itself, if we have one. + if( 'desc' in algorithmTypes[pk] ) { + $('#stemweb_algorithm_desc_text').empty().append( algorithmTypes[pk].desc ); + $('#stemweb_algorithm_desc').show(); + } else { + $('#stemweb_algorithm_desc').hide(); + } $('#stemweb_runtime_options').empty(); $.each( algorithmTypes[pk].args, function( i, apk ) { var argInfo = algorithmArgs[apk]; @@ -628,6 +649,15 @@ $(document).ready( function() { open: function(evt) { $('#stemweb_run_status').empty(); $('#stemweb_tradition').attr('value', selectedTextID ); + $('#stemweb_merge_reltypes').empty(); + $.each( selectedTextInfo.reltypes, function( i, r ) { + var relation_opt = $('