Hallo,
für die Eingabekomponente CMS_INPUT_IMAGEMAP sollte es möglich sein, neue Areas per API und RemoteFormData anzulegen. Generell funktioniert das Anlegen neuer Areas per API, allerdings nur bei Zugriff über FormData. Damit können neue Areas per Script oder Module angelegt werden, allerdings darf in diesem Fall das Element nicht im Bearbeitungsmodus geöffnet sein. Weiterhin muss im Script/Module ein "save" erfolgen, so dass der User keine Möglichkeit hat zu entscheiden, ob er die neu angelegten Areas speichern oder verwerfen möchte. Ggf. müsste er die Versionshistorie nutzen, um eine alte Version wieder herzustellen.
Beim Zugriff und Anlegen von Areas über RemoteFormData würden diese Nachteile entfallen. Der User kann das Element im Bearbeitungsmodus geöffnet lassen, führt das Script/Module aus, um die Areas anzulegen und kann/muss anschließend selbst entscheiden, ob die Änderungen gespeichert oder verworfen werden sollen.
Bsp. Code zum Anlegen einer Area über RemoteFormData:
OpenElementDataFormOperation openElementDataFormOperation = operationAgent.getOperation(OpenElementDataFormOperation.TYPE);
openElementDataFormOperation.setOpenEditable(true);
RemoteFormData remoteFormData = openElementDataFormOperation.perform(image_teaser);
RemoteFormField<?> formfield = remoteFormData.get(selectedLangauge, "st_imageMap_1x5");
MappingMedium mappingMedium = (MappingMedium) formfield.get();
RectArea rect = new RectArea();
rect.setLeftTop(10, 10);
rect.setRightBottom(50, 50);
List<Area> areas = mappingMedium.getAreas();
areas.add(rect);
mappingMedium.setAreas(areas);
Die Area wird hinzugefügt, allerdings wird die Area in der grafischen Darstellung der ImageMap nicht sichtbar (vermutlich fehlt hier ein Repaint oder Update der View, welches nicht manuell ausgelöst werden kann). Beim Speichern werden die hinzugefügten Areas wieder verworfen, da sie in der grafischen Darstellung nicht angezeigt werden und damit von FirstSpirit vermutlich als gelöscht angesehen werden.
Festgestellt haben wir das Problem mit der Server Version 5.1.106. und 5.1.209. Lauf FirstSprit HelpDesk (Anfrage #13537) handelt es sich dabei nicht um ein Bug, sondern um ein nicht umgesetztes Feature. Aktuell gibt es nur die Möglichkeit per API lesend auf Areas zuzugreifen. Deshalb dieser FR mit der Bitte schreibenden Zugriff auf Areas per API und RemoteFormData zu ermöglichen.
Vielen Dank und viele Grüße.