diff --git a/superset/assets/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js b/superset/assets/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js index 636727b0d92..8dae4d3b55b 100644 --- a/superset/assets/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js +++ b/superset/assets/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js @@ -62,7 +62,26 @@ describe('getFilterConfigsFromFormdata', () => { show_sqla_time_column: true, }); expect(result.columns).toMatchObject({ - state: 'CA', + state: ['CA'], + }); + }); + + it('should read multi values from form_data', () => { + const result = getFilterConfigsFromFormdata({ + ...testFormdata, + filter_configs: [ + { + asc: true, + clearable: true, + column: 'state', + defaultValue: 'CA;NY', + key: 'fvwncPjUf', + multiple: true, + }, + ], + }); + expect(result.columns).toMatchObject({ + state: ['CA', 'NY'], }); }); }); diff --git a/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js b/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js index 87efbc8068e..fb7102cc09b 100644 --- a/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js +++ b/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js @@ -31,9 +31,15 @@ export default function getFilterConfigsFromFormdata(form_data = {}) { } = form_data; let configs = filter_configs.reduce( ({ columns, labels }, config) => { + let defaultValues = config.defaultValue; + // defaultValue could be ; separated values, + // could be null or '' + if (config.defaultValue) { + defaultValues = config.defaultValue.split(';'); + } const updatedColumns = { ...columns, - [config.column]: config.vals || config.defaultValue, + [config.column]: config.vals || defaultValues, }; const updatedLabels = { ...labels,