UNPKG

@rnga/orders

Version:

## Get schema from @prisma-cms 1. yarn get-api-schema -e http://localhost:4000 2. yarn build-api-fragments

700 lines (563 loc) 17.6 kB
'use strict'; exports.__esModule = true; exports.styles = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp2; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _Grid = require('material-ui/Grid'); var _Grid2 = _interopRequireDefault(_Grid); var _Editable = require('apollo-cms/src/DataView/Object/Editable'); var _Editable2 = _interopRequireDefault(_Editable); var _SelectField = require('ui/OrderItem/Status/SelectField'); var _SelectField2 = _interopRequireDefault(_SelectField); var _materialUi = require('material-ui'); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _OrderNumber = require('ui/OrderNumber'); var _OrderNumber2 = _interopRequireDefault(_OrderNumber); var _Object = require('ui/View/User/Object'); var _Object2 = _interopRequireDefault(_Object); var _Expertises = require('./Expertises'); var _Expertises2 = _interopRequireDefault(_Expertises); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure undefined"); } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var styles = exports.styles = { invisible: { height: 1, opacity: 0, border: "none" } }; var OrderItemPageView = (_temp2 = _class = function (_EditableView) { _inherits(OrderItemPageView, _EditableView); function OrderItemPageView() { var _temp, _this, _ret; _classCallCheck(this, OrderItemPageView); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, _EditableView.call.apply(_EditableView, [this].concat(args))), _this), _this.onUpdateAvatar = function (file) { if (file) { var id = file.id, path = file.path, mimetype = file.mimetype; if (!path) { _this.addError("File URL is empty"); return; } if (!mimetype) { _this.addError("Wrong file type"); } else if (!mimetype.match(/image/)) { _this.addError("Only images allow"); } else { var image = path; _this.updateObject({ image: image }); } } else { _this.addError("File did not received"); } }, _temp), _possibleConstructorReturn(_this, _ret); } OrderItemPageView.prototype.setPageMeta = function setPageMeta() { var setPageMeta = this.context.setPageMeta; setPageMeta({ title: this.getTitle() }); }; OrderItemPageView.prototype.componentWillMount = function componentWillMount() { this.setPageMeta(); _EditableView.prototype.componentWillMount && _EditableView.prototype.componentWillMount.call(this); }; OrderItemPageView.prototype.componentDidUpdate = function componentDidUpdate() { this.setPageMeta(); _EditableView.prototype.componentDidUpdate && _EditableView.prototype.componentDidUpdate.call(this); }; OrderItemPageView.prototype.getTitle = function getTitle() { var draftObject = this.getObjectWithMutations(); var _ref = draftObject || {}, title = _ref.title; return title || ""; }; OrderItemPageView.prototype.canEdit = function canEdit() { var currentUser = this.context.user; // const { // data, // } = this.props; // const { // object: user, // } = data || {}; // return currentUser && user && (currentUser.id === user.id || currentUser.sudo === true) ? true : false; return currentUser && currentUser.sudo ? true : false; }; OrderItemPageView.prototype.save = function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var _this2 = this; var result; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _EditableView.prototype.save.call(this).then(function (r) { var loadApiData = _this2.context.loadApiData; loadApiData(); return r; }).catch(function (e) { console.error(e); }); case 2: result = _context.sent; return _context.abrupt('return', result); case 4: case 'end': return _context.stop(); } } }, _callee, this); })); function save() { return _ref2.apply(this, arguments); } return save; }(); OrderItemPageView.prototype.getTextField = function getTextField() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; props = _extends({ disabled: !this.isInEditMode(), inputProps: { style: { color: "#333" } } }, props); return _EditableView.prototype.getTextField.call(this, props); }; OrderItemPageView.prototype.onChange = function onChange(event) { var _data, _Object$assign; var _event$target = event.target, name = _event$target.name, value = _event$target.value, Type = _event$target.type; if (Type === "number") { value = value ? parseFloat(value) : null; } switch (name) { case "externalKey": value = value ? parseInt(String(value).substr(0, 4)) : null; break; } var data = (_data = {}, _data[name] = value ? value : null, _data); var _getObjectWithMutatio = this.getObjectWithMutations(), id = _getObjectWithMutatio.id, type = _getObjectWithMutatio.type, externalKey = _getObjectWithMutatio.externalKey; if (!id) { switch (name) { case "externalKey": case "type": var slabData = Object.assign({ type: type, externalKey: externalKey, year: (0, _moment2.default)().format("YY0") }, (_Object$assign = {}, _Object$assign[name] = value, _Object$assign)); if (type && externalKey) { var slab = Object.values(slabData).join(""); data.slab = slab; } break; } } this.updateObject(data); }; OrderItemPageView.prototype.renderAdminBlock = function renderAdminBlock() { var object = this.getObjectWithMutations(); if (!object) { return null; } var inEditMode = this.isInEditMode(); var orderItemId = object.id, type = object.type, status = object.status; // birthday = birthday && moment(birthday).isValid() ? moment(birthday).format("YYYY-MM-DD") : birthday; // birthday = birthday && moment(birthday).isValid() ? moment(birthday).toLocaleString() : birthday; var type_str = ""; switch (type) { case "10": type_str = "Монета"; break; case "20": type_str = "Медаль"; break; case "30": type_str = "Жетон"; break; } return _react2.default.createElement( 'div', { style: { marginTop: 30 } }, _react2.default.createElement( _Grid2.default, { container: true, spacing: 8 }, _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Номер строки", name: "externalKey", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Порядковый номер", name: "number", helperText: "1, 2, 3 и т.д.", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "№ слаба", name: "slab", Editor: _OrderNumber2.default, customInput: _materialUi.TextField }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Заголовок", name: "title" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Год", name: "year" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Прегрейд", name: "preGrade" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ Editor: _SelectField2.default, label: "Статус", name: "status" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Тип", name: "type", helperText: "10-монета, 20-медаль, 30-жетон", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Тип", name: "type", value: type_str, disabled: true }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Диаметр", name: "diametr", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Толщина", name: "thingh", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Вес", name: "weight", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Оценочная стоимость", name: "price", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Страховая стоимость", name: "ensure_price", type: "number" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "Грейд по Шелдону", name: "sheldon_grade" }) ), _react2.default.createElement( _Grid2.default, { item: true, xs: 12, sm: 6, md: 4, lg: 3 }, this.getTextField({ label: "№ по Биткину", name: "bitkin" }) ), orderItemId ? _react2.default.createElement( _Grid2.default, { item: true, xs: 12 }, _react2.default.createElement(_Expertises2.default, { item: object, inEditMode: inEditMode }) ) : null, _react2.default.createElement( _Grid2.default, { item: true, xs: 12 }, this.renderOwner() ) ) ); }; OrderItemPageView.prototype.renderOwner = function renderOwner() { var _ref3 = this.getObjectWithMutations() || {}, Order = _ref3.Order; var _ref4 = Order || {}, User = _ref4.User; // const { // updateUser, // } = this.props; var userView = void 0; if (User) { userView = _react2.default.createElement( 'div', { style: { marginTop: 30 } }, _react2.default.createElement(_Object2.default, { data: { object: User } // mutate={updateUser} }) ); } return _react2.default.createElement( _Grid2.default, { container: true, spacing: 8 }, userView ); }; OrderItemPageView.prototype.renderDefaultView = function renderDefaultView() { var object = this.getObjectWithMutations(); var inEditMode = this.isInEditMode(); var id = object.id; var currentUser = this.context.user; var _ref5 = currentUser || {}; _objectDestructuringEmpty(_ref5); return _react2.default.createElement( _Grid2.default, { container: true }, _react2.default.createElement( _Grid2.default, { item: true, xs: 12 }, this.renderAdminBlock() ) ); }; OrderItemPageView.prototype.renderEditableView = function renderEditableView() { var object = this.getObjectWithMutations(); var inEditMode = this.isInEditMode(); var classes = this.props.classes; var currentUser = this.context.user; return _react2.default.createElement( _Grid2.default, { container: true }, _react2.default.createElement( _Grid2.default, { item: true, xs: 12 }, this.renderAdminBlock() ) ); }; return OrderItemPageView; }(_Editable2.default), _class.propTypes = _extends({}, _Editable2.default.propTypes, { classes: _propTypes2.default.object.isRequired }), _class.contextTypes = _extends({}, _Editable2.default.contextTypes, { loadApiData: _propTypes2.default.func.isRequired, setPageMeta: _propTypes2.default.func.isRequired }), _temp2); exports.default = (0, _materialUi.withStyles)(styles)(OrderItemPageView);