@gen-epix/ui-client-casedb 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/CaseInfoDialog.js +40 -39
- package/dist/_chunks/CaseInfoDialog.js.map +1 -1
- package/dist/_chunks/Dashboard.js +613 -667
- package/dist/_chunks/Dashboard.js.map +1 -1
- package/dist/_chunks/LegendaItem.js.map +1 -1
- package/dist/_chunks/LineListWidget.js +138 -136
- package/dist/_chunks/LineListWidget.js.map +1 -1
- package/dist/_chunks/UploadUtil.js +4 -6
- package/dist/_chunks/UploadUtil.js.map +1 -1
- package/dist/_chunks/_baseClone.js +1 -1
- package/dist/_chunks/_baseClone.js.map +1 -1
- package/dist/_chunks/cloneDeep.js +1 -1
- package/dist/_chunks/cloneDeep.js.map +1 -1
- package/dist/_chunks/esm.js +93 -101
- package/dist/_chunks/esm.js.map +1 -1
- package/dist/_chunks/react.js +1 -1
- package/dist/_chunks/react.js.map +1 -1
- package/dist/_chunks/shallow.js +2 -2
- package/dist/_chunks/shallow.js.map +1 -1
- package/dist/_chunks/sync.js +4 -4
- package/dist/_chunks/sync.js.map +1 -1
- package/dist/_chunks/vanilla.js +1 -1
- package/dist/_chunks/vanilla.js.map +1 -1
- package/dist/_chunks/yup.js +2 -2
- package/dist/_chunks/yup.js.map +1 -1
- package/dist/components/ui/ContextMenu/index.js +1 -1
- package/dist/components/ui/ContextMenu/index.js.map +1 -1
- package/dist/components/ui/CreateEventDialog/index.js +1 -1
- package/dist/components/ui/CreateEventDialog/index.js.map +1 -1
- package/dist/components/ui/HistogramWidget/index.js +161 -162
- package/dist/components/ui/HistogramWidget/index.js.map +1 -1
- package/dist/components/ui/PanelSeparator/index.js +50 -2
- package/dist/components/ui/PanelSeparator/index.js.map +1 -0
- package/dist/locale/en.json +6 -0
- package/dist/locale/nl.json +7 -1
- package/dist/pages/CasesDetailPage/index.js +16 -16
- package/dist/pages/ColsAdminPage/index.js +77 -77
- package/dist/pages/ColsAdminPage/index.js.map +1 -1
- package/dist/pages/ConceptsAdminPage/index.js +31 -31
- package/dist/pages/DataCollectionVisualizationPage/index.js +1 -1
- package/dist/pages/DataCollectionVisualizationPage/index.js.map +1 -1
- package/dist/pages/DimsAdminPage/index.js +46 -46
- package/dist/pages/EventsDetailPage/index.js +18 -18
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js +120 -86
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js.map +1 -1
- package/dist/pages/RefColsAdminPage/index.js +94 -94
- package/dist/pages/RegionSetShapesAdminPage/index.js +26 -26
- package/dist/pages/RegionsAdminPage/index.js +33 -33
- package/dist/pages/UserEffectiveRightsAdminPage/index.js +56 -56
- package/dist/pages/UserEffectiveRightsAdminPage/index.js.map +1 -1
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js +45 -45
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js.map +1 -1
- package/dist/routes/index.js +93 -91
- package/dist/routes/index.js.map +1 -1
- package/dist/setup/setup.js +2 -3
- package/dist/setup/setup.js.map +1 -1
- package/dist/utils/CaseDbStandardConfigUtil/index.js +1 -5
- package/dist/utils/CaseDbStandardConfigUtil/index.js.map +1 -1
- package/dist/utils/MapUtil/index.js +1 -1
- package/dist/utils/MapUtil/index.js.map +1 -1
- package/package.json +36 -31
- package/dist/_chunks/PanelSeparator.js +0 -1666
- package/dist/_chunks/PanelSeparator.js.map +0 -1
- package/dist/_chunks/chunk-BV7QT456.js +0 -1162
- package/dist/_chunks/chunk-BV7QT456.js.map +0 -1
|
@@ -26,96 +26,129 @@ var b = () => {
|
|
|
26
26
|
id: t.id,
|
|
27
27
|
...e
|
|
28
28
|
})).data, []), A = d(async (e) => (await c.getInstance().organizationAccessCasePoliciesPostOne(e)).data, []), j = d((e) => T.getName(e), [T]), M = f(() => o().shape({
|
|
29
|
-
add_case: a().
|
|
30
|
-
|
|
29
|
+
add_case: a().when("is_private", {
|
|
30
|
+
is: !0,
|
|
31
|
+
otherwise: () => a().required(),
|
|
32
|
+
then: () => a().required().oneOf([!0], b`Add case must be enabled for private policies`)
|
|
33
|
+
}),
|
|
34
|
+
add_case_set: a().when("is_private", {
|
|
35
|
+
is: !0,
|
|
36
|
+
otherwise: () => a().required(),
|
|
37
|
+
then: () => a().required().oneOf([!0], b`Add case set must be enabled for private policies`)
|
|
38
|
+
}),
|
|
31
39
|
case_type_set_id: s().uuid4().required().max(100),
|
|
32
40
|
data_collection_id: s().uuid4().required().max(100),
|
|
33
41
|
is_active: a().required(),
|
|
34
42
|
is_private: a().required(),
|
|
35
43
|
organization_id: s().uuid4().required().max(100),
|
|
36
44
|
read_case_set: a().required(),
|
|
37
|
-
read_col_set_id: s().
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
read_col_set_id: s().when("is_private", {
|
|
46
|
+
is: !0,
|
|
47
|
+
otherwise: () => s().nullable().notRequired().max(100),
|
|
48
|
+
then: () => s().uuid4().required(b`Read column set is required for private policies`).max(100)
|
|
49
|
+
}),
|
|
50
|
+
remove_case: a().when("is_private", {
|
|
51
|
+
is: !0,
|
|
52
|
+
otherwise: () => a().required(),
|
|
53
|
+
then: () => a().required().oneOf([!0], b`Remove case must be enabled for private policies`)
|
|
54
|
+
}),
|
|
55
|
+
remove_case_set: a().when("is_private", {
|
|
56
|
+
is: !0,
|
|
57
|
+
otherwise: () => a().required(),
|
|
58
|
+
then: () => a().required().oneOf([!0], b`Remove case set must be enabled for private policies`)
|
|
59
|
+
}),
|
|
40
60
|
write_case_set: a().required(),
|
|
41
|
-
write_col_set_id: s().
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
61
|
+
write_col_set_id: s().when("is_private", {
|
|
62
|
+
is: !0,
|
|
63
|
+
otherwise: () => s().nullable().notRequired().max(100),
|
|
64
|
+
then: () => s().uuid4().required(b`Write column set is required for private policies`).max(100)
|
|
65
|
+
})
|
|
66
|
+
}), [b]), N = d((e, t, n) => {
|
|
67
|
+
t?.is_private === !0 && t?.add_case !== !0 && n.setValue("add_case", !0), t?.is_private === !0 && t?.add_case_set !== !0 && n.setValue("add_case_set", !0), t?.is_private === !0 && t?.remove_case !== !0 && n.setValue("remove_case", !0), t?.is_private === !0 && t?.remove_case_set !== !0 && n.setValue("remove_case_set", !0);
|
|
68
|
+
}, []), P = d((e, t) => {
|
|
69
|
+
let n = t?.is_private ?? e?.is_private ?? !1;
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
definition: u.AUTOCOMPLETE,
|
|
73
|
+
label: b`Organization`,
|
|
74
|
+
loading: x.isLoading,
|
|
75
|
+
name: "organization_id",
|
|
76
|
+
options: x.options
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
definition: u.AUTOCOMPLETE,
|
|
80
|
+
label: b`Data collection`,
|
|
81
|
+
loading: S.isLoading,
|
|
82
|
+
name: "data_collection_id",
|
|
83
|
+
options: S.options
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
definition: u.AUTOCOMPLETE,
|
|
87
|
+
label: b`Case type set`,
|
|
88
|
+
loading: w.isLoading,
|
|
89
|
+
name: "case_type_set_id",
|
|
90
|
+
options: w.options
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
definition: u.AUTOCOMPLETE,
|
|
94
|
+
label: b`Read column set`,
|
|
95
|
+
loading: C.isLoading,
|
|
96
|
+
name: "read_col_set_id",
|
|
97
|
+
options: C.options
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
definition: u.AUTOCOMPLETE,
|
|
101
|
+
label: b`Write column set`,
|
|
102
|
+
loading: C.isLoading,
|
|
103
|
+
name: "write_col_set_id",
|
|
104
|
+
options: C.options
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
definition: u.BOOLEAN,
|
|
108
|
+
disabled: n,
|
|
109
|
+
label: b`Add case`,
|
|
110
|
+
name: "add_case"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
definition: u.BOOLEAN,
|
|
114
|
+
disabled: n,
|
|
115
|
+
label: b`Remove case`,
|
|
116
|
+
name: "remove_case"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
definition: u.BOOLEAN,
|
|
120
|
+
disabled: n,
|
|
121
|
+
label: b`Add case set`,
|
|
122
|
+
name: "add_case_set"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
definition: u.BOOLEAN,
|
|
126
|
+
disabled: n,
|
|
127
|
+
label: b`Remove case set`,
|
|
128
|
+
name: "remove_case_set"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
definition: u.BOOLEAN,
|
|
132
|
+
label: b`Read case set`,
|
|
133
|
+
name: "read_case_set"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
definition: u.BOOLEAN,
|
|
137
|
+
label: b`Write case set`,
|
|
138
|
+
name: "write_case_set"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
definition: u.BOOLEAN,
|
|
142
|
+
label: b`Is private`,
|
|
143
|
+
name: "is_private"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
definition: u.BOOLEAN,
|
|
147
|
+
label: b`Is active`,
|
|
148
|
+
name: "is_active"
|
|
149
|
+
}
|
|
150
|
+
];
|
|
151
|
+
}, [
|
|
119
152
|
C.isLoading,
|
|
120
153
|
C.options,
|
|
121
154
|
w.isLoading,
|
|
@@ -125,7 +158,7 @@ var b = () => {
|
|
|
125
158
|
x.isLoading,
|
|
126
159
|
x.options,
|
|
127
160
|
b
|
|
128
|
-
]),
|
|
161
|
+
]), F = f(() => [
|
|
129
162
|
g.createOptionsColumn({
|
|
130
163
|
id: "organization_id",
|
|
131
164
|
name: b`Organization`,
|
|
@@ -198,13 +231,14 @@ var b = () => {
|
|
|
198
231
|
defaultSortDirection: "asc",
|
|
199
232
|
deleteOne: O,
|
|
200
233
|
fetchAll: D,
|
|
201
|
-
formFieldDefinitions:
|
|
234
|
+
formFieldDefinitions: P,
|
|
202
235
|
getName: j,
|
|
203
236
|
itemName: b`Organization access case policy`,
|
|
204
237
|
loadables: E,
|
|
238
|
+
onFormChange: N,
|
|
205
239
|
resourceQueryKeyBase: e.ORGANIZATION_ACCESS_CASE_POLICIES,
|
|
206
240
|
schema: M,
|
|
207
|
-
tableColumns:
|
|
241
|
+
tableColumns: F,
|
|
208
242
|
testIdAttributes: _.createAttributes("OrganizationAccessCasePoliciesAdminPage"),
|
|
209
243
|
title: b`Organization access case policies`,
|
|
210
244
|
updateOne: k
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n boolean,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbOrganizationAccessCasePolicy,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbAbacApi,\n CaseDbCommandName,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui-client-common/models/data';\nimport type { TableColumn } from '@gen-epix/ui-client-common/models/table';\nimport { CrudPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { useOrganizationOptionsQuery } from '@gen-epix/ui-client-common/dataHooks/useOrganizationsQuery';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\n\nimport { useColSetOptionsQuery } from '../../dataHooks/useColSetsQuery';\nimport { useCaseTypeSetOptionsQuery } from '../../dataHooks/useCaseTypeSetsQuery';\nimport { useDataCollectionOptionsQuery } from '../../dataHooks/useDataCollectionsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\nimport { useOrganizationCasePolicyNameFactory } from '../../hooks/useOrganizationCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbOrganizationAccessCasePolicy, 'case_type_set' | 'data_collection' | 'organization' | 'read_col_set' | 'write_col_set'>;\n\nexport const OrganizationAccessCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const organizationOptionsQuery = useOrganizationOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptionsQuery = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useOrganizationCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, organizationOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptionsQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbOrganizationAccessCasePolicy) => {\n return await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbOrganizationAccessCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbOrganizationAccessCasePolicy) => {\n return nameFactory.getName(item);\n }, [nameFactory]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n add_case: boolean().required(),\n add_case_set: boolean().required(),\n case_type_set_id: string().uuid4().required().max(100),\n data_collection_id: string().uuid4().required().max(100),\n is_active: boolean().required(),\n is_private: boolean().required(),\n organization_id: string().uuid4().required().max(100),\n read_case_set: boolean().required(),\n read_col_set_id: string().uuid4().required().max(100),\n remove_case: boolean().required(),\n remove_case_set: boolean().required(),\n write_case_set: boolean().required(),\n write_col_set_id: string().uuid4().nullable().notRequired().max(100),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Organization`,\n loading: organizationOptionsQuery.isLoading,\n name: 'organization_id',\n options: organizationOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'data_collection_id',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Case type set`,\n loading: caseTypeSetOptionsQuery.isLoading,\n name: 'case_type_set_id',\n options: caseTypeSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Read column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'read_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Write column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'write_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Add case`,\n name: 'add_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Remove case`,\n name: 'remove_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Add case set`,\n name: 'add_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Remove case set`,\n name: 'remove_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Read case set`,\n name: 'read_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Write case set`,\n name: 'write_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Is private`,\n name: 'is_private',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Is active`,\n name: 'is_active',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [colSetOptionsQuery.isLoading, colSetOptionsQuery.options, caseTypeSetOptionsQuery.isLoading, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, organizationOptionsQuery.isLoading, organizationOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbOrganizationAccessCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'organization_id', name: t`Organization`, options: organizationOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_col_set_id', name: t`Read column set`, options: colSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_col_set_id', name: t`Write column set`, options: colSetOptionsQuery.options }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_case_set', name: t`Write case set` }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_private', name: t`Private` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [colSetOptionsQuery.options, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.options, organizationOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbOrganizationAccessCasePolicy, CaseDbOrganizationAccessCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new organization access case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.OrganizationAccessCasePolicyCrudCommand}\n defaultSortByField={'organization_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Organization access case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.ORGANIZATION_ACCESS_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('OrganizationAccessCasePoliciesAdminPage')}\n title={t`Organization access case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n boolean,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbOrganizationAccessCasePolicy,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbAbacApi,\n CaseDbCommandName,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui-client-common/models/data';\nimport type { TableColumn } from '@gen-epix/ui-client-common/models/table';\nimport { CrudPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { useOrganizationOptionsQuery } from '@gen-epix/ui-client-common/dataHooks/useOrganizationsQuery';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\nimport type { UseFormReturn } from 'react-hook-form';\n\nimport { useColSetOptionsQuery } from '../../dataHooks/useColSetsQuery';\nimport { useCaseTypeSetOptionsQuery } from '../../dataHooks/useCaseTypeSetsQuery';\nimport { useDataCollectionOptionsQuery } from '../../dataHooks/useDataCollectionsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\nimport { useOrganizationCasePolicyNameFactory } from '../../hooks/useOrganizationCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbOrganizationAccessCasePolicy, 'case_type_set' | 'data_collection' | 'organization' | 'read_col_set' | 'write_col_set'>;\n\nexport const OrganizationAccessCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const organizationOptionsQuery = useOrganizationOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptionsQuery = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useOrganizationCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, organizationOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptionsQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbOrganizationAccessCasePolicy) => {\n return await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbOrganizationAccessCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbOrganizationAccessCasePolicy) => {\n return nameFactory.getName(item);\n }, [nameFactory]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n add_case: boolean().when('is_private', {\n is: true,\n otherwise: () => boolean().required(),\n then: () => boolean().required().oneOf([true], t`Add case must be enabled for private policies`),\n }),\n add_case_set: boolean().when('is_private', {\n is: true,\n otherwise: () => boolean().required(),\n then: () => boolean().required().oneOf([true], t`Add case set must be enabled for private policies`),\n }),\n case_type_set_id: string().uuid4().required().max(100),\n data_collection_id: string().uuid4().required().max(100),\n is_active: boolean().required(),\n is_private: boolean().required(),\n organization_id: string().uuid4().required().max(100),\n read_case_set: boolean().required(),\n read_col_set_id: string().when('is_private', {\n is: true,\n otherwise: () => string().nullable().notRequired().max(100),\n then: () => string().uuid4().required(t`Read column set is required for private policies`).max(100),\n }),\n remove_case: boolean().when('is_private', {\n is: true,\n otherwise: () => boolean().required(),\n then: () => boolean().required().oneOf([true], t`Remove case must be enabled for private policies`),\n }),\n remove_case_set: boolean().when('is_private', {\n is: true,\n otherwise: () => boolean().required(),\n then: () => boolean().required().oneOf([true], t`Remove case set must be enabled for private policies`),\n }),\n write_case_set: boolean().required(),\n write_col_set_id: string().when('is_private', {\n is: true,\n otherwise: () => string().nullable().notRequired().max(100),\n then: () => string().uuid4().required(t`Write column set is required for private policies`).max(100),\n }),\n });\n }, [t]);\n\n const onFormChange = useCallback((_item: CaseDbOrganizationAccessCasePolicy, values: FormFields, formMethods: UseFormReturn<FormFields>) => {\n if (values?.is_private === true && values?.add_case !== true) {\n formMethods.setValue('add_case', true);\n }\n if (values?.is_private === true && values?.add_case_set !== true) {\n formMethods.setValue('add_case_set', true);\n }\n if (values?.is_private === true && values?.remove_case !== true) {\n formMethods.setValue('remove_case', true);\n }\n if (values?.is_private === true && values?.remove_case_set !== true) {\n formMethods.setValue('remove_case_set', true);\n }\n }, []);\n\n const formFieldDefinitions = useCallback((item: CaseDbOrganizationAccessCasePolicy, values: FormFields): FormFieldDefinition<FormFields>[] => {\n const isPrivate = values?.is_private ?? item?.is_private ?? false;\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Organization`,\n loading: organizationOptionsQuery.isLoading,\n name: 'organization_id',\n options: organizationOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'data_collection_id',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Case type set`,\n loading: caseTypeSetOptionsQuery.isLoading,\n name: 'case_type_set_id',\n options: caseTypeSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Read column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'read_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Write column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'write_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n disabled: isPrivate,\n label: t`Add case`,\n name: 'add_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n disabled: isPrivate,\n label: t`Remove case`,\n name: 'remove_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n disabled: isPrivate,\n label: t`Add case set`,\n name: 'add_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n disabled: isPrivate,\n label: t`Remove case set`,\n name: 'remove_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Read case set`,\n name: 'read_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Write case set`,\n name: 'write_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Is private`,\n name: 'is_private',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Is active`,\n name: 'is_active',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [colSetOptionsQuery.isLoading, colSetOptionsQuery.options, caseTypeSetOptionsQuery.isLoading, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, organizationOptionsQuery.isLoading, organizationOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbOrganizationAccessCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'organization_id', name: t`Organization`, options: organizationOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_col_set_id', name: t`Read column set`, options: colSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_col_set_id', name: t`Write column set`, options: colSetOptionsQuery.options }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_case_set', name: t`Write case set` }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_private', name: t`Private` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [colSetOptionsQuery.options, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.options, organizationOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbOrganizationAccessCasePolicy, CaseDbOrganizationAccessCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new organization access case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.OrganizationAccessCasePolicyCrudCommand}\n defaultSortByField={'organization_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Organization access case policy`}\n loadables={loadables}\n onFormChange={onFormChange}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.ORGANIZATION_ACCESS_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('OrganizationAccessCasePoliciesAdminPage')}\n title={t`Organization access case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
|