in app/addons/search/reducers.js [175:331]
export default function search(state = initialState, action) {
const options = action.options;
switch (action.type) {
case ActionTypes.SEARCH_INDEX_SET_LOADING:
return {
...state,
loading: options.loading
};
case ActionTypes.SEARCH_INDEX_DESIGN_DOCS_LOADED:
const newState = {
...state,
loading: false,
designDocs: options.designDocs,
database: options.database,
...softReset()
};
if (options.defaultDDoc) {
newState.ddocName = '_design/' + options.defaultDDoc;
}
return newState;
case ActionTypes.SEARCH_INDEX_SET_NAME:
return {
...state,
searchIndexName: options.value
};
case ActionTypes.SEARCH_INDEX_SET_ANALYZER_TYPE:
return {
...state,
analyzerType: options.value
};
case ActionTypes.SEARCH_INDEX_SET_SINGLE_ANALYZER:
return {
...state,
singleAnalyzer: options.analyzer
};
case ActionTypes.SEARCH_INDEX_ADD_ANALYZER_ROW:
return {
...state,
analyzerFields: addAnalyzerRow(state, options)
};
case ActionTypes.SEARCH_INDEX_PREVIEW_REQUEST_MADE:
return {
...state,
hasActiveQuery: true
};
case ActionTypes.SEARCH_INDEX_PREVIEW_REQUEST_ERROR:
return {
...state,
hasActiveQuery: false,
searchResults: []
};
case ActionTypes.SEARCH_INDEX_SET_SEARCH_QUERY:
return {
...state,
searchQuery: options.query
};
case ActionTypes.SEARCH_INDEX_PREVIEW_MODEL_UPDATED:
return {
...state,
searchResults: options.searchResults,
hasActiveQuery: false,
searchPerformed: true
};
case ActionTypes.SEARCH_INDEX_REMOVE_ANALYZER_ROW:
return {
...state,
analyzerFields: removeAnalyzerRowByIndex(state, options.rowIndex)
};
case ActionTypes.SEARCH_INDEX_SET_ANALYZER_ROW_FIELD_NAME:
return {
...state,
analyzerFields: setAnalyzerRowFieldName(state, options)
};
case ActionTypes.SEARCH_INDEX_SET_ANALYZER_ROW:
return {
...state,
analyzerFields: setAnalyzerRow(state, options)
};
case ActionTypes.SEARCH_INDEX_SET_DEFAULT_MULTIPLE_ANALYZER:
return {
...state,
defaultMultipleAnalyzer: options.analyzer
};
case ActionTypes.SEARCH_INDEX_INIT_EDIT_SEARCH_INDEX:
return {
...state,
...initEditSearch(state, options)
};
case ActionTypes.SEARCH_INDEX_SELECT_DESIGN_DOC:
return {
...state,
ddocName: options.value
};
case ActionTypes.SEARCH_INDEX_CLEAR:
return {
...initialState,
designDocs: new Backbone.Collection()
};
case ActionTypes.SEARCH_INDEX_INIT:
return {
...state,
loading: false,
databaseName: options.databaseName,
partitionKey: options.partitionKey,
ddocName: options.ddocName,
indexName: options.indexName,
searchQuery: options.searchQuery,
searchResults: options.searchQuery === '' ? undefined : state.searchResults,
noResultsWarning: ''
};
case ActionTypes.SEARCH_INDEX_NEW_DESIGN_DOC_NAME_UPDATED:
return {
...state,
newDesignDocName: options.value
};
case ActionTypes.SEARCH_INDEX_NEW_DESIGN_DOC_PARTITONED_UPDATED:
return {
...state,
newDesignDocPartitioned: options.value
};
case ActionTypes.SEARCH_INDEX_PARTITION_PARAM_NOT_SUPPORTED:
return {
...state,
noResultsWarning: 'The selected index does not support partitions. Switch back to global mode.'
};
case ActionTypes.SEARCH_INDEX_PARTITION_PARAM_MANDATORY:
return {
...state,
noResultsWarning: 'The selected index requires a partition key. Use the selector at the top to enter a partition key.'
};
default:
return state;
}
}