UNPKG

periodicjs.ext.reactadmin

Version:

An authentication extension for periodicjs that uses passport to authenticate user sessions.

262 lines (251 loc) 7.53 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); var _constants = require('../constants'); var _constants2 = _interopRequireDefault(_constants); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var appDefaultSettings = { name: 'Admin Panel', basename: 'http://localhost:8786', adminPath: '/r-admin', routerHistory: 'browserHistory', hot_reload: false, includeCoreData: { manifest: true, navigation: true }, allHistoryOptions: 'browserHistory|hashHistory|createMemoryHistory', application: { environment: 'development', use_offline_cache: false }, ui: { initialization: { show_header: false, show_footer: false, show_sidebar_overlay: true, refresh_manifests: true, refresh_navigation: true, refresh_components: true }, notifications: { error_timeout: 10000, timed_timeout: 10000, hide_login_notification: false, supressResourceErrors: false }, fixedSidebar: true, sidebarBG: '#ffffff', header: { isBold: true, color: 'isBlack', buttonColor: 'isWhite', useGlobalSearch: false, useHeaderLogout: false, customButton: false, navLabelStyle: {}, containerStyle: {}, userNameStyle: {} }, footer: { navStyle: {} }, sidebar: { containerStyle: {}, use_floating_nav: false } }, auth: { logged_in_homepage: '/r-admin/dashboard', logged_out_path: '/login' }, login: { url: 'http://localhost:8786/api/jwt/token', devurl: 'http://localhost:8786/api/jwt/token', options: { method: 'POST', headers: { Accept: 'application/json', clientid: 'fbff80bd23de5b1699cb595167370a1a', entitytype: 'account' } } }, userprofile: { url: 'http://localhost:8786/api/jwt/profile', devurl: 'http://localhost:8786/api/jwt/profile', options: { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', clientid: 'fbff80bd23de5b1699cb595167370a1a', clientid_default: 'clientIDNEEDED', entitytype: 'account' } } } }; var defaultUserNavigation = { wrapper: { style: {} }, container: { style: {} }, layout: { component: 'Menu', props: { style: { paddingBottom: 70, width: '10rem' } }, children: [{ component: 'MenuLabel', children: 'System' }, { component: 'MenuList', children: [{ component: 'MenuAppLink', props: { href: '/dashboard', label: 'Dashboard', id: 'dashboard' } }, { component: 'MenuAppLink', props: { href: '/#logout', label: 'Logout', onClick: 'func:this.props.logoutUser' } }] }] } }; var packageJSON = { name: 'adminclient', version: '0.1.0', 'private': true, devDependencies: { 'animate.css': '^3.5.2', capitalize: '^1.0.0', eslint: '^3.14.1', 'font-awesome': '^4.7.0', moment: '^2.17.1', pluralize: '^3.1.0', 'react-addons-css-transition-group': '^15.4.1', 'react-animate.css': '0.0.4', 'react-native': '^0.39.2', 'react-native-web': '0.0.60', 'react-redux': '^4.4.6', 'react-router': '^3.0.0', 'react-router-redux': '^4.0.7', 'react-scripts': '0.8.4', recharts: '0.20.5', redux: '^3.6.0', 'redux-logger': '^2.7.4', 'redux-thunk': '^2.1.0', 'ua-parser-js': '^0.7.12', useragent: '^2.1.13' }, dependencies: { 'babel-polyfill': '^6.23.0', debounce: '^1.0.0', 'draft-js': '^0.10.0', eslint: '^3.14.1', 'eslint-plugin-react': '^6.9.0', 'file-saver': '^1.3.3', flat: '^2.0.1', 'json-2-csv': '^2.1.0', mime: '^1.3.6', 'rc-slider': '^6.2.0', 'rc-steps': '^2.5.1', 're-bulma': '^0.4.3', react: '15.3.2', 'react-codemirror': '^0.3.0', 'react-dates': '^16.5.0', 'react-dom': '15.3.2', 'react-draft-wysiwyg': '^1.7.6', 'react-file-reader-input': '^1.1.0', 'react-moment-proptypes': '^1.5.0', 'react-responsive-carousel': '^3.1.3', 'react-text-mask': '^5.0.2', 'text-mask-addons': '^3.6.0', 'validate.js': '^0.11.1', 'whatwg-fetch': '^2.0.3' }, scripts: { start: 'react-scripts start', build: 'react-scripts build', test: 'react-scripts test --env=jsdom', eject: 'react-scripts eject' }, proxy: 'http://localhost:8786', homepage: '/extensions/periodicjs.ext.reactadmin' }; var windowState = typeof window !== 'undefined' && window.__padmin ? window.__padmin : {}; var initialState = (0, _assign2.default)({ version: packageJSON.version }, appDefaultSettings, windowState); initialState.user = (0, _assign2.default)({ navigation: defaultUserNavigation }, initialState.user); // console.log({ initialState }); var settingsReducer = function settingsReducer(state, action) { var user = void 0; switch (action.type) { case _constants2.default.settings.UPDATE_APP_SETTINGS: var updatedSettings = action.payload; return (0, _assign2.default)({}, state, updatedSettings); case _constants2.default.user.PREFERENCE_REQUEST: user = (0, _assign2.default)({}, state.user); user.preferences = (0, _assign2.default)({}, user.preferences, { isFetching: true }); return (0, _assign2.default)({}, state, { user: user }); case _constants2.default.user.PREFERENCE_LOAD_ERROR: user = (0, _assign2.default)({}, state.user); user.preferences = (0, _assign2.default)({}, user.preferences, { isFetching: false }, action.payload); return (0, _assign2.default)({}, state, { user: user }); case _constants2.default.user.PREFERENCE_LOAD_SUCCESS: user = (0, _assign2.default)({}, state.user); user.preferences = (0, _assign2.default)({}, user.preferences, { isFetching: false, updatedAt: action.payload.updatedAt, timestamp: action.payload.timestamp, hasLoaded: true, error: undefined }, action.payload.preferences); return (0, _assign2.default)({}, state, { user: user }); case _constants2.default.user.NAVIGATION_REQUEST: user = (0, _assign2.default)({}, state.user); user.navigation = (0, _assign2.default)({}, user.navigation, { isFetching: true }); return (0, _assign2.default)({}, state, { user: user }); case _constants2.default.user.NAVIGATION_LOAD_ERROR: user = (0, _assign2.default)({}, state.user); user.navigation = (0, _assign2.default)({}, user.navigation, { isFetching: false }, action.payload); return (0, _assign2.default)({}, state, { user: user }); case _constants2.default.user.NAVIGATION_LOAD_SUCCESS: user = (0, _assign2.default)({}, state.user); user.navigation = (0, _assign2.default)({}, user.navigation, { isFetching: false, updatedAt: action.payload.updatedAt, timestamp: action.payload.timestamp, hasLoaded: true, error: undefined }, action.payload.navigation); return (0, _assign2.default)({}, state, { user: user }); default: return (0, _assign2.default)(initialState, state); } }; exports.default = settingsReducer;