/// // Marker dürfen einen eigenen Text und ein eigenes Icon tragen. // // Bisher musste jede Meldung auf einen vorgefertigten Flag-Typ zeigen. Auf // dem Trail passt aber nicht immer einer: „Wespennest am Anlieger" legt // niemand vorher als Typ an. Deshalb: // // - flag ist nicht mehr Pflicht. Fehlt es, trägt der Marker seinen eigenen // Text in label. // - icon steht am Marker selbst. Beim Wählen eines Typs kommt dessen Icon als // Vorschlag; ändern lässt es sich trotzdem, denn dieselbe Art Hindernis // sieht nicht immer gleich aus. // // Bestehende Marker bleiben unverändert gültig: Sie haben ein flag und weder // label noch icon, die Anzeige fällt dann auf den Typ zurück. migrate((app) => { const markers = app.findCollectionByNameOrId('trail_markers') const flag = markers.fields.getByName('flag') if (flag) { flag.required = false } if (!markers.fields.getByName('label')) { markers.fields.add(new Field({ id: 'text_marker_label', name: 'label', type: 'text', max: 120, })) } if (!markers.fields.getByName('icon')) { markers.fields.add(new Field({ id: 'text_marker_icon', name: 'icon', type: 'text', max: 60, })) } app.save(markers) }, (app) => { const markers = app.findCollectionByNameOrId('trail_markers') const flag = markers.fields.getByName('flag') if (flag) { flag.required = true } markers.fields.removeByName('label') markers.fields.removeByName('icon') app.save(markers) })