$('#textinfo_waitbox').hide();
$('#textinfo_load_status').empty();
$('#textinfo_container').show();
+ // The tradition name should appear here and should be identical in the
+ // corresponding directory span. In case the name was just changed...
$('.texttitle').empty().append( selectedTextInfo.name );
+ $('#' + selectedTextID).empty().append( selectedTextInfo.name );
// Witnesses
$('#witness_num').empty().append( selectedTextInfo.witnesses.size );
$('#witness_list').empty().append( selectedTextInfo.witnesses.join( ', ' ) );
$('#stemma_identifier').empty();
// Add the relevant Stemweb functionality
if( selectedTextEditable ) {
- if( selectedTextInfo.stemweb_jobid == 0 ) {
- $('#open_stemweb_ui').show();
- $('#query_stemweb_ui').hide();
- } else {
- $('#query_stemweb_ui').show();
- $('#open_stemweb_ui').hide();
- }
+ switch_stemweb_ui();
}
if( idx > -1 ) {
// Load the stemma and its properties
}
}
+function switch_stemweb_ui() {
+ if( selectedTextInfo.stemweb_jobid == 0 ) {
+ // We want to run Stemweb.
+ $('#open_stemweb_ui').show();
+ $('#query_stemweb_ui').hide();
+ if( ! $('#stemweb-ui-dialog').dialog('isOpen') ) {
+ $('#call_stemweb').show()
+ $('#stemweb_run_button').show();
+ }
+ } else {
+ $('#query_stemweb_ui').show();
+ $('#open_stemweb_ui').hide();
+ $('#call_stemweb').hide();
+ $('#stemweb_run_button').hide();
+ }
+}
+
function query_stemweb_progress() {
var requrl = _get_url([ "stemweb", "query", selectedTextInfo.stemweb_jobid ]);
+ $('#stemweb-ui-dialog').dialog('open');
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'notification', 'Querying Stemweb for calculation progress...') );
$.getJSON( requrl, function (data) {
process_stemweb_result( data );
});
// 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!' );
+ }
+ // Hide the call dialog no matter how we got here
+ $('#call_stemweb').hide()
+ $('#stemweb_run_button').hide();
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'notification', 'You have one or more new stemmata!' ) );
} else {
- alert( 'Stemweb run finished with no stemmata...huh?!' );
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'warning', 'Stemweb run finished with no stemmata...huh?!' ) );
}
} else if( data.status === 'running' ) {
// Just tell the user.
- alert( 'Your Stemweb query is still running!' );
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'warning', '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.' );
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'warning', 'Your Stemweb query probably finished and reported back. Please reload to check.' ) );
+ } else if( data.status === 'failed' ) {
+ selectedTextInfo.stemweb_jobid = 0;
+ failureMsg = 'Your stemweb query failed';
+ if( data.message ) {
+ failureMsg = failureMsg + ' with the following message: ' + data.message
+ } else {
+ failureMsg = failureMsg + ' without telling us why.'
+ }
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'error', failureMsg ) );
}
}
+function _make_message( type, msg ) {
+ theMessage = $('<span>').attr( 'class', type );
+ theMessage.append( msg );
+ return theMessage;
+}
+
// Load the SVG we are given
function loadSVG(svgData) {
var svgElement = $('#stemma_graph');
function set_stemma_interactive( svg_element ) {
if( selectedTextEditable ) {
+ // unbind is needed as this set_stemma_interactive is called each time
+ // the stemma is re-rooted, and each time jquery adds an
+ // onclick handler to the root_tree_dialog_button_ok
+ // that all re-root the stemma, that all add an onclick, etc..
+ $( "#root_tree_dialog_button_ok" ).unbind();
$( "#root_tree_dialog_button_ok" ).click( function() {
var requrl = _get_url([ "stemmaroot", selectedTextID, selectedStemmaID ]);
var targetnode = $('#root_tree_dialog').data( 'selectedNode' );
$('#stemweb-ui-dialog').dialog({
autoOpen: false,
height: 'auto',
- width: 400,
+ width: 520,
modal: true,
buttons: {
- Run: function (evt) {
+ Run: {
+ id: 'stemweb_run_button',
+ text: 'Run',
+ click: function (evt) {
$("#stemweb_run_status").empty();
var mybuttons = $(evt.target).closest('button').parent().find('button');
mybuttons.button( 'disable' );
// whether to send application/json or application/xml?
$.getJSON( requrl, reqparam, function (data) {
mybuttons.button("enable");
- $('#stemweb-ui-dialog').dialog('close');
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.");
+ $('#stemweb_run_status').empty().append(
+ _make_message( 'notification', "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 );
+ switch_stemweb_ui();
} else {
// We appear to have an answer; process it.
process_stemweb_result( data );
}
}, 'json' );
+ },
+ },
+ Close: {
+ id: 'stemweb_close_button',
+ text: 'Close',
+ click: function() {
+ $('#stemweb-ui-dialog').dialog('close');
+ switch_stemweb_ui();
+ },
},
- Cancel: function() {
- $('#stemweb-ui-dialog').dialog('close');
- }
},
create: function(evt) {
// Call out to Stemweb to get the algorithm options, with which we
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 = $('<option>').attr( 'value', r ).append( r );
- $('#stemweb_merge_reltypes').append( relation_opt );
- });
- $('#stemweb_merge_reltypes').multiselect({
- header: false,
- selectedList: 3
- });
+ if( selectedTextInfo.stemweb_jobid == 0 ) {
+ $('#stemweb_merge_reltypes').empty();
+ $.each( selectedTextInfo.reltypes, function( i, r ) {
+ var relation_opt = $('<option>').attr( 'value', r ).append( r );
+ $('#stemweb_merge_reltypes').append( relation_opt );
+ });
+ $('#stemweb_merge_reltypes').multiselect({
+ header: false,
+ selectedList: 3
+ });
+ }
},
}).ajaxError( function(event, jqXHR, ajaxSettings, thrownError) {
$(event.target).parent().find('.ui-button').button("enable");
- if( ajaxSettings.url.indexOf( 'stemweb/request' ) > -1 ) {
+ if( ajaxSettings.url.indexOf( 'stemweb/' ) > -1 ) {
display_error( jqXHR, $("#stemweb_run_status") );
}
});