SHOW:
|
|
- or go back to the newest paste.
| 1 | (function( $ ) {
| |
| 2 | $.widget( "ui.combobox", {
| |
| 3 | _create: function() {
| |
| 4 | var self = this, | |
| 5 | select = this.element.hide(), | |
| 6 | selected = select.children( ":selected" ), | |
| 7 | value = selected.val() ? selected.text() : ""; | |
| 8 | var input = this.input = $( "<input>" ) | |
| 9 | .insertAfter( select ) | |
| 10 | .val( value ) | |
| 11 | .autocomplete({
| |
| 12 | delay: 0, | |
| 13 | minLength: 0, | |
| 14 | source: function( request, response ) {
| |
| 15 | var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" ); | |
| 16 | ||
| 17 | var select_el = select.get(0); // get dom element | |
| 18 | var rep = new Array(); // response array | |
| 19 | var maxRepSize = 25; // maximum response size | |
| 20 | // simple loop for the options | |
| 21 | for (var i = 0; i < select_el.length; i++) {
| |
| 22 | var text = select_el.options[i].text; | |
| 23 | if ( select_el.options[i].value && ( !request.term || matcher.test(text) ) ) | |
| 24 | // add element to result array | |
| 25 | rep.push({
| |
| 26 | label: text, // no more bold | |
| 27 | value: text, | |
| 28 | option: select_el.options[i] | |
| 29 | }); | |
| 30 | ||
| 31 | if ( rep.length > maxRepSize ) {
| |
| 32 | rep.push({
| |
| 33 | label: "... more available", | |
| 34 | value: "maxRepSizeReached", | |
| 35 | option: "" | |
| 36 | }); | |
| 37 | break; | |
| 38 | } | |
| 39 | ||
| 40 | } | |
| 41 | // send response | |
| 42 | response( rep ); | |
| 43 | ||
| 44 | ||
| 45 | // response( select.children( "option" ).map(function() {
| |
| 46 | // var text = $( this ).text(); | |
| 47 | // if ( this.value && ( !request.term || matcher.test(text) ) ) | |
| 48 | // return {
| |
| 49 | // label: text.replace( | |
| 50 | // new RegExp( | |
| 51 | // "(?![^&;]+;)(?!<[^<>]*)(" +
| |
| 52 | // $.ui.autocomplete.escapeRegex(request.term) + | |
| 53 | // ")(?![^<>]*>)(?![^&;]+;)", "gi" | |
| 54 | // ), "<strong>$1</strong>" ), | |
| 55 | // value: text, | |
| 56 | // option: this | |
| 57 | // }; | |
| 58 | // }) ); | |
| 59 | }, | |
| 60 | select: function( event, ui ) {
| |
| 61 | ||
| 62 | if ( ui.item.value == "maxRepSizeReached") {
| |
| 63 | //return false; | |
| 64 | } | |
| 65 | else {
| |
| 66 | ui.item.option.selected = true; | |
| 67 | self._trigger( "selected", event, {
| |
| 68 | item: ui.item.option | |
| 69 | }); | |
| 70 | } | |
| 71 | }, | |
| 72 | ||
| 73 | // focus: function( event, ui ) {
| |
| 74 | // if ( ui.item.value == "maxRepSizeReached") {
| |
| 75 | // return false; | |
| 76 | // } | |
| 77 | // }, | |
| 78 | ||
| 79 | ||
| 80 | change: function( event, ui ) {
| |
| 81 | if ( !ui.item ) {
| |
| 82 | var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" ), | |
| 83 | valid = false; | |
| 84 | select.children( "option" ).each(function() {
| |
| 85 | if ( $( this ).text().match( matcher ) ) {
| |
| 86 | this.selected = valid = true; | |
| 87 | return false; | |
| 88 | } | |
| 89 | }); | |
| 90 | if ( !valid ) {
| |
| 91 | // remove invalid value, as it didn't match anything | |
| 92 | $( this ).val( "" ); | |
| 93 | select.val( "" ); | |
| 94 | input.data( "autocomplete" ).term = ""; | |
| 95 | //return false; | |
| 96 | } | |
| 97 | } | |
| 98 | } | |
| 99 | }) | |
| 100 | .addClass( "ui-widget ui-widget-content ui-corner-left" ); | |
| 101 | var span = $("<span style=\" white-space: nowrap;\"></span>")
| |
| 102 | .append(input).insertAfter( select ); | |
| 103 | ||
| 104 | input.data( "autocomplete" )._renderItem = function( ul, item ) {
| |
| 105 | return $( "<li></li>" ) | |
| 106 | .data( "item.autocomplete", item ) | |
| 107 | .append( "<a>" + item.label + "</a>" ) | |
| 108 | .appendTo( ul ); | |
| 109 | }; | |
| 110 | ||
| 111 | this.button = $( "<button type='button'> </button>" ) | |
| 112 | .attr( "tabIndex", -1 ) | |
| 113 | .attr( "title", "Show All Items" ) | |
| 114 | .insertAfter( input ) | |
| 115 | .button({
| |
| 116 | icons: {
| |
| 117 | primary: "ui-icon-triangle-1-s" | |
| 118 | }, | |
| 119 | text: false | |
| 120 | }) | |
| 121 | .removeClass( "ui-corner-all" ) | |
| 122 | .addClass( "ui-corner-right ui-button-icon" ) | |
| 123 | .click(function() {
| |
| 124 | // close if already visible | |
| 125 | if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
| |
| 126 | input.autocomplete( "close" ); | |
| 127 | return false; | |
| 128 | } | |
| 129 | ||
| 130 | // work around a bug (likely same cause as #5265) | |
| 131 | $( this ).blur(); | |
| 132 | ||
| 133 | // pass empty string as value to search for, displaying all results | |
| 134 | input.autocomplete( "search", "" ); | |
| 135 | input.focus(); | |
| 136 | //return false; | |
| 137 | }); | |
| 138 | }, | |
| 139 | ||
| 140 | destroy: function() {
| |
| 141 | this.input.remove(); | |
| 142 | this.button.remove(); | |
| 143 | this.element.show(); | |
| 144 | $.Widget.prototype.destroy.call( this ); | |
| 145 | } | |
| 146 | }); | |
| 147 | ||
| 148 | ||
| 149 | ||
| 150 | ||
| 151 | })( jQuery ); | |
| 152 | ||
| 153 | $(document).ready(function() {
| |
| 154 | $( "#userid" ).combobox({
| |
| 155 | }); | |
| 156 | $( "#facid" ).combobox({
| |
| 157 | }); | |
| 158 | $('input.ui-autocomplete-input').val("");
| |
| 159 | - | $( "#tabstats" ).tabs().find( ".ui-tabs-nav" ).sortable({ axis: "x" });
|
| 159 | + | //$( "#tabstats" ).tabs().find( ".ui-tabs-nav" ).sortable({ axis: "x" });
|
| 160 | ||
| 161 | ||
| 162 | ||
| 163 | }); |