if ( model.getType() === 'send_unselected_if_any' ) {
// Store the default parameter state
// For this group type, parameter values are direct
- model.defaultParams[ filter.name ] = Number( !!filter.default );
+ // We need to convert from a boolean to a string ('1' and '0')
+ model.defaultParams[ filter.name ] = String( Number( !!filter.default ) );
}
} );
// Go over the items and define the correct values
$.each( filterRepresentation, function ( name, value ) {
result[ filterParamNames[ name ] ] = areAnySelected ?
- Number( !value ) : 0;
+ // We must store all parameter values as strings '0' or '1'
+ String( Number( !value ) ) :
+ '0';
} );
} else if ( this.getType() === 'string_options' ) {
values = [];
paramRepresentation = paramRepresentation || {};
// Expand param representation to include all filters in the group
this.getItems().forEach( function ( filterItem ) {
- paramRepresentation[ filterItem.getParamName() ] = !!paramRepresentation[ filterItem.getParamName() ];
- paramToFilterMap[ filterItem.getParamName() ] = filterItem;
+ var paramName = filterItem.getParamName();
- if ( paramRepresentation[ filterItem.getParamName() ] ) {
+ paramRepresentation[ paramName ] = paramRepresentation[ paramName ] || '0';
+ paramToFilterMap[ paramName ] = filterItem;
+
+ if ( Number( paramRepresentation[ filterItem.getParamName() ] ) ) {
areAnySelected = true;
}
} );
assert.deepEqual(
model.getDefaultParams(),
{
- hidefilter1: 1,
- hidefilter2: 0,
- hidefilter3: 1,
- hidefilter4: 0,
- hidefilter5: 1,
- hidefilter6: 0,
+ hidefilter1: '1',
+ hidefilter2: '0',
+ hidefilter3: '1',
+ hidefilter4: '0',
+ hidefilter5: '1',
+ hidefilter6: '0',
group3: 'filter8'
},
'Default parameters are stored properly per filter and group'
assert.deepEqual(
model.getParametersFromFilters(),
{
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 0,
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: ''
},
'Unselected filters return all parameters falsey or \'\'.'
model.getParametersFromFilters(),
{
// Group 1 (one selected, the others are true)
- hidefilter1: 0,
- hidefilter2: 1,
- hidefilter3: 1,
+ hidefilter1: '0',
+ hidefilter2: '1',
+ hidefilter3: '1',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: ''
},
'One filters in one "send_unselected_if_any" group returns the other parameters truthy.'
model.getParametersFromFilters(),
{
// Group 1 (two selected, the others are true)
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 1,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '1',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: ''
},
'Two filters in one "send_unselected_if_any" group returns the other parameters truthy.'
model.getParametersFromFilters(),
{
// Group 1 (all selected, all false)
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 0,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: ''
},
'All filters selected in one "send_unselected_if_any" group returns all parameters falsy.'
model.getParametersFromFilters(),
{
// Group 1 (all selected, all)
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 0,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: 'filter7'
},
'One filter selected in "string_option" group returns that filter in the value.'
model.getParametersFromFilters(),
{
// Group 1 (all selected, all)
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 0,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: 'filter7,filter8'
},
'Two filters selected in "string_option" group returns those filters in the value.'
model.getParametersFromFilters(),
{
// Group 1 (all selected, all)
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 0,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: 'all'
},
'All filters selected in "string_option" group returns \'all\'.'
},
expected: {
// Group 1 (two selected, the others are true)
- hidefilter1: 0,
- hidefilter2: 0,
- hidefilter3: 1,
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '1',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: 'filter7,filter8'
},
msg: 'Given an explicit (complete) filter state object, the result is the same as if the object given represented the model state.'
},
expected: {
// Group 1 (one selected, the others are true)
- hidefilter1: 0,
- hidefilter2: 1,
- hidefilter3: 1,
+ hidefilter1: '0',
+ hidefilter2: '1',
+ hidefilter3: '1',
// Group 2 (nothing is selected, all false)
- hidefilter4: 0,
- hidefilter5: 0,
- hidefilter6: 0,
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
group3: ''
},
msg: 'Given an explicit (incomplete) filter state object, the result is the same as if the object give represented the model state.'