@@ -33,14 +33,16 @@ issueList.DropdownView = Backbone.View.extend({
33
33
} ,
34
34
selectDropdownOption : function ( e ) {
35
35
var option = $ ( e . target ) ;
36
+ var paramKey = option . data ( 'paramKey' ) ;
37
+ var paramValue = option . data ( 'paramValue' ) ;
36
38
option . addClass ( 'is-active' )
37
39
. siblings ( ) . removeClass ( 'is-active' ) ;
38
40
39
41
// TODO: persist in localStorage for page refreshes?
40
42
this . updateDropdownTitle ( option ) ;
41
43
42
44
// fire an event so other views can react to dropdown changes
43
- wcEvents . trigger ( 'dropdown:change' , { params : option . data ( 'params' ) } ) ;
45
+ wcEvents . trigger ( 'dropdown:change' , { params : { key : paramKey , value : paramValue } } ) ;
44
46
e . preventDefault ( ) ;
45
47
} ,
46
48
updateDropdownTitle : function ( optionElm ) {
@@ -60,6 +62,7 @@ issueList.FilterView = Backbone.View.extend({
60
62
61
63
issueList . events . on ( 'filter:activate' , _ . bind ( this . toggleFilter , this ) ) ;
62
64
65
+ // TODO(miket): update with paramKey & paramValue
63
66
var options = [
64
67
{ title : "View all open issues" , params : "" } ,
65
68
{ title : "View all issues" , params : "filter=all" }
@@ -181,12 +184,13 @@ issueList.SortingView = Backbone.View.extend({
181
184
this . paginationModel = new Backbone . Model ( {
182
185
dropdownTitle : "Show 50" ,
183
186
dropdownOptions : [
184
- { title : "Show 25" , params : "per_page= 25" } ,
185
- { title : "Show 50" , params : "per_page= 50" } ,
186
- { title : "Show 100" , params : "per_page= 100" }
187
+ { title : "Show 25" , paramKey : "per_page" , paramValue : " 25"} ,
188
+ { title : "Show 50" , paramKey : "per_page" , paramValue : " 50"} ,
189
+ { title : "Show 100" , paramKey : "per_page" , paramValue : " 100"}
187
190
]
188
191
} ) ;
189
192
193
+ // TODO(miket): update model to have paramKey and paramValue
190
194
this . sortModel = new Backbone . Model ( {
191
195
dropdownTitle : "Newest" ,
192
196
dropdownOptions : [
@@ -375,12 +379,14 @@ issueList.IssueView = Backbone.View.extend({
375
379
this . fetchAndRenderIssues ( ) ;
376
380
} ,
377
381
updateModelParams : function ( data ) {
382
+ var dataParams = data . params . key + '=' + data . params . value ;
378
383
var modelUrl = this . issues . url . split ( '?' ) ;
379
384
var modelPath = modelUrl [ 0 ] ;
380
385
var modelParams = modelUrl [ 1 ] ;
386
+
381
387
// merge old params with passed in param data
382
388
// $.extend will update existing object keys, and add new ones
383
- var newParams = $ . extend ( $ . deparam ( modelParams ) , $ . deparam ( data . params ) ) ;
389
+ var newParams = $ . extend ( $ . deparam ( modelParams ) , $ . deparam ( dataParams ) ) ;
384
390
385
391
// construct new model URL and re-request issues
386
392
this . issues . url = modelPath + '?' + $ . param ( newParams ) ;
0 commit comments