diff --git a/frontend/app/duck/customField.js b/frontend/app/duck/customField.js index 3edc557da..ad93c21c6 100644 --- a/frontend/app/duck/customField.js +++ b/frontend/app/duck/customField.js @@ -4,7 +4,7 @@ import { fetchListType, saveType, editType, initType, removeType } from './funcT import { createItemInListUpdater, mergeReducers, success, array } from './funcTools/tools'; import { createEdit, createInit } from './funcTools/crud'; import { createRequestReducer } from './funcTools/request'; -import { addElementToFiltersMap } from 'Types/filter/newFilter'; +import { addElementToFiltersMap, addElementToLiveFiltersMap } from 'Types/filter/newFilter'; import { FilterCategory } from '../types/filter/filterType'; import { refreshFilterOptions } from './search' @@ -38,6 +38,7 @@ const reducer = (state = initialState, action = {}) => { case FETCH_SUCCESS: action.data.forEach(item => { addElementToFiltersMap(FilterCategory.METADATA, item.key); + addElementToLiveFiltersMap(FilterCategory.METADATA, item.key); }); return state.set('list', List(action.data).map(CustomField)) //.concat(defaultMeta)) case FETCH_SOURCES_SUCCESS: diff --git a/frontend/app/types/filter/newFilter.js b/frontend/app/types/filter/newFilter.js index abe17dd24..d2125acdb 100644 --- a/frontend/app/types/filter/newFilter.js +++ b/frontend/app/types/filter/newFilter.js @@ -4,6 +4,7 @@ import filterOptions, { countries, platformOptions } from 'App/constants'; import { capitalize } from 'App/utils'; const countryOptions = Object.keys(countries).map(i => ({ text: countries[i], value: i })); +const containsFilters = [{ key: 'contains', text: 'contains', value: 'contains' }] const ISSUE_OPTIONS = [ { text: 'Click Rage', value: 'click_rage' }, @@ -57,7 +58,7 @@ export const filtersMap = { } export const liveFiltersMap = { - [FilterKey.USERID]: { key: FilterKey.USERID, type: FilterType.STRING, category: FilterCategory.USER, label: 'User Id', operator: 'contains', operatorOptions: [{ key: 'contains', text: 'contains', value: 'contains' }], icon: 'filters/userid', isLive: true }, + [FilterKey.USERID]: { key: FilterKey.USERID, type: FilterType.STRING, category: FilterCategory.USER, label: 'User Id', operator: 'contains', operatorOptions: containsFilters, icon: 'filters/userid', isLive: true }, } /** @@ -80,6 +81,17 @@ export const addElementToFiltersMap = ( filtersMap[key] = { key, type, category, label: capitalize(key), operator: operator, operatorOptions, icon, isLive: true } } +export const addElementToLiveFiltersMap = ( + category = FilterCategory.METADATA, + key, + type = FilterType.STRING, + operator = 'contains', + operatorOptions = containsFilters, + icon = 'filters/metadata' +) => { + liveFiltersMap[key] = { key, type, category, label: capitalize(key), operator: operator, operatorOptions, icon, isLive: true } +} + export default Record({ timestamp: 0, key: '', @@ -129,10 +141,10 @@ export default Record({ * @param {*} filtersMap * @returns */ -export const generateFilterOptions = (filtersMap) => { +export const generateFilterOptions = (map) => { const _options = {}; - Object.keys(filtersMap).forEach(key => { - const filter = filtersMap[key]; + Object.keys(map).forEach(key => { + const filter = map[key]; if (_options.hasOwnProperty(filter.category)) { _options[filter.category].push(filter); } else {