feat: Präsentationsmodus (Schloss-Button) + Version 1.3.5
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 16m59s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 16m59s
This commit is contained in:
@@ -50,7 +50,8 @@ export default function AppPage() {
|
||||
const [isFullscreen, setIsFullscreen] = useState(false)
|
||||
const [auditLog, setAuditLog] = useState<{ time: string; action: string }[]>([])
|
||||
const [isAuditOpen, setIsAuditOpen] = useState(false)
|
||||
|
||||
const [presentationLocked, setPresentationLocked] = useState(false)
|
||||
|
||||
const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false)
|
||||
const [lastMapScreenshot, setLastMapScreenshot] = useState<string>('')
|
||||
const [defaultSymbolScale, setDefaultSymbolScale] = useState(1.5)
|
||||
@@ -375,7 +376,7 @@ export default function AppPage() {
|
||||
|
||||
const roleCanEdit = user ? (user.role === 'SERVER_ADMIN' || user.role === 'TENANT_ADMIN' || user.role === 'OPERATOR') : false
|
||||
// User can only edit if they have the role AND they hold the editing lock (or no one is editing)
|
||||
const canEdit = roleCanEdit && (isEditingByMe || !editingBy)
|
||||
const canEdit = !presentationLocked && roleCanEdit && (isEditingByMe || !editingBy)
|
||||
const isReadOnly = !!editingBy && !isEditingByMe
|
||||
|
||||
// Auto-save: localStorage persistence + debounced API save + beacon on unload
|
||||
@@ -806,6 +807,14 @@ export default function AppPage() {
|
||||
userRole={user?.role}
|
||||
onLogout={logout}
|
||||
onStartTour={() => { resetOnboardingTour(); setShowTour(true) }}
|
||||
presentationLocked={presentationLocked}
|
||||
onTogglePresentationLock={() => {
|
||||
const next = !presentationLocked
|
||||
setPresentationLocked(next)
|
||||
if (next && isEditingByMe) {
|
||||
handleStopEditing()
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
||||
{/* Offline banner */}
|
||||
|
||||
Reference in New Issue
Block a user