UNPKG

react-admin-ui

Version:

React Admin Panel based on material-ui interface Edit

474 lines (371 loc) 19.6 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleDelete = exports.handleEditFail = exports.handleEditSuccess = exports.handleEdit = exports.handleCreateFail = exports.handleCreateSuccess = exports.handleCreate = exports.show = exports.list = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _reactIsomorphicTools = require('react-isomorphic-tools'); var _reduxForm = require('redux-form'); var _reactRouterRedux = require('react-router-redux'); var _snackbar = require('../actions/snackbar'); var _isJson = require('is-json'); var _isJson2 = _interopRequireDefault(_isJson); var _lib = require('../lib'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var list = function list(_ref) { var fetchToState = _ref.fetchToState, params = _ref.params, _ref$location$query = _ref.location.query, queryFilters = _ref$location$query.filters, query = (0, _objectWithoutProperties3.default)(_ref$location$query, ['filters']); var entity = (0, _lib.getEntity)(params.name); if (!entity) { throw { code: '303', to: '/', type: 'redirect' }; } var baseUrl = entity.url, _entity$actions$list = entity.actions.list, listUrl = _entity$actions$list.url, listParams = _entity$actions$list.params; var args = {}; var filters = queryFilters && (0, _isJson2.default)(queryFilters) ? JSON.parse(queryFilters) : undefined; switch (typeof listUrl === 'undefined' ? 'undefined' : (0, _typeof3.default)(listUrl)) { case 'function': { var result = listUrl(params, (0, _extends3.default)({}, query, { filters: filters })); args = (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) == 'object' ? result : { url: result, params: (0, _assign2.default)(query, listParams, { filters: filters }) }; } break; case 'string': args = { url: listUrl, params: (0, _assign2.default)(query, listParams, { filters: filters }) }; break; default: args = { url: baseUrl, params: (0, _assign2.default)(query, listParams, { filters: filters }) }; break; } return fetchToState(args.url, { params: args.params, key: params.name + 'List' }); }; var show = function show(_ref2) { var fetchToState = _ref2.fetchToState, params = _ref2.params, query = _ref2.location.query; var entity = (0, _lib.getEntity)(params.name); if (!entity) { throw { code: '303', to: '/', type: 'redirect' }; } return fetchToState(typeof entity.actions.show.url == 'function' ? entity.actions.show.url(params) : entity.url + '/' + params.id, { params: (0, _assign2.default)((0, _extends3.default)({}, query.params), entity.actions.show.params), key: params.name + 'Show' }); }; var handleCreate = function handleCreate(form, dispatch, props) { var _props$entity$actions = props.entity.actions.create, wrapper = _props$entity$actions.wrapper, url = _props$entity$actions.url, _props$entity$actions2 = _props$entity$actions.params, params = _props$entity$actions2 === undefined ? {} : _props$entity$actions2, result = _props$entity$actions.result; var _params = wrapper ? (0, _assign2.default)(params, (0, _defineProperty3.default)({}, wrapper, form)) : (0, _assign2.default)(form, params); return (0, _reactIsomorphicTools.fetcher)(typeof url == 'function' ? url(props.params, props.query) : url, { params: typeof result == 'function' ? result(_params) : _params, method: 'POST' }); }; var handleCreateSuccess = function () { var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(result, dispatch, props) { var _props$entity, _props$entity$actions3, _props$entity$actions4, redirect, handleSubmitSuccessBeforeHook, handleSubmitSuccessAfterHook, _props$entity$id, id, name, prefix; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _props$entity = props.entity, _props$entity$actions3 = _props$entity.actions.create, _props$entity$actions4 = _props$entity$actions3.redirect, redirect = _props$entity$actions4 === undefined ? 'list' : _props$entity$actions4, handleSubmitSuccessBeforeHook = _props$entity$actions3.handleSubmitSuccessBeforeHook, handleSubmitSuccessAfterHook = _props$entity$actions3.handleSubmitSuccessAfterHook, _props$entity$id = _props$entity.id, id = _props$entity$id === undefined ? 'id' : _props$entity$id, name = _props$entity.name, prefix = props.prefix; if (!handleSubmitSuccessBeforeHook) { _context.next = 5; break; } _context.next = 5; return handleSubmitSuccessBeforeHook(result, dispatch, props); case 5: dispatch((0, _snackbar.open)('successCreated', 'Successfully created')); _context.next = 8; return list({ fetchToState: function fetchToState(url, params) { return dispatch((0, _reactIsomorphicTools.fetchToState)(url, params)); }, params: props.params, location: { query: props.query } }); case 8: dispatch((0, _snackbar.open)('listUpdated', 'List has been updated')); if (!result[id]) { _context.next = 22; break; } _context.t0 = redirect; _context.next = _context.t0 === 'show' ? 13 : _context.t0 === 'edit' ? 15 : _context.t0 === 'create' ? 17 : 19; break; case 13: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name + '/' + result[id])); return _context.abrupt('break', 20); case 15: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name + '/' + result[id] + '/edit')); return _context.abrupt('break', 20); case 17: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name + '/create')); return _context.abrupt('break', 20); case 19: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name)); case 20: _context.next = 23; break; case 22: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name)); case 23: if (!handleSubmitSuccessAfterHook) { _context.next = 26; break; } _context.next = 26; return handleSubmitSuccessAfterHook(result, dispatch, props); case 26: _context.next = 31; break; case 28: _context.prev = 28; _context.t1 = _context['catch'](0); console.log(_context.t1); // const message = error && error.error && error.error.message || 'Error creation' // dispatch(open('errorCreation', message, 5000)) // throw new SubmissionError({error}) case 31: case 'end': return _context.stop(); } } }, _callee, undefined, [[0, 28]]); })); return function handleCreateSuccess(_x, _x2, _x3) { return _ref3.apply(this, arguments); }; }(); var handleCreateFail = function () { var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(props, dispatch, _ref5) { var error = _ref5.error; var message; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: message = error && error.error && error.error.message || 'Error creation'; dispatch((0, _snackbar.open)('errorCreation', message, 5000)); throw new _reduxForm.SubmissionError({ error: error }); case 3: case 'end': return _context2.stop(); } } }, _callee2, undefined); })); return function handleCreateFail(_x4, _x5, _x6) { return _ref4.apply(this, arguments); }; }(); var handleEdit = function handleEdit(form, dispatch, props) { var _props$entity$actions5 = props.entity.actions.edit, wrapper = _props$entity$actions5.wrapper, _props$entity$actions6 = _props$entity$actions5.params, params = _props$entity$actions6 === undefined ? {} : _props$entity$actions6, url = _props$entity$actions5.url, _props$entity$actions7 = _props$entity$actions5.method, method = _props$entity$actions7 === undefined ? 'PUT' : _props$entity$actions7, result = _props$entity$actions5.result; var _params = wrapper ? (0, _assign2.default)(params, (0, _defineProperty3.default)({}, wrapper, form)) : (0, _assign2.default)(form, params); return (0, _reactIsomorphicTools.fetcher)(typeof url == 'function' ? url(props.params, props.query) : props.entity.url + '/' + props.params.id, { params: typeof result == 'function' ? result(_params) : _params, method: method }); }; var handleEditSuccess = function () { var _ref6 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(result, dispatch, props) { var _props$entity2, _props$entity2$id, id, name, _props$entity2$action, _props$entity2$action2, redirect, handleSubmitSuccessBeforeHook, handleSubmitSuccessAfterHook, params, prefix, query, error, message; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.prev = 0; _props$entity2 = props.entity, _props$entity2$id = _props$entity2.id, id = _props$entity2$id === undefined ? 'id' : _props$entity2$id, name = _props$entity2.name, _props$entity2$action = _props$entity2.actions, _props$entity2$action2 = _props$entity2$action.redirect, redirect = _props$entity2$action2 === undefined ? 'list' : _props$entity2$action2, handleSubmitSuccessBeforeHook = _props$entity2$action.handleSubmitSuccessBeforeHook, handleSubmitSuccessAfterHook = _props$entity2$action.handleSubmitSuccessAfterHook, params = props.params, prefix = props.prefix, query = props.query; if (!handleSubmitSuccessBeforeHook) { _context3.next = 5; break; } _context3.next = 5; return handleSubmitSuccessBeforeHook(result, dispatch, props); case 5: dispatch((0, _snackbar.open)('successEdit', 'Successfully saved')); _context3.next = 8; return show({ fetchToState: function fetchToState(url, params) { return dispatch((0, _reactIsomorphicTools.fetchToState)(url, params)); }, location: { query: query }, params: params }); case 8: _context3.next = 10; return list({ fetchToState: function fetchToState(url, params) { return dispatch((0, _reactIsomorphicTools.fetchToState)(url, params)); }, location: { query: query }, params: params }); case 10: dispatch((0, _snackbar.open)('listUpdated', 'List and Show have been updated')); if (!result[id]) { _context3.next = 22; break; } _context3.t0 = redirect; _context3.next = _context3.t0 === 'list' ? 15 : _context3.t0 === 'show' ? 17 : _context3.t0 === 'stay' ? 19 : 20; break; case 15: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name)); return _context3.abrupt('break', 20); case 17: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name + '/' + result[id])); return _context3.abrupt('break', 20); case 19: return _context3.abrupt('break', 20); case 20: _context3.next = 23; break; case 22: dispatch((0, _reactRouterRedux.push)(prefix + '/' + name)); case 23: if (!handleSubmitSuccessAfterHook) { _context3.next = 26; break; } _context3.next = 26; return handleSubmitSuccessAfterHook(result, dispatch, props); case 26: _context3.next = 34; break; case 28: _context3.prev = 28; _context3.t1 = _context3['catch'](0); error = _context3.t1.error; message = error && error.error && error.error.message || 'Error while saving'; dispatch((0, _snackbar.open)('errorSaving', message, 5000)); throw new _reduxForm.SubmissionError({ error: error }); case 34: case 'end': return _context3.stop(); } } }, _callee3, undefined, [[0, 28]]); })); return function handleEditSuccess(_x7, _x8, _x9) { return _ref6.apply(this, arguments); }; }(); var handleEditFail = function () { var _ref8 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(props, dispatch, _ref9) { var error = _ref9.error; var message; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: message = error && error.error && error.error.message || 'Error while saving'; dispatch((0, _snackbar.open)('errorSaving', message, 5000)); throw new _reduxForm.SubmissionError({ error: error }); case 3: case 'end': return _context4.stop(); } } }, _callee4, undefined); })); return function handleEditFail(_x10, _x11, _x12) { return _ref8.apply(this, arguments); }; }(); var handleDelete = function handleDelete(id, name, del, query, prefix) { return function () { var _ref10 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(dispatch) { return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.prev = 0; _context5.next = 3; return (0, _reactIsomorphicTools.fetcher)(del.url({ id: id }, query), { method: 'DELETE' }); case 3: dispatch((0, _reactIsomorphicTools.closeModal)('confirmDelete')); dispatch((0, _snackbar.open)('itemDelete', 'Successfully deleted')); _context5.next = 7; return list({ fetchToState: function fetchToState(url, params) { return dispatch((0, _reactIsomorphicTools.fetchToState)(url, params)); }, params: { name: name }, location: { query: query } }); case 7: dispatch((0, _snackbar.open)('listUpdated', 'List has been updated')); dispatch((0, _reactRouterRedux.push)(prefix + '/' + name)); _context5.next = 14; break; case 11: _context5.prev = 11; _context5.t0 = _context5['catch'](0); dispatch((0, _snackbar.open)('errorDeleting', 'Error deleting')); case 14: case 'end': return _context5.stop(); } } }, _callee5, undefined, [[0, 11]]); })); return function (_x13) { return _ref10.apply(this, arguments); }; }(); }; exports.list = list; exports.show = show; exports.handleCreate = handleCreate; exports.handleCreateSuccess = handleCreateSuccess; exports.handleCreateFail = handleCreateFail; exports.handleEdit = handleEdit; exports.handleEditSuccess = handleEditSuccess; exports.handleEditFail = handleEditFail; exports.handleDelete = handleDelete;