Raumstempel-Stile: Active-Stil-Tracking

UserString dossier_raum_stil_id auf der raum_outline. Wird gesetzt:
- bei APPLY_RAUM_STIL → schreibt sid auf alle Ziel-Raeume
- bei SAVE_RAUM_STIL mit applyToIds=[…] → schreibt neue sid auf
  uebergebene Raeume (Frontend nutzt das beim "+ Speichern…"-Flow um
  den aktuellen Raum mit dem neuen Stil zu verknuepfen)

_read_meta liest stil_id mit → State-Emit feldet "stilId" zum Raum.
Frontend's Stil-Dropdown markiert dadurch automatisch den aktiven Stil
(via activeStilId = raum.stilId).

Manuelle Edits (UPDATE_ELEMENT) touchen stil_id NICHT — User kann
seinen Stil leicht tweaken ohne dass die Verknuepfung verloren geht.
Wenn der Tweak weit weg ist, kann er den Stil aktualisieren via
"+ Aktuelle Settings als Stil speichern" (uebernimmt dann mit der
NEUEN stil_id).
This commit is contained in:
2026-05-26 23:23:42 +02:00
parent 3c28d2e29c
commit eff0878f53
3 changed files with 40 additions and 5 deletions
+1 -1
View File
@@ -908,7 +908,7 @@ function RaumProperties({ raum, geschosse, onUpdate, onDelete, hatchPatterns, fo
fuellung: raum.fuellung || '',
showSia: !!raum.showSia,
layout: Array.isArray(raum.layout) ? raum.layout : [],
})
}, [raum.id]) // direkt aktuellen Raum mit der neuen Stil-ID verknuepfen
return
}
if (val === '__delete__') {
+3 -2
View File
@@ -244,8 +244,9 @@ export function saveOeffStyle(name, settings) {
}
export function deleteOeffStyle(id) { send('DELETE_OEFF_STYLE', { id }) }
// Raumstempel-Stile (Presets pro Doc)
export function saveRaumStil(id, name, settings) {
send('SAVE_RAUM_STIL', { id, name, settings })
export function saveRaumStil(id, name, settings, applyToIds) {
send('SAVE_RAUM_STIL', { id, name, settings,
applyToIds: applyToIds || [] })
}
export function deleteRaumStil(id) { send('DELETE_RAUM_STIL', { id }) }
export function applyRaumStil(stilId, ids) {