Filter organization surfaces by View
This commit is contained in:
@@ -18,8 +18,11 @@ import {
|
||||
TableActionGroup,
|
||||
ToggleSwitch,
|
||||
hasScope,
|
||||
isViewSurfaceVisible,
|
||||
useEffectiveView,
|
||||
useUnsavedDraftGuard,
|
||||
usePlatformUiCapabilities,
|
||||
useViewSurfaces,
|
||||
type ApiSettings,
|
||||
type AuthInfo,
|
||||
type DataGridColumn,
|
||||
@@ -378,6 +381,8 @@ export default function OrganizationsPage({
|
||||
const [selectedUnitId, setSelectedUnitId] = useState("");
|
||||
const [changeRequestId, setChangeRequestId] = useState("");
|
||||
const functionActionCapabilities = usePlatformUiCapabilities<OrganizationFunctionActionsUiCapability>("organizations.functionActions");
|
||||
const effectiveView = useEffectiveView();
|
||||
const viewSurfaces = useViewSurfaces();
|
||||
|
||||
const canWriteModel = hasScope(auth, "organizations:model:write");
|
||||
const canWriteUnits = hasScope(auth, "organizations:unit:write");
|
||||
@@ -393,8 +398,11 @@ export default function OrganizationsPage({
|
||||
() => functionActionCapabilities
|
||||
.flatMap((capability) => capability.actions)
|
||||
.filter((contribution) => contributionVisible(auth, contribution))
|
||||
.filter((contribution) =>
|
||||
isViewSurfaceVisible(effectiveView, contribution.surfaceId, viewSurfaces)
|
||||
)
|
||||
.sort((left, right) => (left.order ?? 100) - (right.order ?? 100)),
|
||||
[auth, functionActionCapabilities]
|
||||
[auth, effectiveView, functionActionCapabilities, viewSurfaces]
|
||||
);
|
||||
const unitsByParentId = useMemo(() => {
|
||||
const mapped = new Map<string, OrganizationUnitItem[]>();
|
||||
|
||||
@@ -23,6 +23,7 @@ const organizationAdminSections: AdminSectionsUiCapability = {
|
||||
sections: [
|
||||
{
|
||||
id: "tenant-organization-settings",
|
||||
surfaceId: "organizations.admin.tenant",
|
||||
label: "i18n:govoplan-organizations.organizations.220edf64",
|
||||
group: "TENANT",
|
||||
order: 85,
|
||||
@@ -45,6 +46,15 @@ export const organizationsModule: PlatformWebModule = {
|
||||
dependencies: ["access"],
|
||||
optionalDependencies: ["admin"],
|
||||
translations,
|
||||
viewSurfaces: [
|
||||
{
|
||||
id: "organizations.admin.tenant",
|
||||
moduleId: "organizations",
|
||||
kind: "section",
|
||||
label: "Organizations administration",
|
||||
order: 85
|
||||
}
|
||||
],
|
||||
navItems: [
|
||||
{
|
||||
to: "/organizations",
|
||||
|
||||
Reference in New Issue
Block a user