@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
JavaScript
'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);