UNPKG

@rnga/orders

Version:

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

268 lines (197 loc) 4.79 kB
import React from 'react' import PropTypes from 'prop-types' import { withStyles } from 'material-ui/styles'; import Pagination from 'Pagination'; // import { // styles, // TableView, // } from '../../DataList/View/Table'; import { styles, TableView, } from 'apollo-cms/src/DataView/List/Table'; import { Link } from 'react-router-dom'; import { Grid, TextField, Checkbox, Button } from 'material-ui'; import Import from "./Import"; import UserLink from "ui/User/Link"; import moment from "moment"; import OrderNumber from "ui/OrderNumber"; export class OrdersPageView extends TableView { static propTypes = { ...TableView.propTypes, limit: PropTypes.number, }; static defaultProps = { ...TableView.defaultProps, // listName: "ordersConnection", title: "Заказы", columnData: [ { id: 'number', numeric: false, disablePadding: true, label: 'Номер заказа', renderer: (value, record) => { const { id, } = record; return value ? <Link to={`/orders/${id}`} > <OrderNumber value={value} displayType="text" /> </Link> : null; } }, { id: 'User', numeric: false, disablePadding: true, label: 'Заказчик', renderer: (value, record) => { let content; if (value) { // const { // fullname, // } = User; content = <UserLink user={value} />; } return content; } }, { id: 'date', numeric: false, disablePadding: true, label: 'Дата (по договору)', renderer: (value, record) => { return value && moment(value).format('DD.MM.YYYY') || null; } }, // { id: 'calories', numeric: false, disablePadding: false, label: 'Емейл' }, // { id: 'fat', numeric: false, disablePadding: false, label: 'Телефон' }, // { id: 'carbs', numeric: true, disablePadding: false, label: 'Carbs (g)' }, // { id: 'sdfsdfsdf', numeric: true, disablePadding: false, label: 'wef wef (g)' }, // { id: 'protein', numeric: true, disablePadding: false, label: 'Protein (g)' }, ], // where:{ // name_contains: "немо" // }, }; getFilters() { const { getFilters, setFilters, cleanFilters, } = this.props; const { number, } = getFilters(); const filters = <Grid container spacing={8} alignItems="flex-end" > <Grid item > <TextField label="Поиск" style={{ marginLeft: 10, width: 200, }} name="number" value={number || ""} onChange={event => { const { value, } = event.target; setFilters({ number: value, }); }} /> </Grid> {/* <Grid item > <Grid container alignItems="center" > <Grid item > <Checkbox checked={advantages_not === null ? true : false} bool="true" onChange={(event, checked) => { // const { // value, // } = event.target; setFilters({ advantages_not: checked ? null : undefined, }); }} /> </Grid> <Grid item > С преимуществами </Grid> </Grid> </Grid> */} <Grid item > <Button onClick={event => cleanFilters({ // where: null, // extraWhere: null, })} > Сброс </Button> </Grid> <Grid item xs > </Grid> <Grid item > <Import /> </Grid> </Grid>; return filters; } render() { const { first, page, first: limit, data, } = this.props; const { objectsConnection, } = data || {}; const { aggregate, } = objectsConnection || {}; const { count, } = aggregate || {}; const content = super.render(); return <div> {content} {count && limit ? <Pagination limit={limit} total={count} page={page || 1} /> : null } </div>; } } export default withStyles(styles)(OrdersPageView);