Skip to content

Commit d6e01ee

Browse files
committed
changes for pageSize and sort
Included options to specify type of template, since event binding will be different for each each kind
1 parent 8c1309a commit d6e01ee

File tree

1 file changed

+59
-33
lines changed

1 file changed

+59
-33
lines changed

unbxdSearch.js

Lines changed: 59 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,7 @@ var unbxdSearchInit = function(jQuery, Handlebars){
433433
field: 'price',
434434
order: 'asc'
435435
}]
436+
,sortContainerType: 'select' /* value can be select or click */
436437
,sortContainerTemp: [
437438
'<select>',
438439
'{{#options}}',
@@ -453,6 +454,7 @@ var unbxdSearchInit = function(jQuery, Handlebars){
453454
name: '24',
454455
value: '24'
455456
}]
457+
,pageSizeContainerType: 'select' /* value can be select or click */
456458
,pageSizeContainerTemp: [
457459
'<select>',
458460
'{{#options}}',
@@ -600,7 +602,42 @@ var unbxdSearchInit = function(jQuery, Handlebars){
600602
return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
601603
}
602604
,setEvents : function(){
603-
var self = this;
605+
var self = this;
606+
607+
var changeSort = function(e){
608+
e.preventDefault();
609+
var $t = jQuery(this),
610+
$selected = (e.type === 'select') ? $t.find(':selected') :
611+
(e.currentTarget === e.target) ? $t : undefined,
612+
field = $selected && $selected.attr('unbxdsortfield'),
613+
value = $selected && $selected.attr('unbxdsortvalue');
614+
615+
if($selected){
616+
self
617+
.resetSort()
618+
.setPage(1);
619+
620+
if(field && value)
621+
self.addSort(field, value);
622+
623+
self.callResults(self.paintOnlyResultSet, true);
624+
}
625+
};
626+
627+
var changePageSize = function(e){
628+
e.preventDefault();
629+
var $t = jQuery(this),
630+
$selected = (e.type === 'select') ? $t.find(':selected') :
631+
(e.currentTarget === e.target) ? $t : undefined,
632+
pageSize = $selected && $selected.attr('unbxdpagesize');
633+
634+
if($selected && pageSize){
635+
self
636+
.setPage(1)
637+
.setPageSize(pageSize)
638+
.callResults(self.paintOnlyResultSet, true);
639+
}
640+
};
604641

605642
if(this.options.type == "search"){
606643
if("form" in this.input && this.input.form){
@@ -752,40 +789,29 @@ var unbxdSearchInit = function(jQuery, Handlebars){
752789
}
753790

754791
if(this.options.sortContainerSelector.length > 0){
755-
jQuery(this.options.sortContainerSelector).delegate('*', 'change', function(e){
756-
e.preventDefault();
757-
var $t = jQuery(this),
758-
$selected = $t.find(':selected'),
759-
field = $selected && $selected.attr('unbxdsortfield'),
760-
value = $selected && $selected.attr('unbxdsortvalue');
761-
762-
if($selected){
763-
self
764-
.resetSort()
765-
.setPage(1);
766-
767-
if(field && value)
768-
self.addSort(field, value);
769-
770-
self.callResults(self.paintOnlyResultSet, true);
771-
}
772-
773-
});
792+
if(this.options.sortContainerType === 'select'){
793+
jQuery(this.options.sortContainerSelector).on({
794+
change: changeSort
795+
}, '*');
796+
} else if(this.options.sortContainerType === 'click'){
797+
jQuery(this.options.sortContainerSelector).on({
798+
click: changeSort
799+
}, '*');
800+
}
774801
}
775802

776803
if(this.options.pageSizeContainerSelector.length > 0){
804+
if(this.options.pageSizeContainerType === 'select'){
805+
jQuery(this.options.pageSizeContainerSelector).on({
806+
change: changePageSize
807+
}, '*');
808+
} else if(this.options.pageSizeContainerType === 'click'){
809+
jQuery(this.options.pageSizeContainerSelector).on({
810+
click: changePageSize
811+
}, '*');
812+
}
777813
jQuery(this.options.pageSizeContainerSelector).delegate('*', 'change', function(e){
778-
e.preventDefault();
779-
var $t = jQuery(this),
780-
$selected = $t.find(':selected'),
781-
pageSize = $selected && $selected.attr('unbxdpagesize');
782-
783-
if($selected && pageSize){
784-
self
785-
.setPage(1)
786-
.setPageSize(pageSize)
787-
.callResults(self.paintOnlyResultSet, true);
788-
}
814+
789815
});
790816
}
791817

@@ -1059,8 +1085,8 @@ var unbxdSearchInit = function(jQuery, Handlebars){
10591085
}
10601086
} else if(key === 'wt' || key === 'format') {
10611087
nonhistoryPath += '&' + key + '=' + encodeURIComponent(value);
1062-
} else if(!this.isUsingPagination() && key === 'rows'){
1063-
nonhistoryPath += '&' + key + '=' + encodeURIComponent(value);
1088+
} else if(this.isUsingPagination() && key === 'rows'){
1089+
url += '&' + key + '=' + encodeURIComponent(value);
10641090
} else if(this.defaultParams.hasOwnProperty('extra') && this.defaultParams.extra.hasOwnProperty(key)){
10651091
nonhistoryPath += '&' + key + '=' + encodeURIComponent(value);
10661092
} else

0 commit comments

Comments
 (0)