From 60dd58d31ff32fe51f4eb26e7d0c16675a088f02 Mon Sep 17 00:00:00 2001 From: orejudo Date: Sat, 4 Jul 2026 00:09:41 +0200 Subject: [PATCH] =?UTF-8?q?Vorname/Nachname=20f=C3=BCr=20Mitarbeiter,=20Au?= =?UTF-8?q?fgaben-Duplizierung,=20Zeitstrahl=20im=20Zeitplan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - employees: name-Feld in first_name/last_name aufgeteilt (Schema, API, Formular, alle Namensanzeigen) - Aufgaben können mit neuem Start-/Enddatum dupliziert werden (POST /api/tasks/:id/duplicate übernimmt Name, Stunden, Status und Zuweisungen 1:1, nur die Termine ändern sich) - Zeitplan zeigt jetzt einen Zeitstrahl mit Kalenderwochen und Tagesnummern oberhalb der Projekt-Balken --- client/src/EmployeesPanel.vue | 15 +++++---- client/src/ProjectsPanel.vue | 41 +++++++++++++++++++------ client/src/SchedulePanel.vue | 31 ++++++++++++++++++- client/src/TeamsPanel.vue | 5 +-- client/src/api.js | 1 + client/src/helpers.js | 45 +++++++++++++++++++++++++++ client/src/panel.css | 37 +++++++++++++++++++++++ client/src/store.js | 11 +++++-- server/db.js | 12 ++++---- server/index.js | 57 ++++++++++++++++++++++++++++------- server/schema.sql | 3 +- 11 files changed, 219 insertions(+), 39 deletions(-) diff --git a/client/src/EmployeesPanel.vue b/client/src/EmployeesPanel.vue index e6f0f21..e364dcf 100644 --- a/client/src/EmployeesPanel.vue +++ b/client/src/EmployeesPanel.vue @@ -2,12 +2,12 @@ import { reactive } from 'vue'; import { store } from './store.js'; -const newEmployee = reactive({ name: '', email: '', role: '', weekly_capacity_hours: 40 }); +const newEmployee = reactive({ first_name: '', last_name: '', email: '', role: '', weekly_capacity_hours: 40 }); async function addEmployee() { - if (!newEmployee.name) return; + if (!newEmployee.first_name || !newEmployee.last_name) return; await store.createEmployee({ ...newEmployee }); - Object.assign(newEmployee, { name: '', email: '', role: '', weekly_capacity_hours: 40 }); + Object.assign(newEmployee, { first_name: '', last_name: '', email: '', role: '', weekly_capacity_hours: 40 }); } @@ -15,7 +15,8 @@ async function addEmployee() {

Neuer Mitarbeiter

- + + @@ -28,7 +29,8 @@ async function addEmployee() { - + + @@ -37,7 +39,8 @@ async function addEmployee() { - + + diff --git a/client/src/ProjectsPanel.vue b/client/src/ProjectsPanel.vue index d12f9aa..ed602ed 100644 --- a/client/src/ProjectsPanel.vue +++ b/client/src/ProjectsPanel.vue @@ -1,11 +1,12 @@ diff --git a/client/src/SchedulePanel.vue b/client/src/SchedulePanel.vue index aa12202..22f667b 100644 --- a/client/src/SchedulePanel.vue +++ b/client/src/SchedulePanel.vue @@ -1,10 +1,11 @@
NameVornameNachname E-Mail Rolle Kapazität (Std/Woche)
{{ e.name }}{{ e.first_name }}{{ e.last_name }} {{ e.email }} {{ e.role }} {{ e.weekly_capacity_hours }}