@@ -433,6 +433,7 @@ var unbxdSearchInit = function(jQuery, Handlebars){
433
433
field : 'price' ,
434
434
order : 'asc'
435
435
} ]
436
+ , sortContainerType : 'select' /* value can be select or click */
436
437
, sortContainerTemp : [
437
438
'<select>' ,
438
439
'{{#options}}' ,
@@ -453,6 +454,7 @@ var unbxdSearchInit = function(jQuery, Handlebars){
453
454
name : '24' ,
454
455
value : '24'
455
456
} ]
457
+ , pageSizeContainerType : 'select' /* value can be select or click */
456
458
, pageSizeContainerTemp : [
457
459
'<select>' ,
458
460
'{{#options}}' ,
@@ -600,7 +602,42 @@ var unbxdSearchInit = function(jQuery, Handlebars){
600
602
return Object . prototype . toString . call ( object ) . match ( / ^ \[ o b j e c t \s ( .* ) \] $ / ) [ 1 ] ;
601
603
}
602
604
, 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
+ } ;
604
641
605
642
if ( this . options . type == "search" ) {
606
643
if ( "form" in this . input && this . input . form ) {
@@ -752,40 +789,29 @@ var unbxdSearchInit = function(jQuery, Handlebars){
752
789
}
753
790
754
791
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
+ }
774
801
}
775
802
776
803
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
+ }
777
813
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
+
789
815
} ) ;
790
816
}
791
817
@@ -1059,8 +1085,8 @@ var unbxdSearchInit = function(jQuery, Handlebars){
1059
1085
}
1060
1086
} else if ( key === 'wt' || key === 'format' ) {
1061
1087
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 ) ;
1064
1090
} else if ( this . defaultParams . hasOwnProperty ( 'extra' ) && this . defaultParams . extra . hasOwnProperty ( key ) ) {
1065
1091
nonhistoryPath += '&' + key + '=' + encodeURIComponent ( value ) ;
1066
1092
} else
0 commit comments