+ var filterDefinition = [ {
+ name: 'group1',
+ type: 'send_unselected_if_any',
+ filters: [
+ {
+ name: 'filter1', label: 'group1filter1-label', description: 'group1filter1-desc',
+ default: true,
+ conflicts: [ { group: 'group2' } ],
+ subset: [
+ {
+ group: 'group1',
+ filter: 'filter2'
+ },
+ {
+ group: 'group1',
+ filter: 'filter3'
+ }
+ ]
+ },
+ {
+ name: 'filter2', label: 'group1filter2-label', description: 'group1filter2-desc',
+ conflicts: [ { group: 'group2', filter: 'filter6' } ],
+ subset: [
+ {
+ group: 'group1',
+ filter: 'filter3'
+ }
+ ]
+ },
+ { name: 'filter3', label: 'group1filter3-label', description: 'group1filter3-desc', default: true }
+ ]
+ }, {
+ name: 'group2',
+ type: 'send_unselected_if_any',
+ fullCoverage: true,
+ conflicts: [ { group: 'group1', filter: 'filter1' } ],
+ filters: [
+ { name: 'filter4', label: 'group2filter4-label', description: 'group2filter4-desc' },
+ { name: 'filter5', label: 'group2filter5-label', description: 'group2filter5-desc', default: true },
+ {
+ name: 'filter6', label: 'group2filter6-label', description: 'group2filter6-desc',
+ conflicts: [ { group: 'group1', filter: 'filter2' } ]
+ }
+ ]
+ }, {
+ name: 'group3',
+ type: 'string_options',
+ separator: ',',
+ default: 'filter8',
+ filters: [
+ { name: 'filter7', label: 'group3filter7-label', description: 'group3filter7-desc' },
+ { name: 'filter8', label: 'group3filter8-label', description: 'group3filter8-desc' },
+ { name: 'filter9', label: 'group3filter9-label', description: 'group3filter9-desc' }
+ ]
+ }, {
+ name: 'group4',
+ type: 'single_option',
+ default: 'option2',
+ filters: [
+ { name: 'option1', label: 'group4option1-label', description: 'group4option1-desc' },
+ { name: 'option2', label: 'group4option2-label', description: 'group4option2-desc' },
+ { name: 'option3', label: 'group4option3-label', description: 'group4option3-desc' }
+ ]
+ }, {
+ name: 'group5',
+ type: 'single_option',
+ filters: [
+ { name: 'option1', label: 'group5option1-label', description: 'group5option1-desc' },
+ { name: 'option2', label: 'group5option2-label', description: 'group5option2-desc' },
+ { name: 'option3', label: 'group5option3-label', description: 'group5option3-desc' }
+ ]
+ }, {
+ name: 'group6',
+ type: 'boolean',
+ filters: [
+ { name: 'group6option1', label: 'group6option1-label', description: 'group5option1-desc' },
+ { name: 'group6option2', label: 'group6option2-label', description: 'group5option2-desc', default: true, useDefaultAsBaseValue: true },
+ { name: 'group6option3', label: 'group6option3-label', description: 'group5option3-desc', default: true }
+ ]
+ } ],
+ viewsDefinition = {
+ namespaces: {
+ label: 'Namespaces',
+ trigger: ':',
+ groups: [ {
+ name: 'namespace',
+ label: 'Namespaces',
+ type: 'string_options',
+ separator: ';',
+ filters: [
+ { name: 0, label: 'Main' },
+ { name: 1, label: 'Talk' },
+ { name: 2, label: 'User' },
+ { name: 3, label: 'User talk' }
+ ]
+ } ]
+ }
+ },
+ defaultParameters = {
+ filter1: '1',
+ filter2: '0',
+ filter3: '1',
+ filter4: '0',
+ filter5: '1',
+ filter6: '0',
+ group3: 'filter8',
+ group4: 'option2',
+ group5: 'option1',
+ group6option1: '0',
+ group6option2: '1',
+ group6option3: '1',
+ namespace: ''
+ },
+ baseParamRepresentation = {
+ filter1: '0',
+ filter2: '0',
+ filter3: '0',
+ filter4: '0',
+ filter5: '0',
+ filter6: '0',
+ group3: '',
+ group4: 'option2',
+ group5: 'option1',
+ group6option1: '0',
+ group6option2: '1',
+ group6option3: '0',
+ namespace: ''
+ },
+ baseFilterRepresentation = {
+ group1__filter1: false,
+ group1__filter2: false,
+ group1__filter3: false,
+ group2__filter4: false,
+ group2__filter5: false,
+ group2__filter6: false,
+ group3__filter7: false,
+ group3__filter8: false,
+ group3__filter9: false,
+ // The 'single_value' type of group can't have empty value; it's either
+ // the default given or the first item that will get the truthy value
+ group4__option1: false,
+ group4__option2: true, // Default
+ group4__option3: false,
+ group5__option1: true, // No default set, first item is default value
+ group5__option2: false,
+ group5__option3: false,
+ group6__group6option1: false,
+ group6__group6option2: true,
+ group6__group6option3: false,
+ namespace__0: false,
+ namespace__1: false,
+ namespace__2: false,
+ namespace__3: false
+ },
+ baseFullFilterState = {
+ group1__filter1: { selected: false, conflicted: false, included: false },
+ group1__filter2: { selected: false, conflicted: false, included: false },
+ group1__filter3: { selected: false, conflicted: false, included: false },
+ group2__filter4: { selected: false, conflicted: false, included: false },
+ group2__filter5: { selected: false, conflicted: false, included: false },
+ group2__filter6: { selected: false, conflicted: false, included: false },
+ group3__filter7: { selected: false, conflicted: false, included: false },
+ group3__filter8: { selected: false, conflicted: false, included: false },
+ group3__filter9: { selected: false, conflicted: false, included: false },
+ group4__option1: { selected: false, conflicted: false, included: false },
+ group4__option2: { selected: true, conflicted: false, included: false },
+ group4__option3: { selected: false, conflicted: false, included: false },
+ group5__option1: { selected: true, conflicted: false, included: false },
+ group5__option2: { selected: false, conflicted: false, included: false },
+ group5__option3: { selected: false, conflicted: false, included: false },
+ group6__group6option1: { selected: false, conflicted: false, included: false },
+ group6__group6option2: { selected: true, conflicted: false, included: false },
+ group6__group6option3: { selected: false, conflicted: false, included: false },
+ namespace__0: { selected: false, conflicted: false, included: false },
+ namespace__1: { selected: false, conflicted: false, included: false },
+ namespace__2: { selected: false, conflicted: false, included: false },
+ namespace__3: { selected: false, conflicted: false, included: false }
+ };
+