Working on vendors favorite JSON form - issues with additional fields + rehydrating data
This commit is contained in:
@@ -2,10 +2,12 @@ import React from "react";
|
|||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import Alert from "./alert.component";
|
import Alert from "./alert.component";
|
||||||
import { MockedProvider } from "@apollo/react-testing";
|
import { MockedProvider } from "@apollo/react-testing";
|
||||||
import { shallow } from "enzyme";
|
import { shallow, mount } from "enzyme";
|
||||||
|
|
||||||
const div = document.createElement("div");
|
const div = document.createElement("div");
|
||||||
|
|
||||||
it("renders without crashing", () => {
|
it("renders without crashing", () => {
|
||||||
shallow(<Alert type="error" />);
|
const wrapper = mount(<Alert type="error" message="Test Error" />);
|
||||||
|
console.log("wrapper", wrapper);
|
||||||
|
// expect(wrapper.children()).to.have.lengthOf(1);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { shallow } from "enzyme";
|
||||||
|
import AllocationsAssignmentContainer from "./allocations-assignment.container";
|
||||||
|
|
||||||
|
describe("LineAllocationsContainer", () => {
|
||||||
|
let mockRefetch;
|
||||||
|
let jobLineId;
|
||||||
|
let wrapper;
|
||||||
|
beforeEach(() => {
|
||||||
|
mockRefetch = jest.fn;
|
||||||
|
jobLineId = "b76e44a8-943f-4c67-b8f4-38d14db8b4b8";
|
||||||
|
const mockProps = {
|
||||||
|
refetch: mockRefetch,
|
||||||
|
jobLineId,
|
||||||
|
hours: 5
|
||||||
|
};
|
||||||
|
|
||||||
|
shallow(<AllocationsAssignmentContainer {...mockProps} />);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,8 +1,19 @@
|
|||||||
import { Button, Form, Input, InputNumber, Switch } from "antd";
|
import {
|
||||||
|
Button,
|
||||||
|
Checkbox,
|
||||||
|
Col,
|
||||||
|
Form,
|
||||||
|
Icon,
|
||||||
|
Input,
|
||||||
|
InputNumber,
|
||||||
|
Row
|
||||||
|
} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import FormItemEmail from "../form-items-formatted/email-form-item.component";
|
import FormItemEmail from "../form-items-formatted/email-form-item.component";
|
||||||
import ResetForm from "../form-items-formatted/reset-form-item.component";
|
import ResetForm from "../form-items-formatted/reset-form-item.component";
|
||||||
|
let id = 0;
|
||||||
|
|
||||||
export default function VendorsFormComponent({ form, vendor, handleDelete }) {
|
export default function VendorsFormComponent({ form, vendor, handleDelete }) {
|
||||||
const {
|
const {
|
||||||
getFieldDecorator,
|
getFieldDecorator,
|
||||||
@@ -11,61 +22,131 @@ export default function VendorsFormComponent({ form, vendor, handleDelete }) {
|
|||||||
resetFields
|
resetFields
|
||||||
} = form;
|
} = form;
|
||||||
|
|
||||||
|
getFieldDecorator("keys", {
|
||||||
|
initialValue: Array.isArray(vendor.favorite) ? vendor.favorite : []
|
||||||
|
});
|
||||||
|
|
||||||
|
const remove = k => {
|
||||||
|
// can use data-binding to get
|
||||||
|
const keys = form.getFieldValue("keys");
|
||||||
|
console.log("keys", keys);
|
||||||
|
// We need at least one passenger
|
||||||
|
if (keys.length === 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// can use data-binding to set
|
||||||
|
form.setFieldsValue({
|
||||||
|
keys: keys.filter(key => key !== k)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const add = props => {
|
||||||
|
console.log("props", props);
|
||||||
|
// can use data-binding to get
|
||||||
|
const keys = form.getFieldValue("keys");
|
||||||
|
console.log("keys", keys);
|
||||||
|
const nextKeys = keys.concat(id++);
|
||||||
|
// can use data-binding to set
|
||||||
|
// important! notify form to detect changes
|
||||||
|
form.setFieldsValue({
|
||||||
|
keys: nextKeys
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{isFieldsTouched() ? <ResetForm resetFields={resetFields} /> : null}
|
{isFieldsTouched() ? <ResetForm resetFields={resetFields} /> : null}
|
||||||
<Button htmlType='submit' type='primary'>
|
<Button htmlType="submit" type="primary">
|
||||||
{t("general.actions.save")}
|
{t("general.actions.save")}
|
||||||
</Button>
|
</Button>
|
||||||
<Button type='danger' onClick={handleDelete}>
|
<Button type="danger" onClick={handleDelete}>
|
||||||
{t("general.actions.delete")}
|
{t("general.actions.delete")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
{getFieldValue("keys").map((k, index) => (
|
||||||
|
<Form.Item required={false} key={k}>
|
||||||
|
{getFieldDecorator(`favorite[${k}].make`, {
|
||||||
|
validateTrigger: ["onChange", "onBlur"]
|
||||||
|
})(
|
||||||
|
<Input
|
||||||
|
placeholder="passenger name"
|
||||||
|
style={{ width: "60%", marginRight: 8 }}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{getFieldValue("keys").length > 1 ? (
|
||||||
|
<Icon
|
||||||
|
className="dynamic-delete-button"
|
||||||
|
type="minus-circle-o"
|
||||||
|
onClick={() => remove(k)}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
<Form.Item label="Group">
|
||||||
|
{getFieldDecorator(`favorite[${k}].type`, {
|
||||||
|
initialValue: null
|
||||||
|
})(
|
||||||
|
<Checkbox.Group style={{ width: "100%" }}>
|
||||||
|
<Row>
|
||||||
|
<Col span={8}>
|
||||||
|
<Checkbox value="OEM">OEM</Checkbox>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<Checkbox value="LKQ">LKQ</Checkbox>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<Checkbox value="AM">AM</Checkbox>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</Checkbox.Group>
|
||||||
|
)}
|
||||||
|
</Form.Item>
|
||||||
|
</Form.Item>
|
||||||
|
))}
|
||||||
|
<Form.Item label={t("vendors.fields.favorite")}>
|
||||||
|
<Button type="dashed" onClick={add} style={{ width: "60%" }}>
|
||||||
|
<Icon type="plus" /> Add field
|
||||||
|
</Button>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
<Form.Item label={t("vendors.fields.zip")}>
|
<Form.Item label={t("vendors.fields.zip")}>
|
||||||
{getFieldDecorator("zip", {
|
{getFieldDecorator("zip", {
|
||||||
initialValue: vendor.zip
|
initialValue: vendor.zip
|
||||||
})(<Input name='zip' />)}
|
})(<Input name="zip" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.terms")}>
|
<Form.Item label={t("vendors.fields.terms")}>
|
||||||
{getFieldDecorator("terms", {
|
{getFieldDecorator("terms", {
|
||||||
initialValue: vendor.terms
|
initialValue: vendor.terms
|
||||||
})(<Input name='terms' />)}
|
})(<Input name="terms" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.taxid")}>
|
<Form.Item label={t("vendors.fields.taxid")}>
|
||||||
{getFieldDecorator("taxid", {
|
{getFieldDecorator("taxid", {
|
||||||
initialValue: vendor.taxid
|
initialValue: vendor.taxid
|
||||||
})(<Input name='taxid' />)}
|
})(<Input name="taxid" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.street1")}>
|
<Form.Item label={t("vendors.fields.street1")}>
|
||||||
{getFieldDecorator("street1", {
|
{getFieldDecorator("street1", {
|
||||||
initialValue: vendor.street1
|
initialValue: vendor.street1
|
||||||
})(<Input name='street1' />)}
|
})(<Input name="street1" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.street2")}>
|
<Form.Item label={t("vendors.fields.street2")}>
|
||||||
{getFieldDecorator("street2", {
|
{getFieldDecorator("street2", {
|
||||||
initialValue: vendor.street2
|
initialValue: vendor.street2
|
||||||
})(<Input name='street2' />)}
|
})(<Input name="street2" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.state")}>
|
<Form.Item label={t("vendors.fields.state")}>
|
||||||
{getFieldDecorator("state", {
|
{getFieldDecorator("state", {
|
||||||
initialValue: vendor.state
|
initialValue: vendor.state
|
||||||
})(<Input name='state' />)}
|
})(<Input name="state" />)}
|
||||||
</Form.Item>{" "}
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.prompt_discount")}>
|
<Form.Item label={t("vendors.fields.prompt_discount")}>
|
||||||
{getFieldDecorator("prompt_discount", {
|
{getFieldDecorator("prompt_discount", {
|
||||||
initialValue: vendor.prompt_discount
|
initialValue: vendor.prompt_discount
|
||||||
})(<InputNumber name='prompt_discount' />)}
|
})(<InputNumber name="prompt_discount" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.name")}>
|
<Form.Item label={t("vendors.fields.name")}>
|
||||||
{getFieldDecorator("name", {
|
{getFieldDecorator("name", {
|
||||||
initialValue: vendor.name
|
initialValue: vendor.name
|
||||||
})(<Input name='name' />)}
|
})(<Input name="name" />)}
|
||||||
</Form.Item>
|
|
||||||
<Form.Item label={t("vendors.fields.favorite")}>
|
|
||||||
{getFieldDecorator("favorite", {
|
|
||||||
initialValue: vendor.favorite,
|
|
||||||
valuePropName: "checked"
|
|
||||||
})(<Switch name='favorite' />)}
|
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.email")}>
|
<Form.Item label={t("vendors.fields.email")}>
|
||||||
{getFieldDecorator("email", {
|
{getFieldDecorator("email", {
|
||||||
@@ -76,38 +157,38 @@ export default function VendorsFormComponent({ form, vendor, handleDelete }) {
|
|||||||
message: t("general.validation.invalidemail")
|
message: t("general.validation.invalidemail")
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})(<FormItemEmail name='email' email={getFieldValue("email")} />)}
|
})(<FormItemEmail name="email" email={getFieldValue("email")} />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.due_date")}>
|
<Form.Item label={t("vendors.fields.due_date")}>
|
||||||
{getFieldDecorator("due_date", {
|
{getFieldDecorator("due_date", {
|
||||||
initialValue: vendor.due_date
|
initialValue: vendor.due_date
|
||||||
})(<InputNumber name='due_date' />)}
|
})(<InputNumber name="due_date" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.display_name")}>
|
<Form.Item label={t("vendors.fields.display_name")}>
|
||||||
{getFieldDecorator("display_name", {
|
{getFieldDecorator("display_name", {
|
||||||
initialValue: vendor.display_name
|
initialValue: vendor.display_name
|
||||||
})(<Input name='display_name' />)}
|
})(<Input name="display_name" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.discount")}>
|
<Form.Item label={t("vendors.fields.discount")}>
|
||||||
{getFieldDecorator("discount", {
|
{getFieldDecorator("discount", {
|
||||||
initialValue: vendor.discount
|
initialValue: vendor.discount
|
||||||
})(<InputNumber name='discount' />)}
|
})(<InputNumber name="discount" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.country")}>
|
<Form.Item label={t("vendors.fields.country")}>
|
||||||
{getFieldDecorator("country", {
|
{getFieldDecorator("country", {
|
||||||
initialValue: vendor.country
|
initialValue: vendor.country
|
||||||
})(<Input name='country' />)}
|
})(<Input name="country" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.cost_center")}>
|
<Form.Item label={t("vendors.fields.cost_center")}>
|
||||||
{getFieldDecorator("cost_center", {
|
{getFieldDecorator("cost_center", {
|
||||||
initialValue: vendor.cost_center,
|
initialValue: vendor.cost_center,
|
||||||
rules: [{ required: true, message: t("general.validation.required") }]
|
rules: [{ required: true, message: t("general.validation.required") }]
|
||||||
})(<Input name='cost_center' />)}
|
})(<Input name="cost_center" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label={t("vendors.fields.city")}>
|
<Form.Item label={t("vendors.fields.city")}>
|
||||||
{getFieldDecorator("city", {
|
{getFieldDecorator("city", {
|
||||||
initialValue: vendor.city
|
initialValue: vendor.city
|
||||||
})(<Input name='city' />)}
|
})(<Input name="city" />)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,29 +1,36 @@
|
|||||||
|
import { Form, notification } from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Form } from "antd";
|
import { useMutation, useQuery } from "react-apollo";
|
||||||
import VendorsFormComponent from "./vendors-form.component";
|
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { notification } from "antd";
|
|
||||||
import {
|
|
||||||
UPDATE_VENDOR,
|
|
||||||
INSERT_NEW_VENDOR,
|
|
||||||
DELETE_VENDOR
|
|
||||||
} from "../../graphql/vendors.queries";
|
|
||||||
import { useMutation } from "react-apollo";
|
|
||||||
|
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import {
|
||||||
|
DELETE_VENDOR,
|
||||||
|
INSERT_NEW_VENDOR,
|
||||||
|
UPDATE_VENDOR,
|
||||||
|
QUERY_VENDOR_BY_ID
|
||||||
|
} from "../../graphql/vendors.queries";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
|
import VendorsFormComponent from "./vendors-form.component";
|
||||||
|
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||||
|
import AlertComponent from "../alert/alert.component";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop
|
bodyshop: selectBodyshop
|
||||||
});
|
});
|
||||||
|
|
||||||
function VendorsFormContainer({ form, vendor, refetch, bodyshop }) {
|
function VendorsFormContainer({ form, vendorId, refetch, bodyshop }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const { loading, error, data } = useQuery(QUERY_VENDOR_BY_ID, {
|
||||||
|
variables: { id: vendorId },
|
||||||
|
fetchPolicy: "network-only",
|
||||||
|
skip: !vendorId
|
||||||
|
});
|
||||||
const [updateVendor] = useMutation(UPDATE_VENDOR);
|
const [updateVendor] = useMutation(UPDATE_VENDOR);
|
||||||
const [insertvendor] = useMutation(INSERT_NEW_VENDOR);
|
const [insertvendor] = useMutation(INSERT_NEW_VENDOR);
|
||||||
const [deleteVendor] = useMutation(DELETE_VENDOR);
|
const [deleteVendor] = useMutation(DELETE_VENDOR);
|
||||||
const handleDelete = () => {
|
const handleDelete = () => {
|
||||||
deleteVendor({ variables: { id: vendor.id } })
|
deleteVendor({ variables: { id: vendorId } })
|
||||||
.then(r => {
|
.then(r => {
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("vendors.successes.deleted")
|
message: t("vendors.successes.deleted")
|
||||||
@@ -48,10 +55,12 @@ function VendorsFormContainer({ form, vendor, refetch, bodyshop }) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!err) {
|
if (!err) {
|
||||||
if (vendor.id) {
|
console.log("Received values of form: ", values);
|
||||||
|
delete values.keys;
|
||||||
|
if (vendorId) {
|
||||||
//It's a vendor to update.
|
//It's a vendor to update.
|
||||||
updateVendor({
|
updateVendor({
|
||||||
variables: { id: vendor.id, vendor: values }
|
variables: { id: vendorId, vendor: values }
|
||||||
})
|
})
|
||||||
.then(r => {
|
.then(r => {
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
@@ -87,20 +96,20 @@ function VendorsFormContainer({ form, vendor, refetch, bodyshop }) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (loading) return <LoadingSpinner />;
|
||||||
|
if (error) return <AlertComponent message={error.message} type="error" />;
|
||||||
return (
|
return (
|
||||||
<div>
|
<Form onSubmit={handleSubmit} autoComplete="new-password">
|
||||||
<Form onSubmit={handleSubmit} autoComplete='new-password'>
|
{data ? (
|
||||||
{vendor ? (
|
<VendorsFormComponent
|
||||||
<VendorsFormComponent
|
form={form}
|
||||||
form={form}
|
vendor={data ? data.vendors_by_pk : null}
|
||||||
vendor={vendor}
|
handleDelete={handleDelete}
|
||||||
handleDelete={handleDelete}
|
/>
|
||||||
/>
|
) : (
|
||||||
) : (
|
t("vendors.labels.noneselected")
|
||||||
t("vendors.labels.noneselected")
|
)}
|
||||||
)}
|
</Form>
|
||||||
</Form>
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
export default connect(
|
export default connect(
|
||||||
|
|||||||
@@ -26,11 +26,6 @@ export default function VendorsListComponent({
|
|||||||
sorter: (a, b) => alphaSort(a.name, b.name),
|
sorter: (a, b) => alphaSort(a.name, b.name),
|
||||||
sortOrder: state.sortedInfo.columnKey === "name" && state.sortedInfo.order
|
sortOrder: state.sortedInfo.columnKey === "name" && state.sortedInfo.order
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: t("vendors.fields.favorite"),
|
|
||||||
dataIndex: "favorite",
|
|
||||||
key: "favorite"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: t("vendors.fields.cost_center"),
|
title: t("vendors.fields.cost_center"),
|
||||||
dataIndex: "cost_center",
|
dataIndex: "cost_center",
|
||||||
@@ -81,10 +76,10 @@ export default function VendorsListComponent({
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
size='small'
|
size="small"
|
||||||
pagination={{ position: "top" }}
|
pagination={{ position: "top" }}
|
||||||
columns={columns.map(item => ({ ...item }))}
|
columns={columns.map(item => ({ ...item }))}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
dataSource={vendors}
|
dataSource={vendors}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ const errorLink = onError(
|
|||||||
// });
|
// });
|
||||||
// console.log("forward", forward);
|
// console.log("forward", forward);
|
||||||
// console.log("operation", operation);
|
// console.log("operation", operation);
|
||||||
return forward(operation).subscribe();
|
return forward(operation);
|
||||||
|
|
||||||
// return new Observable(observer => {
|
// return new Observable(observer => {
|
||||||
// const subscriber = {
|
// const subscriber = {
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ export const QUERY_ALL_VENDORS = gql`
|
|||||||
vendors {
|
vendors {
|
||||||
name
|
name
|
||||||
id
|
id
|
||||||
favorite
|
|
||||||
street1
|
street1
|
||||||
cost_center
|
cost_center
|
||||||
city
|
city
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { Typography } from "antd";
|
import { Typography, Layout } from "antd";
|
||||||
|
|
||||||
import HeaderContainer from "../../components/header/header.container";
|
import HeaderContainer from "../../components/header/header.container";
|
||||||
|
|
||||||
export default function LandingPage() {
|
export default function LandingPage() {
|
||||||
|
const { Header, Content } = Layout;
|
||||||
return (
|
return (
|
||||||
<div>
|
<Layout style={{ minHeight: "100vh" }}>
|
||||||
<HeaderContainer landingHeader />
|
<Header>
|
||||||
<Typography.Title>Welcome to bodyshop.app.</Typography.Title>
|
<HeaderContainer landingHeader />
|
||||||
</div>
|
</Header>
|
||||||
|
|
||||||
|
<Content className="content-container" style={{ padding: "0em 4em 4em" }}>
|
||||||
|
<Typography.Title>Welcome to bodyshop.app.</Typography.Title>
|
||||||
|
</Content>
|
||||||
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ export default function ShopVendorPageComponent({ selectedVendorState }) {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<VendorsListContainer selectedVendorState={selectedVendorState} />
|
<VendorsListContainer selectedVendorState={selectedVendorState} />
|
||||||
<VendorsFormContainer vendor={selectedVendorState[0]} />
|
<VendorsFormContainer
|
||||||
|
vendorId={selectedVendorState[0] ? selectedVendorState[0].id : null}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ALTER COLUMN "favorite" TYPE boolean;
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ALTER COLUMN "favorite" SET NOT NULL;
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
sql: COMMENT ON COLUMN "public"."vendors"."favorite" IS E'null'
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ALTER COLUMN "favorite" TYPE bool;
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ALTER COLUMN "favorite" DROP NOT NULL;
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
sql: COMMENT ON COLUMN "public"."vendors"."favorite" IS E''
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- id
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- name
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- city
|
||||||
|
- state
|
||||||
|
- zip
|
||||||
|
- country
|
||||||
|
- email
|
||||||
|
- taxid
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- due_date
|
||||||
|
- terms
|
||||||
|
- display_name
|
||||||
|
- cost_center
|
||||||
|
- favorite
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- favorite
|
||||||
|
- due_date
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- favorite
|
||||||
|
- due_date
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ADD COLUMN "favorite" bool
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ALTER COLUMN "favorite" DROP NOT NULL
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ALTER COLUMN "favorite" SET DEFAULT false
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" DROP COLUMN "favorite" CASCADE
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" DROP COLUMN "favorite";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
- args:
|
||||||
|
sql: ALTER TABLE "public"."vendors" ADD COLUMN "favorite" jsonb NULL;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- due_date
|
||||||
|
- favorite
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- due_date
|
||||||
|
- favorite
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- due_date
|
||||||
|
- favorite
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- due_date
|
||||||
|
- favorite
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- due_date
|
||||||
|
- favorite
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- bodyshopid
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- discount
|
||||||
|
- display_name
|
||||||
|
- due_date
|
||||||
|
- email
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- prompt_discount
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- updated_at
|
||||||
|
- zip
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- due_date
|
||||||
|
- favorite
|
||||||
|
- discount
|
||||||
|
- prompt_discount
|
||||||
|
- city
|
||||||
|
- cost_center
|
||||||
|
- country
|
||||||
|
- display_name
|
||||||
|
- email
|
||||||
|
- name
|
||||||
|
- state
|
||||||
|
- street1
|
||||||
|
- street2
|
||||||
|
- taxid
|
||||||
|
- terms
|
||||||
|
- zip
|
||||||
|
- created_at
|
||||||
|
- updated_at
|
||||||
|
- bodyshopid
|
||||||
|
- id
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: vendors
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
Reference in New Issue
Block a user