diff --git a/lib/galaxy/web/framework/helpers/__init__.py b/lib/galaxy/web/framework/helpers/__init__.py index d024c8f1ede..3c6b9a4d638 100644 --- a/lib/galaxy/web/framework/helpers/__init__.py +++ b/lib/galaxy/web/framework/helpers/__init__.py @@ -44,7 +44,7 @@ def js( *args ): TODO: This has a hardcoded "?v=2" to defeat caching. This should be done in a better way. """ - return "\n".join( [ javascript_include_tag( "/static/scripts/" + name + ".js?v=2" ) for name in args ] ) + return "\n".join( [ javascript_include_tag( "/static/scripts/" + name + ".js?v=3" ) for name in args ] ) # Hashes diff --git a/static/scripts/galaxy.base.js b/static/scripts/galaxy.base.js index d4ab140c51f..b7905a40367 100644 --- a/static/scripts/galaxy.base.js +++ b/static/scripts/galaxy.base.js @@ -242,44 +242,50 @@ function replace_big_select_inputs(min_length) { // Get refresh vals. var refresh_vals = select_elt.attr('refresh_on_change_values'); if (refresh_vals !== undefined) - refresh_vals = refresh_vals.split(",") - text_input_elt.keyup( function( e ) + refresh_vals = refresh_vals.split(","); + + // Function that attempts to refresh based on the value in the text element. + var try_refresh_fn = function() { - if ( ( e.keyCode == 13 ) && // Return Key - ( return_key_pressed_for_autocomplete == true ) ) // Make sure return key was for autocomplete. + // + // If value entered can be matched to value, do so and refresh by submitting parent form. + // + + // Get new value and see if it can be matched. + var cur_value = text_input_elt.attr('value'); + var new_value = select_mapping[cur_value]; + if (new_value !== null && new_value !== undefined) { - // - // If value entered can be matched to value, do so and refresh by submitting parent form. - // - - // Get new value and see if it can be matched. - var cur_value = text_input_elt.attr('value'); - var new_value = select_mapping[cur_value]; - if (new_value !== null && new_value !== undefined) + // Do refresh if new value is refresh value or if there are no refresh values. + refresh = false; + if (refresh_vals !== undefined) { - // Do refresh if new value is refresh value or if there are no refresh values. - refresh = false; - if (refresh_vals !== undefined) - { - for (var i= 0; i < refresh_vals.length; i++ ) - if (new_value == refresh_vals[i]) - { - refresh = true; - break; - } - } - else - // Refresh for all values. - refresh = true; + for (var i= 0; i < refresh_vals.length; i++ ) + if (new_value == refresh_vals[i]) + { + refresh = true; + break; + } + } + else + // Refresh for all values. + refresh = true; - if (refresh) - { - text_input_elt.attr('value', new_value); - text_input_elt.parents('form').submit(); - } + if (refresh) + { + text_input_elt.attr('value', new_value); + text_input_elt.parents('form').submit(); } } + }; + + // Attempt refresh if (a) result event fired by autocomplete (indicating autocomplete occurred) or (b) on keyup (in which + // case a user may have manually entered a value that needs to be refreshed). + text_input_elt.bind("result", try_refresh_fn); + text_input_elt.keyup( function(e) { + try_refresh_fn(); }); + } }); } diff --git a/static/scripts/packed/galaxy.base.js b/static/scripts/packed/galaxy.base.js index 0c3947a59ca..e0d4af50c35 100644 --- a/static/scripts/packed/galaxy.base.js +++ b/static/scripts/packed/galaxy.base.js @@ -1 +1 @@ -$(document).ready(function(){replace_big_select_inputs()});$.fn.makeAbsolute=function(a){return this.each(function(){var b=$(this);var c=b.position();b.css({position:"absolute",marginLeft:0,marginTop:0,top:c.top,left:c.left,right:$(window).width()-(c.left+b.width())});if(a){b.remove().appendTo("body")}})};function ensure_popup_helper(){if($("#popup-helper").length===0){$("
").css({background:"white",opacity:0,zIndex:15000,position:"absolute",top:0,left:0,width:"100%",height:"100%"}).appendTo("body").hide()}}function attach_popupmenu(b,d){var a=function(){d.unbind().hide();$("#popup-helper").unbind("click.popupmenu").hide()};var c=function(g){$("#popup-helper").bind("click.popupmenu",a).show();d.click(a).css({left:0,top:-1000}).show();var f=g.pageX-d.width()/2;f=Math.min(f,$(document).scrollLeft()+$(window).width()-$(d).width()-20);f=Math.max(f,$(document).scrollLeft()+20);d.css({top:g.pageY-5,left:f});return false};$(b).click(c)}function make_popupmenu(c,b){ensure_popup_helper();var a=$("");$.each(b,function(f,e){if(e){$("").html(f).click(e).appendTo(a)}else{$("").html(f).appendTo(a)}});var d=$("