feat: unified ContentCreation tool (Object + Statement creation merged)
- New ContentCreation.jsx: 3-column layout Left: object list + "+ Objekt hinzufügen" button Center: dual-mode canvas (draw OR highlight) Right: ObjectAddPanel (mode=add) or PairsPanel (mode=objectId) - After saving object → auto-switches to PairsPanel for that object - All ObjectCreation + StatementCreation logic merged into one page - All pictures loaded (no objects_created filter) - "Objekte abgeschlossen" button marks picture (visual badge) - ContentHub: 2 tiles (Content Erstellen + Veröffentlichen placeholder) - App.jsx: /content/creation route, old /content/objects + /content/statements removed Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,7 @@ import Dashboard from './pages/Dashboard';
|
|||||||
import DatabaseAdmin from './pages/DatabaseAdmin';
|
import DatabaseAdmin from './pages/DatabaseAdmin';
|
||||||
import TableView from './pages/TableView';
|
import TableView from './pages/TableView';
|
||||||
import ContentHub from './pages/ContentHub';
|
import ContentHub from './pages/ContentHub';
|
||||||
import ObjectCreation from './pages/ObjectCreation';
|
import ContentCreation from './pages/ContentCreation';
|
||||||
import StatementCreation from './pages/StatementCreation';
|
|
||||||
|
|
||||||
function RequireAuth({ children }) {
|
function RequireAuth({ children }) {
|
||||||
const user = getUser();
|
const user = getUser();
|
||||||
@@ -23,8 +22,7 @@ export default function App() {
|
|||||||
<Route path="/db" element={<RequireAuth><DatabaseAdmin /></RequireAuth>} />
|
<Route path="/db" element={<RequireAuth><DatabaseAdmin /></RequireAuth>} />
|
||||||
<Route path="/db/:tableKey" element={<RequireAuth><TableView /></RequireAuth>} />
|
<Route path="/db/:tableKey" element={<RequireAuth><TableView /></RequireAuth>} />
|
||||||
<Route path="/content" element={<RequireAuth><ContentHub /></RequireAuth>} />
|
<Route path="/content" element={<RequireAuth><ContentHub /></RequireAuth>} />
|
||||||
<Route path="/content/objects" element={<RequireAuth><ObjectCreation /></RequireAuth>} />
|
<Route path="/content/creation" element={<RequireAuth><ContentCreation /></RequireAuth>} />
|
||||||
<Route path="/content/statements" element={<RequireAuth><StatementCreation /></RequireAuth>} />
|
|
||||||
<Route path="*" element={<Navigate to="/" replace />} />
|
<Route path="*" element={<Navigate to="/" replace />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
|
|||||||
1162
src/pages/ContentCreation.jsx
Normal file
1162
src/pages/ContentCreation.jsx
Normal file
File diff suppressed because it is too large
Load Diff
@@ -3,27 +3,19 @@ import Layout from '../components/Layout';
|
|||||||
|
|
||||||
const TOOLS = [
|
const TOOLS = [
|
||||||
{
|
{
|
||||||
key: 'objects',
|
key: 'creation',
|
||||||
title: 'Object Creation',
|
title: 'Content Erstellen',
|
||||||
icon: '🖼️',
|
icon: '🎨',
|
||||||
description: 'Bilder durchblättern, Bereiche einzeichnen und Objekte mit Wörtern verknüpfen.',
|
description: 'Objekte in Bildern einzeichnen, Wörter verknüpfen und Pairs mit Fragen & Aussagen erstellen.',
|
||||||
path: '/content/objects',
|
|
||||||
ready: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'statements',
|
|
||||||
title: 'Statement Creation',
|
|
||||||
icon: '💬',
|
|
||||||
description: 'Pairs mit Fragen und Aussagen erstellen, Wörter im Satz markieren.',
|
|
||||||
path: '/content/statements',
|
|
||||||
ready: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'content',
|
|
||||||
title: 'Content Creation',
|
|
||||||
icon: '✨',
|
|
||||||
description: 'Inhalte zusammenstellen und veröffentlichen.',
|
|
||||||
path: '/content/creation',
|
path: '/content/creation',
|
||||||
|
ready: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'publish',
|
||||||
|
title: 'Veröffentlichen',
|
||||||
|
icon: '✨',
|
||||||
|
description: 'Fertige Pairs prüfen, freigeben und veröffentlichen.',
|
||||||
|
path: '/content/publish',
|
||||||
ready: false,
|
ready: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@@ -36,7 +28,7 @@ export default function ContentHub() {
|
|||||||
<div className="max-w-3xl mx-auto">
|
<div className="max-w-3xl mx-auto">
|
||||||
<h1 className="text-2xl font-bold text-slate-800 mb-2">Content Verwaltung</h1>
|
<h1 className="text-2xl font-bold text-slate-800 mb-2">Content Verwaltung</h1>
|
||||||
<p className="text-slate-500 mb-8">Wähle ein Tool um loszulegen.</p>
|
<p className="text-slate-500 mb-8">Wähle ein Tool um loszulegen.</p>
|
||||||
<div className="grid grid-cols-1 sm:grid-cols-3 gap-5">
|
<div className="grid grid-cols-1 sm:grid-cols-2 gap-5">
|
||||||
{TOOLS.map(tool => (
|
{TOOLS.map(tool => (
|
||||||
<button
|
<button
|
||||||
key={tool.key}
|
key={tool.key}
|
||||||
|
|||||||
Reference in New Issue
Block a user