de35eaa3ea
QR-Stempeln aus CompanySettingsPage in eigene Seite /settings/qr-stamp ausgelagert, eigener Nav-Eintrag 'QR-Stempeln' (COMPANY_ADMIN/SUPER_ADMIN). Toggle speichert jetzt eigenständig (PATCH public_stamp_enabled). Neuer Tablet-Link-Bereich: Direkt-URL kopieren + 'Auf diesem Gerät öffnen' zum dauerhaften Einrichten eines Tablets am Eingang (gleicher Token wie Handy-QR). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
76 lines
4.3 KiB
TypeScript
76 lines
4.3 KiB
TypeScript
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
|
|
import { AuthProvider } from './context/AuthContext'
|
|
import { ProtectedRoute } from './components/ProtectedRoute'
|
|
import { LoginPage } from './pages/LoginPage'
|
|
import { RegisterPage } from './pages/RegisterPage'
|
|
import { DashboardPage } from './pages/DashboardPage'
|
|
import { UsersPage } from './pages/UsersPage'
|
|
import { LdapSettingsPage } from './pages/LdapSettingsPage'
|
|
import { TimeTrackingPage } from './pages/TimeTrackingPage'
|
|
import { AbsencesPage } from './pages/AbsencesPage'
|
|
import { SmtpSettingsPage } from './pages/SmtpSettingsPage'
|
|
import { ForgotPasswordPage } from './pages/ForgotPasswordPage'
|
|
import { ResetPasswordPage } from './pages/ResetPasswordPage'
|
|
import { WorkSchedulePage } from './pages/WorkSchedulePage'
|
|
import { CalendarPage } from './pages/CalendarPage'
|
|
import { ReportsPage } from './pages/ReportsPage'
|
|
import { CaldavSettingsPage } from './pages/CaldavSettingsPage'
|
|
import { AbsenceTypesPage } from './pages/AbsenceTypesPage'
|
|
import ImportPage from './pages/ImportPage'
|
|
import UserImportPage from './pages/UserImportPage'
|
|
import { CompanySettingsPage } from './pages/CompanySettingsPage'
|
|
import { QrStampSettingsPage } from './pages/QrStampSettingsPage'
|
|
import { ProfilePage } from './pages/ProfilePage'
|
|
import { KioskDevicesPage } from './pages/KioskDevicesPage'
|
|
import { AuditLogPage } from './pages/AuditLogPage'
|
|
import { KioskSetupPage } from './pages/KioskSetupPage'
|
|
import { KioskStampPage } from './pages/KioskStampPage'
|
|
import { PublicStampPage } from './pages/PublicStampPage'
|
|
import { MobilePage } from './pages/mobile/MobilePage'
|
|
import { MobileLoginPage } from './pages/mobile/MobileLoginPage'
|
|
import { SpecialAssignmentsPage } from './pages/SpecialAssignmentsPage'
|
|
import { HoursPayoutPage } from './pages/HoursPayoutPage'
|
|
|
|
export default function App() {
|
|
return (
|
|
<BrowserRouter>
|
|
<AuthProvider>
|
|
<Routes>
|
|
<Route path='/login' element={<LoginPage />} />
|
|
<Route path='/register' element={<RegisterPage />} />
|
|
<Route path='/forgot-password' element={<ForgotPasswordPage />} />
|
|
<Route path='/auth/reset-password' element={<ResetPasswordPage />} />
|
|
<Route path='/kiosk/setup' element={<KioskSetupPage />} />
|
|
<Route path='/kiosk' element={<KioskStampPage />} />
|
|
<Route path='/stamp' element={<PublicStampPage />} />
|
|
<Route path='/mobile' element={<MobilePage />} />
|
|
<Route path='/mobile/login' element={<MobileLoginPage />} />
|
|
<Route element={<ProtectedRoute />}>
|
|
<Route path='/dashboard' element={<DashboardPage />} />
|
|
<Route path='/time' element={<TimeTrackingPage />} />
|
|
<Route path='/absences' element={<AbsencesPage />} />
|
|
<Route path='/users' element={<UsersPage />} />
|
|
<Route path='/users/import' element={<UserImportPage />} />
|
|
<Route path='/settings/ldap' element={<LdapSettingsPage />} />
|
|
<Route path='/settings/smtp' element={<SmtpSettingsPage />} />
|
|
<Route path='/work-schedules' element={<WorkSchedulePage />} />
|
|
<Route path='/calendar' element={<CalendarPage />} />
|
|
<Route path='/reports' element={<ReportsPage />} />
|
|
<Route path='/settings/caldav' element={<CaldavSettingsPage />} />
|
|
<Route path='/settings/absence-types' element={<AbsenceTypesPage />} />
|
|
<Route path='/settings/import' element={<ImportPage />} />
|
|
<Route path='/settings/company' element={<CompanySettingsPage />} />
|
|
<Route path='/settings/kiosk' element={<KioskDevicesPage />} />
|
|
<Route path='/settings/qr-stamp' element={<QrStampSettingsPage />} />
|
|
<Route path='/settings/audit-log' element={<AuditLogPage />} />
|
|
<Route path='/hr/special-assignments' element={<SpecialAssignmentsPage />} />
|
|
<Route path='/hr/payouts' element={<HoursPayoutPage />} />
|
|
<Route path='/profile' element={<ProfilePage />} />
|
|
</Route>
|
|
<Route path='*' element={<Navigate to='/login' replace />} />
|
|
</Routes>
|
|
</AuthProvider>
|
|
</BrowserRouter>
|
|
)
|
|
}
|