Expand scoped demo analysis access
This commit is contained in:
+38
-25
@@ -90,9 +90,21 @@ const workspaceNavGroups: WorkspaceNavigationGroup[] = [
|
||||
{ label: 'Beheer', keys: ['overview', 'system'] },
|
||||
]
|
||||
|
||||
const guestWorkspaceKeys = new Set<WorkspaceKey>(['map', 'analysis'])
|
||||
const guestWorkspaceKeys = new Set<WorkspaceKey>([
|
||||
'overview',
|
||||
'data',
|
||||
'map',
|
||||
'assistant',
|
||||
'analysis',
|
||||
'ai',
|
||||
'exports',
|
||||
])
|
||||
const guestWorkspaceGroups: WorkspaceNavigationGroup[] = [
|
||||
{ label: 'Demowerkruimte', keys: ['map', 'analysis'] },
|
||||
{ label: 'Verkennen', keys: ['map', 'data'] },
|
||||
{ label: 'Vragen', keys: ['assistant'] },
|
||||
{ label: 'Analyseren', keys: ['analysis', 'ai'] },
|
||||
{ label: 'Afronden', keys: ['exports'] },
|
||||
{ label: 'Demo', keys: ['overview'] },
|
||||
]
|
||||
|
||||
interface WorkbenchAppProps {
|
||||
@@ -589,7 +601,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
demoWorkflowMessage,
|
||||
loadDemoWorkflow,
|
||||
} = useDemoWorkflow({
|
||||
restrictedMode: isGuest,
|
||||
restrictedMode: false,
|
||||
loadProjects,
|
||||
loadProjectData,
|
||||
loadDatasetDetails,
|
||||
@@ -618,7 +630,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
}, [isGuest, loadDemoWorkflow])
|
||||
|
||||
useWorkbenchBootstrap({
|
||||
restrictedMode: isGuest,
|
||||
restrictedMode: false,
|
||||
selectedProjectId,
|
||||
selectedDetectionRunId,
|
||||
detectionClassFilter,
|
||||
@@ -720,7 +732,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
}
|
||||
const openWorkflowGuidanceStep = (target: WorkspaceKey) => {
|
||||
if (isGuest && !guestWorkspaceKeys.has(target)) {
|
||||
setActiveWorkspace(target === 'exports' ? 'analysis' : 'map')
|
||||
setActiveWorkspace('map')
|
||||
return
|
||||
}
|
||||
if (target === 'map' && availableMapDatasets.length > 0 && !mapFeatureCollection) {
|
||||
@@ -894,9 +906,9 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
<ShieldCheck aria-hidden="true" />
|
||||
<div>
|
||||
<strong>Tijdelijke demowerkruimte</strong>
|
||||
<span>U verkent vooraf geladen voorbeelddata. Wijzigingen, nieuwe analyses en operatorfuncties zijn uitgeschakeld.</span>
|
||||
<span>Alle analysemodellen en werkfuncties zijn beschikbaar. Beheer, instellingen en blijvende gegevenswijzigingen blijven afgeschermd.</span>
|
||||
</div>
|
||||
<span className="guest-mode-badge">Alleen-lezen</span>
|
||||
<span className="guest-mode-badge">Analyse-toegang</span>
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
@@ -924,7 +936,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
<WorkspaceSignal workspace={activeWorkspace} />
|
||||
<div className="workspace-heading-actions">
|
||||
<p>{activeWorkspaceItem.description}</p>
|
||||
{!isGuest && activeWorkspace !== 'overview' ? (
|
||||
{activeWorkspace !== 'overview' ? (
|
||||
<button
|
||||
type="button"
|
||||
className={inspectorOpen ? 'inspector-toggle inspector-toggle-active' : 'inspector-toggle'}
|
||||
@@ -960,6 +972,15 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
projectId={selectedProjectId ?? undefined}
|
||||
loading={loadingDatasets}
|
||||
/>
|
||||
{isGuest ? (
|
||||
<div className="guest-readonly-card">
|
||||
<ShieldCheck aria-hidden="true" />
|
||||
<div>
|
||||
<strong>Bronnen bekijken zonder beheerrechten</strong>
|
||||
<span>De demo gebruikt dezelfde beschikbare databronnen. Projecten, gebieden en uploads worden alleen door de operator beheerd.</span>
|
||||
</div>
|
||||
</div>
|
||||
) : <>
|
||||
<ProjectPanel
|
||||
projects={projects}
|
||||
selectedProjectId={selectedProjectId}
|
||||
@@ -1002,12 +1023,13 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
onOpenDatasetInMap={openDatasetInMap}
|
||||
onOpenDatasetExport={openDatasetExport}
|
||||
/>
|
||||
</>}
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
<div className="workspace-persistent-map" hidden={activeWorkspace !== 'map'}>
|
||||
<MapWorkspace
|
||||
readOnly={isGuest}
|
||||
readOnly={false}
|
||||
selectedProjectId={selectedProjectId}
|
||||
projects={projects}
|
||||
areas={areas}
|
||||
@@ -1103,8 +1125,8 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
onRefreshProjectData={() => (
|
||||
selectedProjectId ? loadProjectData(selectedProjectId) : Promise.resolve(null)
|
||||
)}
|
||||
onOpenAssistant={() => setActiveWorkspace(isGuest ? 'analysis' : 'assistant')}
|
||||
onOpenExports={() => setActiveWorkspace(isGuest ? 'analysis' : 'exports')}
|
||||
onOpenAssistant={() => setActiveWorkspace('assistant')}
|
||||
onOpenExports={() => setActiveWorkspace('exports')}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1121,10 +1143,9 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
evidenceLoading={qualityEvidenceLoading}
|
||||
evidenceError={qualityEvidenceError}
|
||||
onOpenMapWorkspace={() => setActiveWorkspace('map')}
|
||||
onOpenAnalysisWorkspace={() => setActiveWorkspace(isGuest ? 'map' : 'ai')}
|
||||
onOpenAnalysisWorkspace={() => setActiveWorkspace('ai')}
|
||||
/>
|
||||
{!isGuest ? (
|
||||
<details className="secondary-analysis-disclosure">
|
||||
<details className="secondary-analysis-disclosure">
|
||||
<summary>
|
||||
<span>Historische vectorlagen vergelijken</span>
|
||||
<strong>Geavanceerd</strong>
|
||||
@@ -1144,16 +1165,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
onIncludeUnchangedChange={setChangeIncludeUnchanged}
|
||||
onRun={runChangeDetection}
|
||||
/>
|
||||
</details>
|
||||
) : (
|
||||
<div className="guest-readonly-card">
|
||||
<ShieldCheck aria-hidden="true" />
|
||||
<div>
|
||||
<strong>Controleerbaar voorbeeldresultaat</strong>
|
||||
<span>Deze kwaliteitsweergave gebruikt de vooraf berekende demo. Nieuwe vergelijkingen zijn alleen beschikbaar voor operators.</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</details>
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
@@ -1171,6 +1183,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
{activeWorkspace === 'ai' ? (
|
||||
<div className="workspace-grid workspace-grid-ai">
|
||||
<DetectionLab
|
||||
managementLocked={isGuest}
|
||||
detectionModels={detectionModels}
|
||||
modelAssets={modelAssets}
|
||||
loadingDetectionModels={loadingDetectionModels}
|
||||
@@ -1318,7 +1331,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
||||
) : null}
|
||||
</main>
|
||||
|
||||
{inspectorOpen && !isGuest ? (
|
||||
{inspectorOpen ? (
|
||||
<aside className="workbench-inspector" id="workbench-inspector" aria-label="Details van de huidige selectie">
|
||||
<WorkbenchInspector
|
||||
selectedProject={selectedProject}
|
||||
|
||||
Reference in New Issue
Block a user