From f4038a2160d55a7f519a3b42be1aa96e29e9a908 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 27 Feb 2013 09:01:40 -0500 Subject: [PATCH] - Fixed "FUNCTION databasename.CONCAT does not exist" error for older MySQL versions. --- interface/web/js/jquery.tipsy.js | 46 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 35 insertions(+), 11 deletions(-) diff --git a/interface/web/js/jquery.tipsy.js b/interface/web/js/jquery.tipsy.js index 77836f8..735d72e 100644 --- a/interface/web/js/jquery.tipsy.js +++ b/interface/web/js/jquery.tipsy.js @@ -250,12 +250,13 @@ var input, self = this, select = this.element, + internal = false, selected = select.children( ":selected" ), value = selected.val() ? selected.text() : "", wrapper = this.wrapper = $( "<span>" ) .addClass( "ui-combobox" ) .insertAfter( select ); - + input = $( "<input>" ).css( { "width": (select.is(':visible') ? (elwidth > 15 ? elwidth - 15 : 1) : 350), "height": (elheight > 0 ? elheight : 16) }); select.hide(); input.appendTo( wrapper ) @@ -269,7 +270,7 @@ response( select.children( "option" ).map(function() { var text = $( this ).text(); //if ( this.value && ( !request.term || matcher.test(text) ) ) - if ( !request.term || matcher.test(text) ) + if ( (!request.term || matcher.test(text)) && $(this).css('display') != 'none' ) return { label: (text == "" ? " " : text.replace( new RegExp( @@ -277,8 +278,8 @@ $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi" ), "<strong>$1</strong>" )), - value: text, - class: (select.hasClass('flags') ? 'country-' + $(this).val() : $(this).attr('class')), + 'value': (text ? text : ''), + 'class': (select.hasClass('flags') ? 'country-' + ($(this).val() ? $(this).val().toUpperCase() : '') : $(this).attr('class')), option: this }; }) ); @@ -292,6 +293,11 @@ select.onchange( { target: select } ); } else if($(select).attr('onchange')) { eval($(select).attr('onchange')); + } else { + if(!ui.item.internal) { + internal = true; + $(select).change(); + } } if (jQuery(".panel #Filter").length > 0) { jQuery(".panel #Filter").trigger('click'); @@ -303,7 +309,7 @@ matchtext = $(this).val(); valid = false; select.children( "option" ).each(function() { - if( ($(this).text() == "" && matchtext == "") || $( this ).text().match( matcher ) ) { + if( (($(this).text() == "" && matchtext == "") || $( this ).text().match( matcher )) && $(this).css('display') != 'none' ) { select.val($(this).val()); this.selected = valid = true; return false; @@ -327,7 +333,7 @@ valid = false, selected = false; select.children( "option" ).each(function() { - if( ($(this).val() == "" && matchtext == "") || $( this ).text().match( matcher ) ) { + if( (($(this).val() == "" && matchtext == "") || $( this ).text().match( matcher )) && $(this).css('display') != 'none' ) { valid = true; selected = $(this); return false; @@ -335,10 +341,24 @@ }); if(!valid) return false; - $(this).autocomplete('option','select').call($(this), event, { item: { option: selected.get(0) } }); + $(this).autocomplete('option','select').call($(this), event, { item: { option: selected.get(0), internal: true } }); } }) - .addClass( "ui-widget ui-widget-content ui-corner-left" ); + .addClass( "ui-widget ui-widget-content ui-corner-left" ) + .click(function() { + // close if already visible + if ( input.autocomplete( "widget" ).is( ":visible" ) ) { + //input.autocomplete( "close" ); + return; + } + + // work around a bug (likely same cause as #5265) + $( this ).blur(); + + // pass empty string as value to search for, displaying all results + input.autocomplete( "search", "" ); + input.focus(); + }); if(select.hasClass('flags')) input.addClass('flags'); input.data( "autocomplete" )._renderItem = function( ul, item ) { @@ -346,16 +366,20 @@ .data( "item.autocomplete", item ) .append( "<a>" + item.label + "</a>" ) .appendTo( ul ); - if(item.class) el.addClass(item.class); + if(item && item['class'] && el) el.addClass(item['class']); return el; }; select.change(function(e) { + if(internal == true) { + internal = false; + return; + } var matcher = new RegExp( "" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "", "i" ), matchtext = $(this).val(); valid = false, selected = false; select.children( "option" ).each(function() { - if( ($(this).val() == "" && matchtext == "") || $( this ).text().match( matcher ) ) { + if( (($(this).val() == "" && matchtext == "") || $( this ).text().match( matcher )) && $(this).css('display') != 'none' ) { valid = true; selected = $(this); return false; @@ -363,7 +387,7 @@ }); if(!valid) return false; - input.val($(this).val()).autocomplete('option','select').call(input, (e ? e : {target: select}), { item: { option: selected.get(0) } }); + input.val($(this).val()).autocomplete('option','select').call(input, (e ? e : {target: select}), { item: { option: selected.get(0), internal: true } }); }); $( "<a>" ) -- Gitblit v1.9.1