Client: Added clone button for filaments
This commit is contained in:
@@ -94,6 +94,7 @@ function App() {
|
|||||||
name: "filament",
|
name: "filament",
|
||||||
list: "/filament",
|
list: "/filament",
|
||||||
create: "/filament/create",
|
create: "/filament/create",
|
||||||
|
clone: "/filament/clone/:id",
|
||||||
edit: "/filament/edit/:id",
|
edit: "/filament/edit/:id",
|
||||||
show: "/filament/show/:id",
|
show: "/filament/show/:id",
|
||||||
meta: {
|
meta: {
|
||||||
@@ -159,7 +160,14 @@ function App() {
|
|||||||
</Route>
|
</Route>
|
||||||
<Route path="/filament">
|
<Route path="/filament">
|
||||||
<Route index element={<FilamentList />} />
|
<Route index element={<FilamentList />} />
|
||||||
<Route path="create" element={<FilamentCreate />} />
|
<Route
|
||||||
|
path="create"
|
||||||
|
element={<FilamentCreate mode="create" />}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
path="clone/:id"
|
||||||
|
element={<FilamentCreate mode="clone" />}
|
||||||
|
/>
|
||||||
<Route path="edit/:id" element={<FilamentEdit />} />
|
<Route path="edit/:id" element={<FilamentEdit />} />
|
||||||
<Route path="show/:id" element={<FilamentShow />} />
|
<Route path="show/:id" element={<FilamentShow />} />
|
||||||
</Route>
|
</Route>
|
||||||
|
|||||||
@@ -5,8 +5,19 @@ import { Form, Input, Select, InputNumber, ColorPicker } from "antd";
|
|||||||
import TextArea from "antd/es/input/TextArea";
|
import TextArea from "antd/es/input/TextArea";
|
||||||
import { IVendor } from "../vendors/model";
|
import { IVendor } from "../vendors/model";
|
||||||
|
|
||||||
export const FilamentCreate: React.FC<IResourceComponentsProps> = () => {
|
interface CreateOrCloneProps {
|
||||||
const { formProps, saveButtonProps } = useForm();
|
mode: "create" | "clone";
|
||||||
|
}
|
||||||
|
|
||||||
|
export const FilamentCreate: React.FC<
|
||||||
|
IResourceComponentsProps & CreateOrCloneProps
|
||||||
|
> = (props) => {
|
||||||
|
const { formProps, saveButtonProps, formLoading } = useForm();
|
||||||
|
|
||||||
|
if (props.mode === "clone" && formProps.initialValues) {
|
||||||
|
// Fix the filament_id
|
||||||
|
formProps.initialValues.vendor_id = formProps.initialValues.vendor.id;
|
||||||
|
}
|
||||||
|
|
||||||
const { selectProps } = useSelect<IVendor>({
|
const { selectProps } = useSelect<IVendor>({
|
||||||
resource: "vendor",
|
resource: "vendor",
|
||||||
@@ -14,7 +25,11 @@ export const FilamentCreate: React.FC<IResourceComponentsProps> = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Create saveButtonProps={saveButtonProps}>
|
<Create
|
||||||
|
title={props.mode === "create" ? "Create Filament" : "Clone Filament"}
|
||||||
|
isLoading={formLoading}
|
||||||
|
saveButtonProps={saveButtonProps}
|
||||||
|
>
|
||||||
<Form {...formProps} layout="vertical">
|
<Form {...formProps} layout="vertical">
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label="Name"
|
label="Name"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import {
|
|||||||
EditButton,
|
EditButton,
|
||||||
ShowButton,
|
ShowButton,
|
||||||
DateField,
|
DateField,
|
||||||
|
CloneButton,
|
||||||
} from "@refinedev/antd";
|
} from "@refinedev/antd";
|
||||||
import { Table, Space } from "antd";
|
import { Table, Space } from "antd";
|
||||||
import { NumberFieldUnit } from "../../components/numberField";
|
import { NumberFieldUnit } from "../../components/numberField";
|
||||||
@@ -107,8 +108,24 @@ export const FilamentList: React.FC<IResourceComponentsProps> = () => {
|
|||||||
dataIndex="actions"
|
dataIndex="actions"
|
||||||
render={(_, record: BaseRecord) => (
|
render={(_, record: BaseRecord) => (
|
||||||
<Space>
|
<Space>
|
||||||
<EditButton hideText size="small" recordItemId={record.id} />
|
<EditButton
|
||||||
<ShowButton hideText size="small" recordItemId={record.id} />
|
hideText
|
||||||
|
title="Edit"
|
||||||
|
size="small"
|
||||||
|
recordItemId={record.id}
|
||||||
|
/>
|
||||||
|
<ShowButton
|
||||||
|
hideText
|
||||||
|
title="Show"
|
||||||
|
size="small"
|
||||||
|
recordItemId={record.id}
|
||||||
|
/>
|
||||||
|
<CloneButton
|
||||||
|
hideText
|
||||||
|
title="Clone"
|
||||||
|
size="small"
|
||||||
|
recordItemId={record.id}
|
||||||
|
/>
|
||||||
</Space>
|
</Space>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ interface CreateOrCloneProps {
|
|||||||
|
|
||||||
export const SpoolCreate: React.FC<
|
export const SpoolCreate: React.FC<
|
||||||
IResourceComponentsProps & CreateOrCloneProps
|
IResourceComponentsProps & CreateOrCloneProps
|
||||||
> = (props: IResourceComponentsProps & CreateOrCloneProps) => {
|
> = (props) => {
|
||||||
const { formProps, saveButtonProps, formLoading } = useForm();
|
const { formProps, saveButtonProps, formLoading } = useForm();
|
||||||
|
|
||||||
if (props.mode === "clone" && formProps.initialValues) {
|
if (props.mode === "clone" && formProps.initialValues) {
|
||||||
|
|||||||
@@ -99,9 +99,24 @@ export const SpoolList: React.FC<IResourceComponentsProps> = () => {
|
|||||||
dataIndex="actions"
|
dataIndex="actions"
|
||||||
render={(_, record: BaseRecord) => (
|
render={(_, record: BaseRecord) => (
|
||||||
<Space>
|
<Space>
|
||||||
<EditButton hideText size="small" recordItemId={record.id} />
|
<EditButton
|
||||||
<ShowButton hideText size="small" recordItemId={record.id} />
|
hideText
|
||||||
<CloneButton hideText size="small" recordItemId={record.id} />
|
title="Edit"
|
||||||
|
size="small"
|
||||||
|
recordItemId={record.id}
|
||||||
|
/>
|
||||||
|
<ShowButton
|
||||||
|
hideText
|
||||||
|
title="Show"
|
||||||
|
size="small"
|
||||||
|
recordItemId={record.id}
|
||||||
|
/>
|
||||||
|
<CloneButton
|
||||||
|
hideText
|
||||||
|
title="Clone"
|
||||||
|
size="small"
|
||||||
|
recordItemId={record.id}
|
||||||
|
/>
|
||||||
</Space>
|
</Space>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user