2026-04-27 11:53:25 +02:00
|
|
|
import React, { useState } from 'react'
|
2026-04-27 11:32:30 +02:00
|
|
|
import { Navigate } from 'react-router-dom'
|
|
|
|
|
import { useAuth } from '../context/AuthContext'
|
|
|
|
|
import AdminPageNav from '../components/AdminPageNav'
|
2026-04-27 11:53:25 +02:00
|
|
|
import SkillsCatalogAdmin from '../components/admin/SkillsCatalogAdmin'
|
|
|
|
|
import MaturityModelsAdminPanel from '../components/admin/MaturityModelsAdminPanel'
|
2026-04-27 11:42:03 +02:00
|
|
|
|
2026-04-27 11:32:30 +02:00
|
|
|
export default function AdminMaturityModelsPage() {
|
|
|
|
|
const { user } = useAuth()
|
|
|
|
|
const isAdmin = user?.role === 'admin' || user?.role === 'superadmin'
|
2026-04-27 11:53:25 +02:00
|
|
|
const [tab, setTab] = useState('catalog')
|
2026-04-27 11:32:30 +02:00
|
|
|
|
|
|
|
|
if (!isAdmin) {
|
|
|
|
|
return <Navigate to="/" replace />
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
2026-04-27 11:53:25 +02:00
|
|
|
<div className="admin-shell admin-page">
|
2026-04-27 11:32:30 +02:00
|
|
|
<AdminPageNav />
|
|
|
|
|
|
2026-04-27 11:53:25 +02:00
|
|
|
<header className="admin-maturity-header">
|
|
|
|
|
<h1 className="admin-maturity-header__title">Admin: Fähigkeitsmatrix und Katalog</h1>
|
|
|
|
|
<p className="admin-maturity-header__subtitle muted">
|
|
|
|
|
Hierarchie der Fähigkeiten und Reifegradmodelle mit Matrix-Pflege.
|
|
|
|
|
</p>
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
<div className="admin-tabs" role="tablist" aria-label="Bereiche Fähigkeiten">
|
|
|
|
|
<button
|
|
|
|
|
type="button"
|
|
|
|
|
role="tab"
|
|
|
|
|
aria-selected={tab === 'catalog'}
|
|
|
|
|
className={'admin-tabs__tab' + (tab === 'catalog' ? ' admin-tabs__tab--active' : '')}
|
|
|
|
|
onClick={() => setTab('catalog')}
|
|
|
|
|
>
|
|
|
|
|
Katalog und Hierarchie
|
|
|
|
|
</button>
|
|
|
|
|
<button
|
|
|
|
|
type="button"
|
|
|
|
|
role="tab"
|
|
|
|
|
aria-selected={tab === 'models'}
|
|
|
|
|
className={'admin-tabs__tab' + (tab === 'models' ? ' admin-tabs__tab--active' : '')}
|
|
|
|
|
onClick={() => setTab('models')}
|
|
|
|
|
>
|
|
|
|
|
Reifegradmodelle
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
2026-04-27 11:32:30 +02:00
|
|
|
|
2026-04-27 11:53:25 +02:00
|
|
|
<div className="admin-tabs__panel" role="tabpanel">
|
|
|
|
|
{tab === 'catalog' ? <SkillsCatalogAdmin /> : <MaturityModelsAdminPanel />}
|
2026-04-27 11:32:30 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|