import React from "react" import { Link } from "react-router-dom" import { Row, Col, Modal, Form, Input, Select, Button, Table, Icon, Tooltip, Tag, Popconfirm, Spin, notification } from "antd" import Utils from "./utils" import * as cs from "./constants" const tagColors = { private: "orange", public: "green" } class CreateFormDef extends React.PureComponent { state = { confirmDirty: false, modalWaiting: false } // Handle create / edit form submission. handleSubmit = e => { e.preventDefault() this.props.form.validateFields((err, values) => { if (err) { return } this.setState({ modalWaiting: true }) if (this.props.formType === cs.FormCreate) { // Create a new list. this.props .modelRequest( cs.ModelLists, cs.Routes.CreateList, cs.MethodPost, values ) .then(() => { notification["success"]({ placement: cs.MsgPosition, message: "List created", description: `"${values["name"]}" created` }) this.props.fetchRecords() this.props.onClose() this.setState({ modalWaiting: false }) }) .catch(e => { notification["error"]({ message: "Error", description: e.message }) this.setState({ modalWaiting: false }) }) } else { // Edit a list. this.props .modelRequest(cs.ModelLists, cs.Routes.UpdateList, cs.MethodPut, { ...values, id: this.props.record.id }) .then(() => { notification["success"]({ placement: cs.MsgPosition, message: "List modified", description: `"${values["name"]}" modified` }) this.props.fetchRecords() this.props.onClose() this.setState({ modalWaiting: false }) }) .catch(e => { notification["error"]({ placement: cs.MsgPosition, message: "Error", description: e.message }) this.setState({ modalWaiting: false }) }) } }) } modalTitle(formType, record) { if (formType === cs.FormCreate) { return "Create a list" } return (
{record.type} {" "} {record.name}
ID {record.id} / UUID {record.uuid}
) } render() { const { formType, record, onClose } = this.props const { getFieldDecorator } = this.props.form const formItemLayout = { labelCol: { xs: { span: 16 }, sm: { span: 4 } }, wrapperCol: { xs: { span: 16 }, sm: { span: 18 } } } if (formType === null) { return null } return (