diff --git a/gui/rpk-gui/src/pages/firm/ContractRoutes.tsx b/gui/rpk-gui/src/pages/firm/ContractRoutes.tsx new file mode 100644 index 0000000..0573f1b --- /dev/null +++ b/gui/rpk-gui/src/pages/firm/ContractRoutes.tsx @@ -0,0 +1,39 @@ +import { Route, Routes } from "react-router"; +import React, { useContext } from "react"; +import { FirmContext } from "../../contexts/FirmContext"; +import List from "./base-page/List"; +import Edit from "./base-page/Edit"; +import New from "./base-page/New"; + +type Contract = { + id: string, + label: string +} + +export const ContractRoutes = () => { + return ( + + } /> + } /> + } /> + + ); +} + +const ListContract = () => { + const { currentFirm } = useContext(FirmContext); + const columns = [ + { field: "label", headerName: "Label", flex: 1 }, + ]; + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/contracts`} columns={columns} /> +} + +const EditContract = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/contracts`} schemaName={"ContractUpdate"} /> +} + +const CreateContract = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/contracts`} schemaName={"ContractCreate"} /> +} diff --git a/gui/rpk-gui/src/pages/firm/DraftRoutes.tsx b/gui/rpk-gui/src/pages/firm/DraftRoutes.tsx new file mode 100644 index 0000000..7fd0ed2 --- /dev/null +++ b/gui/rpk-gui/src/pages/firm/DraftRoutes.tsx @@ -0,0 +1,39 @@ +import { Route, Routes } from "react-router"; +import React, { useContext } from "react"; +import { FirmContext } from "../../contexts/FirmContext"; +import List from "./base-page/List"; +import Edit from "./base-page/Edit"; +import New from "./base-page/New"; + +type Draft = { + id: string, + label: string +} + +export const DraftRoutes = () => { + return ( + + } /> + } /> + } /> + + ); +} + +const ListDraft = () => { + const { currentFirm } = useContext(FirmContext); + const columns = [ + { field: "label", headerName: "Label", flex: 1 }, + ]; + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/contracts/drafts`} columns={columns} /> +} + +const EditDraft = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/contracts/drafts`} schemaName={"ContractDraftUpdate"} /> +} + +const CreateDraft = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/contracts/drafts`} schemaName={"ContractDraftCreate"} /> +} diff --git a/gui/rpk-gui/src/pages/firm/EntityRoutes.tsx b/gui/rpk-gui/src/pages/firm/EntityRoutes.tsx index 09b47ac..5303ded 100644 --- a/gui/rpk-gui/src/pages/firm/EntityRoutes.tsx +++ b/gui/rpk-gui/src/pages/firm/EntityRoutes.tsx @@ -2,6 +2,8 @@ import { Route, Routes } from "react-router"; import React, { useContext } from "react"; import { FirmContext } from "../../contexts/FirmContext"; import List from "./base-page/List"; +import Edit from "./base-page/Edit"; +import New from "./base-page/New"; type Entity = { id: string, @@ -14,6 +16,8 @@ export const EntityRoutes = () => { return ( } /> + } /> + } /> ); } @@ -24,5 +28,15 @@ const ListEntity = () => { { field: "label", headerName: "Label", flex: 1 }, { field: "entity_data", headerName: "Type", flex: 1, valueFormatter: ({ type }: {type: string}) => type } ]; - return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/entities/`} columns={columns} /> -} \ No newline at end of file + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/entities`} columns={columns} /> +} + +const EditEntity = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/entities`} schemaName={"EntityUpdate"} /> +} + +const CreateEntity = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/entities`} schemaName={"EntityCreate"} /> +} diff --git a/gui/rpk-gui/src/pages/firm/ProvisionRoutes.tsx b/gui/rpk-gui/src/pages/firm/ProvisionRoutes.tsx new file mode 100644 index 0000000..eb8f84f --- /dev/null +++ b/gui/rpk-gui/src/pages/firm/ProvisionRoutes.tsx @@ -0,0 +1,40 @@ +import { Route, Routes } from "react-router"; +import React, { useContext } from "react"; +import { FirmContext } from "../../contexts/FirmContext"; +import List from "./base-page/List"; +import Edit from "./base-page/Edit"; +import New from "./base-page/New"; + +type Provision = { + id: string, + label: string, +} + +export const ProvisionRoutes = () => { + + return ( + + } /> + } /> + } /> + + ); +} + +const ListProvision = () => { + const { currentFirm } = useContext(FirmContext); + const columns = [ + { field: "label", headerName: "Label", flex: 1 }, + ]; + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/templates/provisions`} columns={columns} /> +} + +const EditProvision = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/templates/provisions`} schemaName={"ProvisionTemplateUpdate"} /> +} + +const CreateProvision = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/templates/provisions`} schemaName={"ProvisionTemplateCreate"} /> +} diff --git a/gui/rpk-gui/src/pages/firm/TemplateRoutes.tsx b/gui/rpk-gui/src/pages/firm/TemplateRoutes.tsx new file mode 100644 index 0000000..26b1570 --- /dev/null +++ b/gui/rpk-gui/src/pages/firm/TemplateRoutes.tsx @@ -0,0 +1,39 @@ +import { Route, Routes } from "react-router"; +import React, { useContext } from "react"; +import { FirmContext } from "../../contexts/FirmContext"; +import List from "./base-page/List"; +import Edit from "./base-page/Edit"; +import New from "./base-page/New"; + +type Template = { + id: string, + label: string, +} + +export const TemplateRoutes = () => { + return ( + + } /> + } /> + } /> + + ); +} + +const ListTemplate = () => { + const { currentFirm } = useContext(FirmContext); + const columns = [ + { field: "label", headerName: "Label", flex: 1 }, + ]; + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/templates/contracts`} columns={columns} /> +} + +const EditTemplate = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/templates/contracts`} schemaName={"ContractTemplateUpdate"} /> +} + +const CreateTemplate = () => { + const { currentFirm } = useContext(FirmContext); + return resource={`firm/${currentFirm.instance}/${currentFirm.firm}/templates/contracts`} schemaName={"ContractTemplateCreate"} /> +} diff --git a/gui/rpk-gui/src/pages/firm/base-page/Card.tsx b/gui/rpk-gui/src/pages/firm/base-page/Edit.tsx similarity index 80% rename from gui/rpk-gui/src/pages/firm/base-page/Card.tsx rename to gui/rpk-gui/src/pages/firm/base-page/Edit.tsx index c0d2c01..a1bfb0b 100644 --- a/gui/rpk-gui/src/pages/firm/base-page/Card.tsx +++ b/gui/rpk-gui/src/pages/firm/base-page/Edit.tsx @@ -2,16 +2,18 @@ import { CrudForm } from "../../../lib/crud/components/crud-form"; import { UiSchema } from "@rjsf/utils"; import { useParams } from "react-router"; -type CardProps = { +type EditProps = { resource: string, schemaName: string, uiSchema?: UiSchema, } -const Card = (props: CardProps) => { +const Edit = (props: EditProps) => { const { schemaName, resource, uiSchema } = props; const { record_id } = useParams(); + console.log(record_id); + return ( { ) } -export default Card; +export default Edit; diff --git a/gui/rpk-gui/src/pages/firm/base-page/List.tsx b/gui/rpk-gui/src/pages/firm/base-page/List.tsx index cd34c97..957a868 100644 --- a/gui/rpk-gui/src/pages/firm/base-page/List.tsx +++ b/gui/rpk-gui/src/pages/firm/base-page/List.tsx @@ -1,7 +1,9 @@ import { UiSchema } from "@rjsf/utils"; import { List as RefineList, useDataGrid } from "@refinedev/mui"; import { DataGrid, GridColDef, GridValidRowModel } from "@mui/x-data-grid"; +import { Link, useNavigate } from "react-router" import React from "react"; +import { Button } from "@mui/material"; type ListProps = { resource: string, @@ -13,16 +15,26 @@ type ListProps = { const List = (props: ListProps) => { const { schemaName, resource, uiSchema, columns } = props; const { dataGridProps } = useDataGrid({resource: resource}); + const navigate = useNavigate(); const cols = React.useMemo[]>( () => columns, [], ); + + const handleRowClick = (params: any, event: any) => { + navigate(`edit/${params.id}`) + } + return ( - - + + + + + ) } diff --git a/gui/rpk-gui/src/pages/firm/base-page/New.tsx b/gui/rpk-gui/src/pages/firm/base-page/New.tsx index 37de6d3..1c855c4 100644 --- a/gui/rpk-gui/src/pages/firm/base-page/New.tsx +++ b/gui/rpk-gui/src/pages/firm/base-page/New.tsx @@ -7,7 +7,7 @@ type NewProps = { uiSchema?: UiSchema, } -const New = (props: NewProps) => { +const New = (props: NewProps) => { const { schemaName, resource, uiSchema } = props; return ( diff --git a/gui/rpk-gui/src/pages/firm/index.tsx b/gui/rpk-gui/src/pages/firm/index.tsx index 86e7b67..184d6b1 100644 --- a/gui/rpk-gui/src/pages/firm/index.tsx +++ b/gui/rpk-gui/src/pages/firm/index.tsx @@ -6,22 +6,28 @@ import { useOne } from "@refinedev/core"; import { CrudForm } from "../../lib/crud/components/crud-form"; import { IFirm } from "../../interfaces"; import { EntityRoutes } from "./EntityRoutes"; +import { ContractRoutes } from "./ContractRoutes"; +import { DraftRoutes } from "./DraftRoutes"; +import { TemplateRoutes } from "./TemplateRoutes"; +import { ProvisionRoutes } from "./ProvisionRoutes"; export const FirmRoutes = () => { return ( - <> - - -
- - } /> - } /> - - - } /> - - + + +
+ + } /> + } /> + } /> + } /> + } /> + } /> + + + } /> + ); } @@ -42,6 +48,10 @@ const FirmHome = () => {

This is la firme {currentFirm.instance} / {currentFirm.firm}

  • Entitées
  • +
  • Templates de Clauses
  • +
  • Templates de Contrats
  • +
  • Brouillons
  • +
  • Contrats
@@ -67,4 +77,4 @@ const FirmInitForm = (props: FirmInitFormPros) => { /> ) -} \ No newline at end of file +} diff --git a/gui/rpk-gui/src/pages/hub/index.tsx b/gui/rpk-gui/src/pages/hub/index.tsx index 2c2930e..0aee18b 100644 --- a/gui/rpk-gui/src/pages/hub/index.tsx +++ b/gui/rpk-gui/src/pages/hub/index.tsx @@ -22,7 +22,7 @@ export const HubRoutes = () => { const HubHome = () => { const { data: user } = useGetIdentity(); - const { data: list } = useList({resource: "hub/users/firms/", pagination: { mode: "off" }}, ) + const { data: list } = useList({resource: "hub/users/firms", pagination: { mode: "off" }}, ) if (user === undefined || user === null || list === undefined) { return

Loading

; } diff --git a/gui/rpk-gui/src/providers/data-provider.tsx b/gui/rpk-gui/src/providers/data-provider.tsx index 4259c30..312d984 100644 --- a/gui/rpk-gui/src/providers/data-provider.tsx +++ b/gui/rpk-gui/src/providers/data-provider.tsx @@ -66,7 +66,7 @@ export const dataProvider: DataProvider = { }); } - const response = await fetch(`${API_URL}/${resource}?${params.toString()}`); + const response = await fetch(`${API_URL}/${resource}/?${params.toString()}`); if (response.status < 200 || response.status > 299) { if (response.status == 405) {