- {kanbanStages.map((stage) => {
+ {kanbanStages.map((stage, idx) => {
const stageTasks = filteredKanbanTasks.filter(t => (t.kanbanStage || null) === stage.id);
return (
-
- {stage.name}
+ {
+ const updated = kanbanStages.map((s, i) => i === idx ? { ...s, color: e.target.value } : s);
+ saveKanbanStages(updated);
+ }}
+ title={language === "de" ? "Farbe ändern" : "Change color"}
+ style={{ width: "14px", height: "14px", border: "none", cursor: "pointer", padding: 0, borderRadius: "50%", flexShrink: 0 }}
+ />
+ {
+ const name = (e.target as HTMLElement).textContent || stage.name;
+ if (name !== stage.name) {
+ const updated = kanbanStages.map((s, i) => i === idx ? { ...s, name } : s);
+ saveKanbanStages(updated);
+ }
+ }}
+ onKeyDown={(e) => { if (e.key === "Enter") { e.preventDefault(); (e.target as HTMLElement).blur(); } }}
+ >
+ {stage.name}
+
{stageTasks.length}
+
{stageTasks.map(renderKanbanCard)}
@@ -6448,6 +6482,18 @@ export default function WeeklyView() {
);
})}
+ {/* Add stage column */}
+
{
+ const id = `stage-${Date.now()}`;
+ saveKanbanStages([...kanbanStages, { id, name: t.stageName, color: "#6b7280" }]);
+ }}
+ >
+
+
{/* Unassigned column */}
{(() => {
const unassigned = filteredKanbanTasks.filter(t => !t.kanbanStage && !t.completed);
@@ -11191,62 +11237,7 @@ function SettingsSidebar({
)}
- {/* Kanban Stages Settings */}
-
-
- {t.kanbanStages}
-
-
{t.kanbanStagesDesc}
-
- {kanbanStages.map((stage, idx) => (
-
- {
- const updated = kanbanStages.map((s, i) => i === idx ? { ...s, color: e.target.value } : s);
- saveKanbanStages(updated);
- }}
- style={{ width: "24px", height: "24px", border: "none", cursor: "pointer", padding: 0 }}
- />
- {
- const updated = kanbanStages.map((s, i) => i === idx ? { ...s, name: e.target.value } : s);
- saveKanbanStages(updated);
- }}
- onKeyDown={(e) => { if (e.key === "Enter") (e.target as HTMLInputElement).blur(); }}
- className="weekly-input"
- style={{ flex: 1, padding: "4px 8px", fontSize: "0.85rem" }}
- />
-
-
- ))}
-
-
-
+ {/* Kanban Stages — moved to inline kanban view */}
{/* Weather Settings */}