cspace-ui
Version:
CollectionSpace user interface for browsers
133 lines (132 loc) • 7.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isSearchResultSidebarOpen = exports.isRecordSidebarOpen = exports.isPanelCollapsed = exports.getUploadType = exports.getToolTab = exports.getStickyFields = exports.getSearchToSelectPageSize = exports.getSearchResultPagePageSize = exports.getSearchPanelPageSize = exports.getSearchPageVocabulary = exports.getSearchPageRecordType = exports.getSearchCondition = exports.getRecordBrowserNavBarItems = exports.getQuickSearchVocabulary = exports.getQuickSearchRecordType = exports.getForm = exports.getAdvancedSearchBooleanOp = exports.getAdminTab = exports.default = void 0;
var _immutable = _interopRequireDefault(require("immutable"));
var _searchOperators = require("../constants/searchOperators");
var _searchHelpers = require("../helpers/searchHelpers");
var _actionCodes = require("../constants/actionCodes");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const handleAdvancedSearchConditionChange = (state, action) => {
const {
recordType
} = action.meta;
if (!recordType) {
return state;
}
const condition = action.payload;
const op = condition ? condition.get('op') : null;
let nextState = state;
if (op === _searchOperators.OP_AND || op === _searchOperators.OP_OR) {
nextState = nextState.set('advancedSearchBooleanOp', op);
}
nextState = nextState.setIn(['searchCond', recordType], (0, _searchHelpers.clearAdvancedSearchConditionValues)(condition));
return nextState;
};
const handleToggleRecordSidebar = state => {
let isOpen = state.get('recordSidebarOpen');
if (typeof isOpen === 'undefined') {
isOpen = true;
}
return state.set('recordSidebarOpen', !isOpen);
};
const handleToggleSearchResultSidebar = state => {
let isOpen = state.get('searchResultSidebarOpen');
if (typeof isOpen === 'undefined') {
isOpen = true;
}
return state.set('searchResultSidebarOpen', !isOpen);
};
const setStickyFields = (state, action) => {
const data = action.payload;
const {
recordTypeConfig
} = action.meta;
return state.setIn(['stickyFields', recordTypeConfig.name], data);
};
var _default = (state = _immutable.default.Map(), action) => {
switch (action.type) {
case _actionCodes.PREFS_LOADED:
return action.payload || _immutable.default.Map();
case _actionCodes.COLLAPSE_PANEL:
return state.setIn(['panels', action.meta.recordType, action.meta.name, 'collapsed'], action.payload);
case _actionCodes.SET_ADMIN_TAB:
return state.set('adminTab', action.payload);
case _actionCodes.SET_TOOL_TAB:
return state.set('toolTab', action.payload);
case _actionCodes.SET_RECORD_BROWSER_NAV_BAR_ITEMS:
return state.setIn(['recordBrowserNavBarItems', action.meta.recordType], action.payload);
case _actionCodes.SET_SEARCH_PAGE_RECORD_TYPE:
return state.setIn(['searchPage', 'recordType'], action.payload);
case _actionCodes.SET_SEARCH_PAGE_VOCABULARY:
return state.setIn(['searchPage', 'vocabulary', state.getIn(['searchPage', 'recordType'])], action.payload);
case _actionCodes.SET_QUICK_SEARCH_RECORD_TYPE:
return state.setIn(['quickSearch', 'recordType'], action.payload);
case _actionCodes.SET_QUICK_SEARCH_VOCABULARY:
return state.setIn(['quickSearch', 'vocabulary', state.getIn(['quickSearch', 'recordType'])], action.payload);
case _actionCodes.SET_SEARCH_PANEL_PAGE_SIZE:
return state.setIn(['panels', action.meta.recordType, action.meta.name, 'pageSize'], action.payload);
case _actionCodes.SET_SEARCH_RESULT_PAGE_PAGE_SIZE:
return state.set('searchResultPagePageSize', action.payload);
case _actionCodes.SET_SEARCH_TO_SELECT_PAGE_SIZE:
return state.set('searchToSelectPageSize', action.payload);
case _actionCodes.SET_FORM:
return state.setIn(['form', action.meta.recordType], action.payload);
case _actionCodes.SET_UPLOAD_TYPE:
return state.set('uploadType', action.payload);
case _actionCodes.SET_SEARCH_PAGE_ADVANCED:
case _actionCodes.SET_SEARCH_TO_SELECT_ADVANCED:
return handleAdvancedSearchConditionChange(state, action);
case _actionCodes.TOGGLE_RECORD_SIDEBAR:
return handleToggleRecordSidebar(state, action);
case _actionCodes.TOGGLE_SEARCH_RESULT_SIDEBAR:
return handleToggleSearchResultSidebar(state, action);
case _actionCodes.SET_STICKY_FIELDS:
return setStickyFields(state, action);
default:
return state;
}
};
exports.default = _default;
const getAdvancedSearchBooleanOp = state => state.get('advancedSearchBooleanOp');
exports.getAdvancedSearchBooleanOp = getAdvancedSearchBooleanOp;
const getSearchCondition = (state, recordType) => state.getIn(['searchCond', recordType]);
exports.getSearchCondition = getSearchCondition;
const getSearchPageRecordType = state => state.getIn(['searchPage', 'recordType']);
exports.getSearchPageRecordType = getSearchPageRecordType;
const getSearchPageVocabulary = (state, recordType) => state.getIn(['searchPage', 'vocabulary', recordType]);
exports.getSearchPageVocabulary = getSearchPageVocabulary;
const getQuickSearchRecordType = state => state.getIn(['quickSearch', 'recordType']);
exports.getQuickSearchRecordType = getQuickSearchRecordType;
const getQuickSearchVocabulary = (state, recordType) => state.getIn(['quickSearch', 'vocabulary', recordType]);
exports.getQuickSearchVocabulary = getQuickSearchVocabulary;
const getSearchPanelPageSize = (state, recordType, name) => state.getIn(['panels', recordType, name, 'pageSize']);
exports.getSearchPanelPageSize = getSearchPanelPageSize;
const getSearchResultPagePageSize = state => state.get('searchResultPagePageSize');
exports.getSearchResultPagePageSize = getSearchResultPagePageSize;
const getSearchToSelectPageSize = state => state.get('searchToSelectPageSize');
exports.getSearchToSelectPageSize = getSearchToSelectPageSize;
const isPanelCollapsed = (state, recordType, name) => state.getIn(['panels', recordType, name, 'collapsed']);
exports.isPanelCollapsed = isPanelCollapsed;
const getRecordBrowserNavBarItems = (state, recordType) => state.getIn(['recordBrowserNavBarItems', recordType]);
exports.getRecordBrowserNavBarItems = getRecordBrowserNavBarItems;
const getForm = (state, recordType) => state.getIn(['form', recordType]);
exports.getForm = getForm;
const getUploadType = state => state.get('uploadType');
exports.getUploadType = getUploadType;
const getAdminTab = state => state.get('adminTab');
exports.getAdminTab = getAdminTab;
const getToolTab = state => state.get('toolTab');
exports.getToolTab = getToolTab;
const isRecordSidebarOpen = state => state.get('recordSidebarOpen');
exports.isRecordSidebarOpen = isRecordSidebarOpen;
const isSearchResultSidebarOpen = state => state.get('searchResultSidebarOpen');
exports.isSearchResultSidebarOpen = isSearchResultSidebarOpen;
const getStickyFields = (state, recordType) => {
if (typeof recordType === 'undefined') {
return state.get('stickyFields');
}
return state.getIn(['stickyFields', recordType]);
};
exports.getStickyFields = getStickyFields;