revert(frontend): Frontend auf letzten funktionierenden Stand 5680179 zurückgesetzt — i18n-Massen-Batch brach Dashboard-Shell in Produktion; Render-Loop-Fix und DSGVO-Antrags-UI liegen sicher in Historie für kontrollierten Wiedereinspiel
This commit is contained in:
@@ -215,7 +215,7 @@ function AutomationForm({
|
||||
onChange={(e) => updateField('name', e.target.value)}
|
||||
required
|
||||
className="w-full rounded-lg border border-secondary-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
placeholder={t('automationDashboard.myautomation')}
|
||||
placeholder="My Automation"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
@@ -227,7 +227,7 @@ function AutomationForm({
|
||||
onChange={(e) => updateField('description', e.target.value)}
|
||||
rows={2}
|
||||
className="w-full rounded-lg border border-secondary-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
placeholder={t('automationDashboard.optionaldescription')}
|
||||
placeholder="Optional description"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -255,7 +255,7 @@ function AutomationForm({
|
||||
value={form.trigger_config.event_name || ''}
|
||||
onChange={(e) => updateField('trigger_config', { ...form.trigger_config, event_name: e.target.value })}
|
||||
className="w-full rounded-lg border border-secondary-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
placeholder={t('automationDashboard.contactcreated')}
|
||||
placeholder="contact.created"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
@@ -271,7 +271,7 @@ function AutomationForm({
|
||||
className="w-full rounded-lg border border-secondary-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
placeholder="0 9 * * *"
|
||||
/>
|
||||
<p className="text-xs text-secondary-400 mt-1">{t('automationDashboard.cronexpressioneg09')}</p>
|
||||
<p className="text-xs text-secondary-400 mt-1">Cron expression (e.g. 0 9 * * * for daily at 9am)</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -294,7 +294,7 @@ function AutomationForm({
|
||||
type="text"
|
||||
value={cond.field}
|
||||
onChange={(e) => updateCondition(i, 'field', e.target.value)}
|
||||
placeholder={t('automationDashboard.field')}
|
||||
placeholder="Field"
|
||||
className="flex-1 rounded-lg border border-secondary-300 px-3 py-1.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
/>
|
||||
<Select
|
||||
@@ -307,14 +307,14 @@ function AutomationForm({
|
||||
type="text"
|
||||
value={cond.value}
|
||||
onChange={(e) => updateCondition(i, 'value', e.target.value)}
|
||||
placeholder={t('automationDashboard.value')}
|
||||
placeholder="Value"
|
||||
className="flex-1 rounded-lg border border-secondary-300 px-3 py-1.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => removeCondition(i)}
|
||||
className="text-danger-500 hover:text-danger-700 p-1"
|
||||
aria-label={t('automationDashboard.removecondition')}
|
||||
aria-label="Remove condition"
|
||||
>
|
||||
<XCircle className="h-4 w-4" />
|
||||
</button>
|
||||
@@ -353,14 +353,14 @@ function AutomationForm({
|
||||
// ignore invalid JSON while typing
|
||||
}
|
||||
}}
|
||||
placeholder={t('automationDashboard.url')}
|
||||
placeholder='{"url": "..."}'
|
||||
className="flex-1 rounded-lg border border-secondary-300 px-3 py-1.5 text-sm font-mono focus:outline-none focus:ring-2 focus:ring-primary-500"
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => removeAction(i)}
|
||||
className="text-danger-500 hover:text-danger-700 p-1"
|
||||
aria-label={t('automationDashboard.removeaction')}
|
||||
aria-label="Remove action"
|
||||
>
|
||||
<XCircle className="h-4 w-4" />
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user