From 8aa68798e43a4f99f52822bfa83241985eb2c1e2 Mon Sep 17 00:00:00 2001 From: mcramer <m.cramer@pixcept.de> Date: Fri, 19 Oct 2012 09:42:10 -0400 Subject: [PATCH] Fixed: listen to change() event of linked select box to promote changes to the jquery ui combo --- interface/web/js/jquery.tipsy.js | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/interface/web/js/jquery.tipsy.js b/interface/web/js/jquery.tipsy.js index 27fa06d..7ce677c 100644 --- a/interface/web/js/jquery.tipsy.js +++ b/interface/web/js/jquery.tipsy.js @@ -249,18 +249,18 @@ var elheight = this.element.height(); var input, self = this, - select = this.element.hide(), + select = this.element, selected = select.children( ":selected" ), value = selected.val() ? selected.text() : "", wrapper = this.wrapper = $( "<span>" ) .addClass( "ui-combobox" ) .insertAfter( select ); - input = $( "<input>" ) - .appendTo( wrapper ) + input = $( "<input>" ).css( { "width": (select.is(':visible') ? (elwidth > 15 ? elwidth - 15 : 1) : 350), "height": (elheight > 0 ? elheight : 16) }); + select.hide(); + input.appendTo( wrapper ) .val( value ) .addClass( "ui-state-default ui-combobox-input" ) - .css( { "width": (elwidth > 15 ? elwidth - 15 : 1), "height": elheight }) .autocomplete({ delay: 0, minLength: 0, @@ -278,6 +278,7 @@ ")(?![^<>]*>)(?![^&;]+;)", "gi" ), "<strong>$1</strong>" )), value: text, + class: (select.hasClass('flags') ? 'country-' + $(this).val() : $(this).attr('class')), option: this }; }) ); @@ -291,6 +292,8 @@ select.onchange( { target: select } ); } else if($(select).attr('onchange')) { eval($(select).attr('onchange')); + } else { + if(!ui.item.internal) $(select).change(); } if (jQuery(".panel #Filter").length > 0) { jQuery(".panel #Filter").trigger('click'); @@ -334,16 +337,19 @@ }); 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" ); + if(select.hasClass('flags')) input.addClass('flags'); input.data( "autocomplete" )._renderItem = function( ul, item ) { - return $( "<li></li>" ) + var el = $( "<li></li>" ) .data( "item.autocomplete", item ) .append( "<a>" + item.label + "</a>" ) .appendTo( ul ); + if(item.class) el.addClass(item.class); + return el; }; select.change(function(e) { var matcher = new RegExp( "" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "", "i" ), @@ -359,7 +365,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>" ) @@ -374,7 +380,7 @@ }) .removeClass( "ui-corner-all" ) .addClass( "ui-corner-right ui-combobox-toggle" ) - .css( { "width": 15, "height": elheight }) + .css( { "width": 15, "height": (elheight > 0 ? elheight : 16) }) .click(function() { // close if already visible if ( input.autocomplete( "widget" ).is( ":visible" ) ) { -- Gitblit v1.9.1