Use events instead of callbacks for success or no results
Allows extension users to bind for this event, also reduces callbacks Change-Id: I14cc6d51ad23432956e3ea3275c72db26d71a8c8
This commit is contained in:
@@ -224,6 +224,7 @@
|
|||||||
* Callback for no results found context.
|
* Callback for no results found context.
|
||||||
*/
|
*/
|
||||||
noresults: function () {
|
noresults: function () {
|
||||||
|
$( '.regionselector' ).removeClass( 'active' );
|
||||||
this.$resultsView.lcd( 'noResults' );
|
this.$resultsView.lcd( 'noResults' );
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -231,6 +232,7 @@
|
|||||||
* callback for results found context.
|
* callback for results found context.
|
||||||
*/
|
*/
|
||||||
success: function () {
|
success: function () {
|
||||||
|
$( '.regionselector' ).removeClass( 'active' );
|
||||||
this.$resultsView.show();
|
this.$resultsView.show();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -244,7 +246,9 @@
|
|||||||
// Register all event listeners to the ULS here.
|
// Register all event listeners to the ULS here.
|
||||||
uls.$element.on( 'click', $.proxy( uls.click, uls ) );
|
uls.$element.on( 'click', $.proxy( uls.click, uls ) );
|
||||||
|
|
||||||
uls.$languageFilter.on( 'searchclear', $.proxy( uls.defaultSearch, uls ) );
|
uls.$languageFilter.on( 'searchclear.uls', $.proxy( uls.defaultSearch, uls ) );
|
||||||
|
uls.$languageFilter.on( 'noresults.uls', $.proxy( uls.noresults, uls ) );
|
||||||
|
uls.$languageFilter.on( 'resultsfound.uls', $.proxy( uls.success, uls ) );
|
||||||
|
|
||||||
// Close when clicking on the close button
|
// Close when clicking on the close button
|
||||||
uls.$menu.find( '#uls-close' ).on( 'click', $.proxy( uls.cancel, uls ) );
|
uls.$menu.find( '#uls-close' ).on( 'click', $.proxy( uls.cancel, uls ) );
|
||||||
@@ -272,14 +276,6 @@
|
|||||||
uls.$languageFilter.languagefilter( {
|
uls.$languageFilter.languagefilter( {
|
||||||
$target: lcd,
|
$target: lcd,
|
||||||
languages: uls.languages,
|
languages: uls.languages,
|
||||||
success: function () {
|
|
||||||
$( '.regionselector' ).removeClass( 'active' );
|
|
||||||
uls.success();
|
|
||||||
},
|
|
||||||
noresults: function () {
|
|
||||||
$( '.regionselector' ).removeClass( 'active' );
|
|
||||||
uls.noresults();
|
|
||||||
},
|
|
||||||
searchAPI: uls.options.searchAPI,
|
searchAPI: uls.options.searchAPI,
|
||||||
onSelect: $.proxy( uls.select, uls )
|
onSelect: $.proxy( uls.select, uls )
|
||||||
} );
|
} );
|
||||||
|
|||||||
@@ -143,7 +143,7 @@
|
|||||||
*/
|
*/
|
||||||
clear: function() {
|
clear: function() {
|
||||||
this.deactivate();
|
this.deactivate();
|
||||||
this.$element.trigger( 'searchclear' );
|
this.$element.trigger( 'searchclear.uls' );
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -222,15 +222,15 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler method to be called once search is over.
|
* Handler method to be called once search is over.
|
||||||
* Based on search result call success or noresults callbacks
|
* Based on search result triggers resultsfound or noresults events
|
||||||
* @param query string
|
* @param query string
|
||||||
*/
|
*/
|
||||||
resultHandler: function( query ) {
|
resultHandler: function( query ) {
|
||||||
if ( this.resultCount === 0 && this.options.noresults ) {
|
if ( this.resultCount === 0 ) {
|
||||||
this.$suggestion.val( '' );
|
this.$suggestion.val( '' );
|
||||||
this.options.noresults.call( this, query );
|
this.$element.trigger( 'noresults.uls', query );
|
||||||
} else if ( this.options.success ) {
|
} else {
|
||||||
this.options.success( this, query, this.resultCount );
|
this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -339,8 +339,6 @@
|
|||||||
$target: null, // Where to append the results
|
$target: null, // Where to append the results
|
||||||
searchAPI: null,
|
searchAPI: null,
|
||||||
languages: null, // Languages as code:name format.
|
languages: null, // Languages as code:name format.
|
||||||
noresults: null, // callback for no results found case
|
|
||||||
success: null, // callback if any results found.
|
|
||||||
onSelect: null // Language select handler - like enter in filter textbox.
|
onSelect: null // Language select handler - like enter in filter textbox.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user