import { MILESTONE_STATUSES, MILESTONE_STATUS_LABELS, ROADMAP_ITEM_TYPE_LABELS, } from '../constants/status.js' const ITEM_TYPES = ['milestone', 'review_gate', 'maturity_stage'] const EDITABLE_STATUSES = MILESTONE_STATUSES.filter( (s) => !['reached', 'moved', 'discarded'].includes(s), ) export function RoadmapItemForm({ initial = {}, onSubmit, onCancel, busy = false, submitLabel = 'Anlegen', mode = 'create', }) { async function handleSubmit(e) { e.preventDefault() const form = e.target const payload = { title: form.title.value.trim(), goal_description: form.goal_description.value.trim(), target_date: form.target_date.value || undefined, item_type: form.item_type.value, sequencing_mode: initial.sequencing_mode || 'sequential', } if (mode === 'create') { const initialCriterion = form.initial_criterion_title?.value?.trim() if (initialCriterion) { payload.initial_criterion_title = initialCriterion } } if (mode === 'edit') { payload.status = form.status.value } await onSubmit(payload) } const statusLocked = ['reached', 'moved', 'discarded'].includes(initial.status) return (
{mode === 'create' && ( )}