From e1b4079e1f5991332dc7a96b9016320fa4191ca6 Mon Sep 17 00:00:00 2001 From: Sacha Al Himdani Date: Thu, 29 May 2025 19:58:23 -0700 Subject: [PATCH] Rename policy to document Signed-off-by: Sacha Al Himdani --- apps/console/src/App.css | 2 +- apps/console/src/App.tsx | 4 +- .../{PolicyEditor.css => DocumentEditor.css} | 24 +- apps/console/src/components/NavMain.tsx | 4 +- .../console/src/pages/SigningRequestsPage.tsx | 6 +- .../organizations/OrganizationBreadcrumb.tsx | 34 +- .../src/pages/organizations/Routes.tsx | 14 +- ...readcrumbDocumentOverviewQuery.graphql.ts} | 38 +- .../DocumentListPage.tsx} | 16 +- .../DocumentListView.tsx} | 190 +- .../EditDocumentPage.tsx} | 14 +- .../EditDocumentView.tsx} | 92 +- .../ShowDocumentPage.tsx} | 10 +- .../ShowDocumentView.tsx} | 206 +- .../SignaturesList.tsx | 4 +- .../SignaturesModal.tsx | 34 +- .../VersionHistoryModal.tsx | 16 +- ...DocumentListViewCreateMutation.graphql.ts} | 48 +- ...DocumentListViewDeleteMutation.graphql.ts} | 46 +- .../DocumentListViewQuery.graphql.ts} | 70 +- ...ndSigningNotificationsMutation.graphql.ts} | 24 +- .../EditDocumentViewMutation.graphql.ts} | 42 +- .../EditDocumentViewQuery.graphql.ts} | 64 +- ...ocumentViewCreateDraftMutation.graphql.ts} | 48 +- ...howDocumentViewPublishMutation.graphql.ts} | 60 +- .../ShowDocumentViewQuery.graphql.ts} | 244 +- ...ignaturesModalOrganizationQuery.graphql.ts | 0 ...esModalRequestSignatureMutation.graphql.ts | 30 +- ...gnaturesModal_documentVersions.graphql.ts} | 44 +- ...nHistoryModal_documentVersions.graphql.ts} | 28 +- .../frameworks/controls/Control.tsx | 352 +- ...lCreateDocumentMappingMutation.graphql.ts} | 36 +- ...lDeleteDocumentMappingMutation.graphql.ts} | 40 +- .../ControlLinkedDocumentsQuery.graphql.ts | 301 ++ .../ControlLinkedPoliciesQuery.graphql.ts | 42 +- ...ntrolOrganizationDocumentsQuery.graphql.ts | 301 ++ ...ontrolOrganizationPoliciesQuery.graphql.ts | 42 +- .../organizations/risks/ShowRiskView.tsx | 284 +- ...ateRiskDocumentMappingMutation.graphql.ts} | 36 +- ...leteRiskDocumentMappingMutation.graphql.ts | 93 + ...DeleteRiskPolicyMappingMutation.graphql.ts | 93 - ...kViewOrganizationDocumentsQuery.graphql.ts | 246 ++ ...skViewOrganizationPoliciesQuery.graphql.ts | 42 +- .../ShowRiskViewQuery.graphql.ts | 48 +- .../organizations/tasks/ListTaskView.tsx | 114 +- ...olicy-content.css => document-content.css} | 50 +- pkg/coredata/control.go | 16 +- ...{control_policy.go => control_document.go} | 40 +- pkg/coredata/{policy.go => document.go} | 98 +- ...order_field.go => document_order_field.go} | 16 +- .../{policy_status.go => document_status.go} | 32 +- ...{policy_version.go => document_version.go} | 148 +- ...eld.go => document_version_order_field.go} | 16 +- pkg/coredata/document_version_signature.go | 281 ++ ...document_version_signature_order_field.go} | 16 +- ...go => document_version_signature_state.go} | 34 +- pkg/coredata/entity_type_reg.go | 6 +- pkg/coredata/migrations/20250530T033915Z.sql | 36 + pkg/coredata/policy_version_signature.go | 281 -- .../{risk_policy.go => risk_document.go} | 40 +- pkg/probo/control_service.go | 64 +- pkg/probo/document_service.go | 634 ++++ pkg/probo/framework_service.go | 30 +- pkg/probo/policy_service.go | 634 ---- pkg/probo/risk_service.go | 48 +- pkg/probo/service.go | 4 +- pkg/server/api/console/v1/resolver.go | 12 +- pkg/server/api/console/v1/schema.graphql | 258 +- pkg/server/api/console/v1/schema/schema.go | 3188 ++++++++--------- .../v1/types/{policy.go => document.go} | 34 +- .../api/console/v1/types/document_version.go | 56 + .../v1/types/document_version_signature.go | 54 + .../api/console/v1/types/policy_version.go | 56 - .../v1/types/policy_version_signature.go | 54 - pkg/server/api/console/v1/types/types.go | 152 +- pkg/server/api/console/v1/v1_resolver.go | 348 +- 76 files changed, 5572 insertions(+), 4690 deletions(-) rename apps/console/src/components/{PolicyEditor.css => DocumentEditor.css} (93%) rename apps/console/src/pages/organizations/__generated__/{OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery.graphql.ts => OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery.graphql.ts} (61%) rename apps/console/src/pages/organizations/{policies/PolicyListPage.tsx => documents/DocumentListPage.tsx} (87%) rename apps/console/src/pages/organizations/{policies/PolicyListView.tsx => documents/DocumentListView.tsx} (76%) rename apps/console/src/pages/organizations/{policies/EditPolicyPage.tsx => documents/EditDocumentPage.tsx} (62%) rename apps/console/src/pages/organizations/{policies/EditPolicyView.tsx => documents/EditDocumentView.tsx} (52%) rename apps/console/src/pages/organizations/{policies/ShowPolicyPage.tsx => documents/ShowDocumentPage.tsx} (94%) rename apps/console/src/pages/organizations/{policies/ShowPolicyView.tsx => documents/ShowDocumentView.tsx} (78%) rename apps/console/src/pages/organizations/{policies => documents}/SignaturesList.tsx (96%) rename apps/console/src/pages/organizations/{policies => documents}/SignaturesModal.tsx (94%) rename apps/console/src/pages/organizations/{policies => documents}/VersionHistoryModal.tsx (92%) rename apps/console/src/pages/organizations/{policies/__generated__/PolicyListViewCreateMutation.graphql.ts => documents/__generated__/DocumentListViewCreateMutation.graphql.ts} (74%) rename apps/console/src/pages/organizations/{policies/__generated__/PolicyListViewDeleteMutation.graphql.ts => documents/__generated__/DocumentListViewDeleteMutation.graphql.ts} (63%) rename apps/console/src/pages/organizations/{policies/__generated__/PolicyListViewQuery.graphql.ts => documents/__generated__/DocumentListViewQuery.graphql.ts} (79%) rename apps/console/src/pages/organizations/{policies/__generated__/PolicyListViewSendSigningNotificationsMutation.graphql.ts => documents/__generated__/DocumentListViewSendSigningNotificationsMutation.graphql.ts} (61%) rename apps/console/src/pages/organizations/{policies/__generated__/EditPolicyViewMutation.graphql.ts => documents/__generated__/EditDocumentViewMutation.graphql.ts} (60%) rename apps/console/src/pages/organizations/{policies/__generated__/EditPolicyViewQuery.graphql.ts => documents/__generated__/EditDocumentViewQuery.graphql.ts} (81%) rename apps/console/src/pages/organizations/{policies/__generated__/ShowPolicyViewCreateDraftMutation.graphql.ts => documents/__generated__/ShowDocumentViewCreateDraftMutation.graphql.ts} (60%) rename apps/console/src/pages/organizations/{policies/__generated__/ShowPolicyViewPublishMutation.graphql.ts => documents/__generated__/ShowDocumentViewPublishMutation.graphql.ts} (69%) rename apps/console/src/pages/organizations/{policies/__generated__/ShowPolicyViewQuery.graphql.ts => documents/__generated__/ShowDocumentViewQuery.graphql.ts} (72%) rename apps/console/src/pages/organizations/{policies => documents}/__generated__/SignaturesModalOrganizationQuery.graphql.ts (100%) rename apps/console/src/pages/organizations/{policies => documents}/__generated__/SignaturesModalRequestSignatureMutation.graphql.ts (84%) rename apps/console/src/pages/organizations/{policies/__generated__/SignaturesModal_policyVersions.graphql.ts => documents/__generated__/SignaturesModal_documentVersions.graphql.ts} (87%) rename apps/console/src/pages/organizations/{policies/__generated__/VersionHistoryModal_policyVersions.graphql.ts => documents/__generated__/VersionHistoryModal_documentVersions.graphql.ts} (85%) rename apps/console/src/pages/organizations/frameworks/controls/__generated__/{ControlCreatePolicyMappingMutation.graphql.ts => ControlCreateDocumentMappingMutation.graphql.ts} (62%) rename apps/console/src/pages/organizations/frameworks/controls/__generated__/{ControlDeletePolicyMappingMutation.graphql.ts => ControlDeleteDocumentMappingMutation.graphql.ts} (50%) create mode 100644 apps/console/src/pages/organizations/frameworks/controls/__generated__/ControlLinkedDocumentsQuery.graphql.ts create mode 100644 apps/console/src/pages/organizations/frameworks/controls/__generated__/ControlOrganizationDocumentsQuery.graphql.ts rename apps/console/src/pages/organizations/risks/__generated__/{ShowRiskViewCreateRiskPolicyMappingMutation.graphql.ts => ShowRiskViewCreateRiskDocumentMappingMutation.graphql.ts} (61%) create mode 100644 apps/console/src/pages/organizations/risks/__generated__/ShowRiskViewDeleteRiskDocumentMappingMutation.graphql.ts delete mode 100644 apps/console/src/pages/organizations/risks/__generated__/ShowRiskViewDeleteRiskPolicyMappingMutation.graphql.ts create mode 100644 apps/console/src/pages/organizations/risks/__generated__/ShowRiskViewOrganizationDocumentsQuery.graphql.ts rename apps/console/src/styles/{policy-content.css => document-content.css} (73%) rename pkg/coredata/{control_policy.go => control_document.go} (70%) rename pkg/coredata/{policy.go => document.go} (74%) rename pkg/coredata/{policy_order_field.go => document_order_field.go} (69%) rename pkg/coredata/{policy_status.go => document_status.go} (62%) rename pkg/coredata/{policy_version.go => document_version.go} (56%) rename pkg/coredata/{policy_version_order_field.go => document_version_order_field.go} (66%) create mode 100644 pkg/coredata/document_version_signature.go rename pkg/coredata/{policy_version_signature_order_field.go => document_version_signature_order_field.go} (62%) rename pkg/coredata/{policy_version_signature_state.go => document_version_signature_state.go} (51%) create mode 100644 pkg/coredata/migrations/20250530T033915Z.sql delete mode 100644 pkg/coredata/policy_version_signature.go rename pkg/coredata/{risk_policy.go => risk_document.go} (71%) create mode 100644 pkg/probo/document_service.go delete mode 100644 pkg/probo/policy_service.go rename pkg/server/api/console/v1/types/{policy.go => document.go} (53%) create mode 100644 pkg/server/api/console/v1/types/document_version.go create mode 100644 pkg/server/api/console/v1/types/document_version_signature.go delete mode 100644 pkg/server/api/console/v1/types/policy_version.go delete mode 100644 pkg/server/api/console/v1/types/policy_version_signature.go diff --git a/apps/console/src/App.css b/apps/console/src/App.css index 4a85765fe..a9c1514f5 100644 --- a/apps/console/src/App.css +++ b/apps/console/src/App.css @@ -13,7 +13,7 @@ @import "@radix-ui/colors/orange.css"; @import "@radix-ui/colors/orange-dark.css"; -@import "./styles/policy-content.css"; +@import "./styles/document-content.css"; @plugin 'tailwindcss-animate'; @plugin "@tailwindcss/typography"; diff --git a/apps/console/src/App.tsx b/apps/console/src/App.tsx index 285b70b91..78a5e630a 100644 --- a/apps/console/src/App.tsx +++ b/apps/console/src/App.tsx @@ -7,7 +7,7 @@ import { HelmetProvider } from "react-helmet-async"; import { RelayEnvironmentProvider } from "react-relay"; import { BrowserRouter, Route, Routes, useLocation } from "react-router"; import "./App.css"; -import "./styles/policy-content.css"; +import "./styles/document-content.css"; import ErrorBoundary from "./components/ErrorBoundary"; import AuthLayout from "./layouts/AuthLayout"; import { RelayEnvironment } from "./RelayEnvironment"; @@ -55,7 +55,7 @@ function App() { /> } /> diff --git a/apps/console/src/components/PolicyEditor.css b/apps/console/src/components/DocumentEditor.css similarity index 93% rename from apps/console/src/components/PolicyEditor.css rename to apps/console/src/components/DocumentEditor.css index 93a0114d5..57e7b9069 100644 --- a/apps/console/src/components/PolicyEditor.css +++ b/apps/console/src/components/DocumentEditor.css @@ -1,4 +1,4 @@ -.policy-editor-container { +.document-editor-container { border-radius: 0.5rem; position: relative; line-height: 1.5; @@ -9,7 +9,7 @@ width: 100%; } -.policy-editor { +.document-editor { background: var(--bg-invert-bg); position: relative; border-radius: 0.5rem; @@ -18,7 +18,7 @@ width: 100%; } -.policy-editor-inner { +.document-editor-inner { background: #fff; position: relative; border-radius: 0 0 0.5rem 0.5rem; @@ -26,7 +26,7 @@ min-height: 250px; } -.policy-editor-input { +.document-editor-input { min-height: 250px; max-height: 500px; resize: none; @@ -41,7 +41,7 @@ color: #000; } -.policy-editor-placeholder { +.document-editor-placeholder { color: #999; overflow: hidden; position: absolute; @@ -54,12 +54,12 @@ pointer-events: none; } -.policy-editor-paragraph { +.document-editor-paragraph { margin: 0 0 15px 0; position: relative; } -.policy-editor .toolbar { +.document-editor .toolbar { display: flex; flex-wrap: wrap; padding: 8px; @@ -68,7 +68,7 @@ border-radius: 0.5rem 0.5rem 0 0; } -.policy-editor .toolbar button { +.document-editor .toolbar button { border: 0; display: flex; background: none; @@ -80,15 +80,15 @@ justify-content: center; } -.policy-editor .toolbar button:hover { +.document-editor .toolbar button:hover { background-color: rgba(0, 0, 0, 0.05); } -.policy-editor .toolbar button.active { +.document-editor .toolbar button.active { background-color: rgba(0, 0, 0, 0.1); } -.policy-editor .toolbar .divider { +.document-editor .toolbar .divider { width: 1px; background-color: hsl(var(--solid-b)); margin: 0 8px; @@ -281,4 +281,4 @@ ol.editor-list-ol ol.editor-list-ol > .editor-listitem { .editor-tokenFunction { color: #dd4a68; -} \ No newline at end of file +} diff --git a/apps/console/src/components/NavMain.tsx b/apps/console/src/components/NavMain.tsx index c83817e18..32b28b1c2 100644 --- a/apps/console/src/components/NavMain.tsx +++ b/apps/console/src/components/NavMain.tsx @@ -174,9 +174,9 @@ function getNavItems(organizationId?: string): NavItem[] { icon: Store, }, { - title: "Policies", + title: "Documents", url: organizationId - ? `/organizations/${organizationId}/policies` + ? `/organizations/${organizationId}/documents` : undefined, icon: FileText, }, diff --git a/apps/console/src/pages/SigningRequestsPage.tsx b/apps/console/src/pages/SigningRequestsPage.tsx index b8bcb29ea..c77904a2e 100644 --- a/apps/console/src/pages/SigningRequestsPage.tsx +++ b/apps/console/src/pages/SigningRequestsPage.tsx @@ -17,7 +17,7 @@ import remarkGfm from "remark-gfm"; import rehypeRaw from 'rehype-raw'; type Document = { - policy_version_id: string; + document_version_id: string; title: string; content: string; signed?: boolean; @@ -49,7 +49,7 @@ export default function SigningRequestsPage() { async function fetchDocuments() { try { const response = await fetch( - buildEndpoint("/api/console/v1/policies/signing-requests"), + buildEndpoint("/api/console/v1/documents/signing-requests"), { method: "GET", headers: { @@ -96,7 +96,7 @@ export default function SigningRequestsPage() { try { const response = await fetch( buildEndpoint( - `/api/console/v1/policies/signing-requests/${docToSign.policy_version_id}/sign`, + `/api/console/v1/documents/signing-requests/${docToSign.document_version_id}/sign`, ), { method: "POST", diff --git a/apps/console/src/pages/organizations/OrganizationBreadcrumb.tsx b/apps/console/src/pages/organizations/OrganizationBreadcrumb.tsx index a18a462ea..92997c319 100644 --- a/apps/console/src/pages/organizations/OrganizationBreadcrumb.tsx +++ b/apps/console/src/pages/organizations/OrganizationBreadcrumb.tsx @@ -13,7 +13,7 @@ import { NavLink, Outlet, Route, Routes, To, useParams } from "react-router"; import { OrganizationBreadcrumbBreadcrumbFrameworkOverviewQuery } from "./__generated__/OrganizationBreadcrumbBreadcrumbFrameworkOverviewQuery.graphql"; import { OrganizationBreadcrumbBreadcrumbPeopleOverviewQuery } from "./__generated__/OrganizationBreadcrumbBreadcrumbPeopleOverviewQuery.graphql"; -import { OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery } from "./__generated__/OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery.graphql"; +import { OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery } from "./__generated__/OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery.graphql"; import { OrganizationBreadcrumbBreadcrumbVendorOverviewQuery } from "./__generated__/OrganizationBreadcrumbBreadcrumbVendorOverviewQuery.graphql"; import { OrganizationBreadcrumbOrganizationQuery } from "./__generated__/OrganizationBreadcrumbOrganizationQuery.graphql"; import { OrganizationBreadcrumbBreadcrumbMeasureViewQuery } from "./__generated__/OrganizationBreadcrumbBreadcrumbMeasureViewQuery.graphql"; @@ -264,14 +264,14 @@ function BreadcrumbPeopleOverview() { ); } -function BreadcrumbPolicyList() { +function BreadcrumbDocumentList() { const { organizationId } = useParams(); return ( <> - - Policies + + Documents @@ -279,23 +279,23 @@ function BreadcrumbPolicyList() { ); } -function BreadcrumbPolicyOverview() { - const { organizationId, policyId } = useParams(); +function BreadcrumbDocumentOverview() { + const { organizationId, documentId } = useParams(); const data = - useLazyLoadQuery( + useLazyLoadQuery( graphql` - query OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery( - $policyId: ID! + query OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery( + $documentId: ID! ) { - policy: node(id: $policyId) { + document: node(id: $documentId) { id - ... on Policy { + ... on Document { title } } } `, - { policyId: policyId! }, + { documentId: documentId! }, { fetchPolicy: "store-or-network" }, ); @@ -304,9 +304,9 @@ function BreadcrumbPolicyOverview() { - {data.policy?.title} + {data.document?.title} @@ -531,12 +531,12 @@ export function BreadCrumb() { } /> - }> + }> - + } > diff --git a/apps/console/src/pages/organizations/Routes.tsx b/apps/console/src/pages/organizations/Routes.tsx index 7e626f32d..6c7ce0052 100644 --- a/apps/console/src/pages/organizations/Routes.tsx +++ b/apps/console/src/pages/organizations/Routes.tsx @@ -18,9 +18,9 @@ import { NewMeasurePage } from "./measures/NewMeasurePage"; import { NewPeoplePage } from "./people/NewPeoplePage"; import { PeopleListPage } from "./people/PeopleListPage"; import { PeoplePage } from "./people/PeoplePage"; -import { EditPolicyPage } from "./policies/EditPolicyPage"; -import { PolicyListPage } from "./policies/PolicyListPage"; -import { ShowPolicyPage } from "./policies/ShowPolicyPage"; +import { EditDocumentPage } from "./documents/EditDocumentPage"; +import { DocumentListPage } from "./documents/DocumentListPage"; +import { ShowDocumentPage } from "./documents/ShowDocumentPage"; import { EditRiskPage } from "./risks/EditRiskPage"; import { NewRiskPage } from "./risks/NewRiskPage"; import { ListRiskPage } from "./risks/ListRiskPage"; @@ -54,11 +54,11 @@ export function OrganizationsRoutes() { } /> } /> } /> - } /> - } /> + } /> + } /> } + path="documents/:documentId/versions/:versionId/edit" + element={} /> } /> } /> diff --git a/apps/console/src/pages/organizations/__generated__/OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery.graphql.ts b/apps/console/src/pages/organizations/__generated__/OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery.graphql.ts similarity index 61% rename from apps/console/src/pages/organizations/__generated__/OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery.graphql.ts rename to apps/console/src/pages/organizations/__generated__/OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery.graphql.ts index 15c92c766..1d0b39e75 100644 --- a/apps/console/src/pages/organizations/__generated__/OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery.graphql.ts +++ b/apps/console/src/pages/organizations/__generated__/OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<2cac1fe037796fc1b9542c9388ed930d>> * @lightSyntaxTransform * @nogrep */ @@ -9,18 +9,18 @@ // @ts-nocheck import { ConcreteRequest } from 'relay-runtime'; -export type OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery$variables = { - policyId: string; +export type OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery$variables = { + documentId: string; }; -export type OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery$data = { - readonly policy: { +export type OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery$data = { + readonly document: { readonly id: string; readonly title?: string; }; }; -export type OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery = { - response: OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery$data; - variables: OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery$variables; +export type OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery = { + response: OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery$data; + variables: OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery$variables; }; const node: ConcreteRequest = (function(){ @@ -28,14 +28,14 @@ var v0 = [ { "defaultValue": null, "kind": "LocalArgument", - "name": "policyId" + "name": "documentId" } ], v1 = [ { "kind": "Variable", "name": "id", - "variableName": "policyId" + "variableName": "documentId" } ], v2 = { @@ -56,7 +56,7 @@ v3 = { "storageKey": null } ], - "type": "Policy", + "type": "Document", "abstractKey": null }; return { @@ -64,10 +64,10 @@ return { "argumentDefinitions": (v0/*: any*/), "kind": "Fragment", "metadata": null, - "name": "OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery", + "name": "OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery", "selections": [ { - "alias": "policy", + "alias": "document", "args": (v1/*: any*/), "concreteType": null, "kind": "LinkedField", @@ -87,10 +87,10 @@ return { "operation": { "argumentDefinitions": (v0/*: any*/), "kind": "Operation", - "name": "OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery", + "name": "OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery", "selections": [ { - "alias": "policy", + "alias": "document", "args": (v1/*: any*/), "concreteType": null, "kind": "LinkedField", @@ -112,16 +112,16 @@ return { ] }, "params": { - "cacheID": "bc0b04bbe75c94660de230461532773a", + "cacheID": "bf577e8122cd59894e36f951f7a3551a", "id": null, "metadata": {}, - "name": "OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery", + "name": "OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery", "operationKind": "query", - "text": "query OrganizationBreadcrumbBreadcrumbPolicyOverviewQuery(\n $policyId: ID!\n) {\n policy: node(id: $policyId) {\n __typename\n id\n ... on Policy {\n title\n }\n }\n}\n" + "text": "query OrganizationBreadcrumbBreadcrumbDocumentOverviewQuery(\n $documentId: ID!\n) {\n document: node(id: $documentId) {\n __typename\n id\n ... on Document {\n title\n }\n }\n}\n" } }; })(); -(node as any).hash = "ced380d1e6eb1c31ecc5f2dc9096133b"; +(node as any).hash = "7ef8052c69e997cf2252d7c00b3f1c1f"; export default node; diff --git a/apps/console/src/pages/organizations/policies/PolicyListPage.tsx b/apps/console/src/pages/organizations/documents/DocumentListPage.tsx similarity index 87% rename from apps/console/src/pages/organizations/policies/PolicyListPage.tsx rename to apps/console/src/pages/organizations/documents/DocumentListPage.tsx index 35da266b7..906cf4a07 100644 --- a/apps/console/src/pages/organizations/policies/PolicyListPage.tsx +++ b/apps/console/src/pages/organizations/documents/DocumentListPage.tsx @@ -5,13 +5,13 @@ import { useLocation } from "react-router"; import { ErrorBoundaryWithLocation } from "../ErrorBoundary"; import { lazy } from "@probo/react-lazy"; -const PolicyListView = lazy(() => import("./PolicyListView")); +const DocumentListView = lazy(() => import("./DocumentListView")); -export function PolicyListViewSkeleton() { +export function DocumentListViewSkeleton() { return ( } @@ -28,7 +28,7 @@ export function PolicyListViewSkeleton() { {/* Results summary skeleton */}
- {/* Policy grid skeleton */} + {/* Document grid skeleton */}
{[1, 2, 3, 4, 5, 6].map((i) => ( @@ -60,13 +60,13 @@ export function PolicyListViewSkeleton() { ); } -export function PolicyListPage() { +export function DocumentListPage() { const location = useLocation(); return ( - }> + }> - + ); diff --git a/apps/console/src/pages/organizations/policies/PolicyListView.tsx b/apps/console/src/pages/organizations/documents/DocumentListView.tsx similarity index 76% rename from apps/console/src/pages/organizations/policies/PolicyListView.tsx rename to apps/console/src/pages/organizations/documents/DocumentListView.tsx index e04bc7eb5..278a8fb92 100644 --- a/apps/console/src/pages/organizations/policies/PolicyListView.tsx +++ b/apps/console/src/pages/organizations/documents/DocumentListView.tsx @@ -27,14 +27,14 @@ import { import { useToast } from "@/hooks/use-toast"; import { format } from "date-fns"; import type { - PolicyListViewQuery, - PolicyListViewQuery$data, -} from "./__generated__/PolicyListViewQuery.graphql"; -import type { PolicyListViewDeleteMutation } from "./__generated__/PolicyListViewDeleteMutation.graphql"; -import type { PolicyListViewCreateMutation } from "./__generated__/PolicyListViewCreateMutation.graphql"; -import type { PolicyListViewSendSigningNotificationsMutation } from "./__generated__/PolicyListViewSendSigningNotificationsMutation.graphql"; + DocumentListViewQuery, + DocumentListViewQuery$data, +} from "./__generated__/DocumentListViewQuery.graphql"; +import type { DocumentListViewDeleteMutation } from "./__generated__/DocumentListViewDeleteMutation.graphql"; +import type { DocumentListViewCreateMutation } from "./__generated__/DocumentListViewCreateMutation.graphql"; +import type { DocumentListViewSendSigningNotificationsMutation } from "./__generated__/DocumentListViewSendSigningNotificationsMutation.graphql"; import { PageTemplate } from "@/components/PageTemplate"; -import { PolicyListViewSkeleton } from "./PolicyListPage"; +import { DocumentListViewSkeleton } from "./DocumentListPage"; import { Dialog, DialogContent, @@ -46,8 +46,8 @@ import PeopleSelector from "@/components/PeopleSelector"; import type { PeopleSelector_organization$key } from "@/components/__generated__/PeopleSelector_organization.graphql"; import { Textarea } from "@/components/ui/textarea"; -const policyListViewQuery = graphql` - query PolicyListViewQuery($organizationId: ID!) { +const documentListViewQuery = graphql` + query DocumentListViewQuery($organizationId: ID!) { viewer { user { id @@ -57,8 +57,8 @@ const policyListViewQuery = graphql` organization: node(id: $organizationId) { ... on Organization { ...PeopleSelector_organization - policies(first: 50, orderBy: { field: TITLE, direction: ASC }) - @connection(key: "PolicyListView_policies") { + documents(first: 50, orderBy: { field: TITLE, direction: ASC }) + @connection(key: "DocumentListView_documents") { edges { node { id @@ -96,24 +96,24 @@ const policyListViewQuery = graphql` } `; -const DeletePolicyMutation = graphql` - mutation PolicyListViewDeleteMutation( - $input: DeletePolicyInput! +const DeleteDocumentMutation = graphql` + mutation DocumentListViewDeleteMutation( + $input: DeleteDocumentInput! $connections: [ID!]! ) { - deletePolicy(input: $input) { - deletedPolicyId @deleteEdge(connections: $connections) + deleteDocument(input: $input) { + deletedDocumentId @deleteEdge(connections: $connections) } } `; -const createPolicyMutation = graphql` - mutation PolicyListViewCreateMutation( - $input: CreatePolicyInput! +const createDocumentMutation = graphql` + mutation DocumentListViewCreateMutation( + $input: CreateDocumentInput! $connections: [ID!]! ) { - createPolicy(input: $input) { - policyEdge @prependEdge(connections: $connections) { + createDocument(input: $input) { + documentEdge @prependEdge(connections: $connections) { node { id title @@ -131,7 +131,7 @@ const createPolicyMutation = graphql` `; const sendSigningNotificationsMutation = graphql` - mutation PolicyListViewSendSigningNotificationsMutation( + mutation DocumentListViewSendSigningNotificationsMutation( $input: SendSigningNotificationsInput! ) { sendSigningNotifications(input: $input) { @@ -139,21 +139,21 @@ const sendSigningNotificationsMutation = graphql` } } `; -function PolicyTableRow({ - policy, +function DocumentTableRow({ + document, organizationId, }: { - policy: NonNullable< - PolicyListViewQuery$data["organization"]["policies"] + document: NonNullable< + DocumentListViewQuery$data["organization"]["documents"] >["edges"][0]["node"]; organizationId: string; }) { const navigate = useNavigate(); const { toast } = useToast(); - const [deletePolicy, isDeleting] = - useMutation(DeletePolicyMutation); + const [deleteDocument, isDeleting] = + useMutation(DeleteDocumentMutation); - const latestVersion = policy.versions?.edges[0]?.node; + const latestVersion = document.versions?.edges[0]?.node; const status = latestVersion?.status || "DRAFT"; // Get signature counts @@ -163,45 +163,45 @@ function PolicyTableRow({ (edge) => edge?.node?.state === "SIGNED", ).length; - const handleDeletePolicy = (e: React.MouseEvent) => { + const handleDeleteDocument = (e: React.MouseEvent) => { e.stopPropagation(); if ( window.confirm( - "Are you sure you want to delete this policy? This action cannot be undone.", + "Are you sure you want to delete this document? This action cannot be undone.", ) ) { - deletePolicy({ + deleteDocument({ variables: { input: { - policyId: policy.id, + documentId: document.id, }, connections: [ ConnectionHandler.getConnectionID( organizationId, - "PolicyListView_policies", + "DocumentListView_documents", ), ], }, onCompleted: (_, errors) => { if (errors) { - console.error("Error deleting policy:", errors); + console.error("Error deleting document:", errors); toast({ title: "Error", - description: "Failed to delete policy. Please try again.", + description: "Failed to delete document. Please try again.", variant: "destructive", }); return; } toast({ title: "Success", - description: "Policy deleted successfully.", + description: "Document deleted successfully.", }); }, onError: (error) => { - console.error("Error deleting policy:", error); + console.error("Error deleting document:", error); toast({ title: "Error", - description: "Failed to delete policy. Please try again.", + description: "Failed to delete document. Please try again.", variant: "destructive", }); }, @@ -211,32 +211,32 @@ function PolicyTableRow({ const handleView = (e: React.MouseEvent) => { e.stopPropagation(); - navigate(`/organizations/${organizationId}/policies/${policy.id}`); + navigate(`/organizations/${organizationId}/documents/${document.id}`); }; return ( { - navigate(`/organizations/${organizationId}/policies/${policy.id}`); + navigate(`/organizations/${organizationId}/documents/${document.id}`); }} >
- {policy.title} + {document.title} - {policy.description || "No description provided"} + {document.description || "No description provided"}
- {policy.owner?.fullName || "Unassigned"} + {document.owner?.fullName || "Unassigned"} - {format(new Date(policy.updatedAt), "MMM d, yyyy")} + {format(new Date(document.updatedAt), "MMM d, yyyy")} @@ -277,7 +277,7 @@ function PolicyTableRow({ View @@ -291,7 +291,7 @@ function PolicyTableRow({ ); } -function CreatePolicyModal({ +function CreateDocumentModal({ open, onOpenChange, organizationId, @@ -307,8 +307,8 @@ function CreatePolicyModal({ const [content, setContent] = useState(""); const [ownerId, setOwnerId] = useState(null); - const [createPolicy, isCreating] = - useMutation(createPolicyMutation); + const [createDocument, isCreating] = + useMutation(createDocumentMutation); // Reset form fields const resetForm = () => { @@ -317,11 +317,11 @@ function CreatePolicyModal({ setOwnerId(null); }; - const handleCreatePolicy = () => { + const handleCreateDocument = () => { if (!title.trim()) { toast({ title: "Error", - description: "Please enter a policy title.", + description: "Please enter a document title.", variant: "destructive", }); return; @@ -330,7 +330,7 @@ function CreatePolicyModal({ if (!ownerId) { toast({ title: "Error", - description: "Please select an owner for the policy.", + description: "Please select an owner for the document.", variant: "destructive", }); return; @@ -343,23 +343,23 @@ function CreatePolicyModal({ ownerId, }; - createPolicy({ + createDocument({ variables: { input, connections: [ ConnectionHandler.getConnectionID( organizationId, - "PolicyListView_policies", + "DocumentListView_documents", { orderBy: { field: "TITLE", direction: "ASC" } }, ), ], }, onCompleted: (response, errors) => { if (errors) { - console.error("Error creating policy:", errors); + console.error("Error creating document:", errors); toast({ title: "Error", - description: "Failed to create policy. Please try again.", + description: "Failed to create document. Please try again.", variant: "destructive", }); return; @@ -367,17 +367,17 @@ function CreatePolicyModal({ toast({ title: "Success", - description: "Policy created successfully!", + description: "Document created successfully!", }); resetForm(); onOpenChange(false); }, onError: (error) => { - console.error("Error creating policy:", error); + console.error("Error creating document:", error); toast({ title: "Error", - description: "Failed to create policy. Please try again.", + description: "Failed to create document. Please try again.", variant: "destructive", }); }, @@ -394,16 +394,16 @@ function CreatePolicyModal({ return ( - Create new policy + Create new document - Form to create a new policy with title, content, and owner + Form to create a new document with title, content, and owner information.
- Policies + Documents - New policy + New document
@@ -425,25 +425,25 @@ function CreatePolicyModal({ } }} onFocus={(e) => { - if (e.currentTarget.textContent === "Enter policy title...") { + if (e.currentTarget.textContent === "Enter document title...") { e.currentTarget.textContent = ""; } }} onBlur={(e) => { if (!e.currentTarget.textContent?.trim()) { - e.currentTarget.textContent = "Enter policy title..."; + e.currentTarget.textContent = "Enter document title..."; setTitle(""); } }} ref={(el) => { if (el && !el.textContent) { - el.textContent = title || "Enter policy title..."; + el.textContent = title || "Enter document title..."; } }} >