Release Notes FirstSpirit™ 2020.5

Release Notes

FirstSpirit™ 2020.5

1 Administration

1.1 Browser-Kompatibilitäten

FirstSpirit ist als Enterprise Content Management System für den Einsatz in komplexen IT-Landschaften konzipiert und unterstützt eine Vielzahl von Betriebssystemen, Java-Laufzeitumgebungen und Datenbanken. Um eine hohe Softwarequalität zu gewährleisten und sicherzustellen, dass FirstSpirit in allen unterstützten Konfigurationen lauffähig ist, werden im Rahmen der Qualitätssicherung regelmäßige Tests durchgeführt. Die Fülle an unterstützten Fremdkomponenten, kurze Release-Zyklen sowie Kombinations- und Konfigurationsmöglichkeiten der Fremdkomponenten führen jedoch zu einer extrem hohen Testkomplexität.

Aufgrund dessen gilt: generell unterstützt FirstSpirit immer die aktuellste Version einer Fremdkomponente. Sie werden seitens der e-Spirit AG regelmäßig getestet und Maßnahmen zur Behebung eventueller Fehler und Inkompatibilitäten ergriffen. Bei der Betrachtung und Auswahl der für den Betrieb mit FirstSpirit unterstützten Fremdkomponenten berücksichtigt e-Spirit darüber hinaus verstärkt Komponenten, die möglichst große Marktanteile abdecken und bei vielen Kunden erfolgreich eingesetzt werden.

Dies betrifft auch Browser zur Verwendung der FirstSpirit Web Apps: Aufgrund der sukzessiven Ablösung des Microsoft Internet Explorer durch Microsoft Edge wird der Support für Microsoft Internet Explorer seitens FirstSpirit zukünftig entfallen. Stattdessen werden Google Chrome und Microsoft Edge Chromium empfohlen. Die Entwicklung des neuen ContentCreator orientierte sich bereits stark an diesen beiden Browsern: aus technologischen Gründen ist der neue ContentCreator daher nicht mehr mit Microsoft Internet Explorer kompatibel.

Der Entfall des Support von Microsoft Internet Explorer für alle FirstSpirit Web Apps ist für FirstSpirit 2020-07 geplant. Mit diesem Release wird auch der „alte“ ContentCreator planmäßig entfallen.

Referenz ist hingegen immer der aktuellste Chrome-Browser, der auf dem jeweiligen Betriebssystem verfügbar ist. Für diesen Browser-Typ werden regelmäßige Tests durchgeführt und Schritte zur Fehlerbeseitigung auf der Basis von Fehlermeldungen unternommen.
Darüber hinaus werden auch Chrome-nahe Browser (wie Apple Safari) unterstützt und getestet, allerdings kann es dort zu Einschränkungen kommen (z. B. eingeschränkter SVG-Support).

Eine Übersicht der geplanten Browser-Kompatibilitäten ab FirstSpirit 2020-07:

Empfohlene Browser / Referenz:

  • Google Chrome
  • Microsoft Edge

Kompatible Browser:

  • Mozilla Firefox
  • Apple Safari (mit Einschränkungen)

Nicht kompatibel:

  • Microsoft Internet Explorer
  • Opera und andere

Das „FirstSpirit Technische Datenblatt“ wurde entsprechend angepasst (https://docs.e-spirit.com/odfs/edocs/admi/technische-vora/index.html).

1.2 Das FirstSpirit Session Cookie unterstützt das Attribut SameSite

FirstSpirit verwendet mehrere Standard-Webanwendungen (fs5root, fs5webedit, fs5webmon, fs5preview, fs5staging) sowie eventuell weitere, projektlokale Webanwendungen (fs5webedit_PROJECTID und fs5preview_PROJECTID). Zur Authentifizierung der Webanwendungen (WebAuthentication) am FirstSpirit-Server wird eine Technologie eingesetzt, die zufällig generierte Session Cookies verwendet. Durch die Verwendung der Session Cookies müssen die Anmeldedaten des Benutzers nur einmalig vom Webbrowser zum FirstSpirit-Server übermittelt werden. Nach dem erfolgreichen Login verwendet der Webbrowser ausschließlich das zeitlich begrenzt gültige, eindeutige Session Cookie, dass dann bei jeder weiteren Serveranfrage, anstelle der Anmeldedaten, vom Webbrowser zum Server gesendet wird, um den Benutzer dort zu authentifizieren.

Das Session Cookie ist integraler Bestandteil der Servlet-API und wird neben der Authentifizierung noch für viele weitere Anwendungsfälle verwendet.

Viele Browser (u.a. Chrome 80) schränken seit Anfang des Jahres Cookies von Drittanbietern massiv ein. Alle Cookies, die nicht das Attribut SameSite=None tragen, werden automatisch auf First-Level-Domains beschränkt. Dieses Verhalten führt zu Problemen, wenn FirstSpirit-Webanwendungen in andere Webanwendungen integriert werden (z. B. als IFrame). In diesem Fall sorgt das neue Standardverhalten der Browser dafür, dass die FirstSpirit Session Cookies vom Browser blockiert werden und die Benutzer in der eingebetteten FirstSpirit-Webanwendung beispielsweise nicht mehr über das Session Cookie authentifiziert werden können.

Für diesen Anwendungsfall kann mit dem aktuellen FirstSpirit Release das Session Cookie um das Attribut SameSite=None erweitert werden. SameSite ist ein Standard, der Verhindern soll, dass Cookies bei sogenannten Cross-Site Requests automatisch vom Browser mitgesendet werden und bietet damit einen Schutz vor Cross-Site-Request-Forgery (CSRF). Neben diesem Sicherheitsaspekt ermöglicht das Attribut SameSite zu definieren, welche Cookies in welchem Kontext ausgelesen werden können.

Das Attribut „SameSite“ erfordert ein „Secure“-Flag. Cookies mit SameSite=None ohne „Secure“-Flag werden vom Browser abgelehnt. Mit dem „Secure“-Flag wird definiert, dass ein Cookie immer über eine sichere HTTPS-Verbindung gesendet wird.

Der Wert für die FirstSpirit Session Cookies kann über die Konfigurationsdatei fs-server.conf gesetzt werden, sowohl global über den Parameter servletSessionCookieSameSite als auch einzeln für bestimmte WebApp-Pfade, z. B. servletSessionCookieSameSite.fs5webmon=None für das FirstSpirit ServerMonitoring. Eine WebApp-spezifische Konfiguration überschreibt dabei die globale Einstellung servletSessionCookieSameSite für diesen WebApp-Pfad.

In der Standardkonfiguration (der Konfigurationsdatei fs-server.conf) wird kein globaler Wert für servletSessionCookieSameSite gesetzt.

# Servlet engine session cookie SameSite attribute. If left empty, the 
# SameSite attribute for the session cookie is not
# set and the servlet engine defaults apply.
# Supported values: None, Strict, Lax
servletSessionCookieSameSite=
# Servlet engine session cookie SameSite attribute for a specific webapp context path.
# 'ROOT' is the reserved name for the root webapp context path.
# servletSessionCookieSameSite.ROOT=None
# servletSessionCookieSameSite.fs5webmon=None
# servletSessionCookieSameSite.webappContextPath=None

Mögliche Werte des Attributs SameSite:

  • Strict:
    • Das Session Cookie wird nur im First-Party-Kontext gesendet (also nur, wenn die Seite für den Cookie mit der URL im Browser übereinstimmt) und
    • nicht zusammen mit Cross-Site-Requests, die von Websites Dritter initiiert werden.
  • Lax:
    • Das Session Cookie wird nur im First-Party-Kontext gesendet (also nur, wenn die Seite für den Cookie mit der URL im Browser übereinstimmt) und
    • nur zusammen mit Cross-Site-Requests, die als „sicher“ angesehen werden. Dies betrifft die sicheren HTTP-Methoden (GET, HEAD, OPTIONS und TRACE) und die Top-Level-Navigation (Aktionen, die eine Änderung der URL in der Adressleiste des Browsers veranlassen, wie z. B. Links). SameSite=Lax ist die Standardeinstellung in modernen Browsern.
  • None:
    • Das Session Cookie wird in allen Kontexten (also auch im Third-Party-Kontext) gesendet, d.h. das Senden ist ursprungsübergreifend erlaubt.
    • In dieser Einstellung bietet das Attribut keinen zusätzlichen Schutz gegen CSRF. Diese Einstellung kann aber sinnvoll sein, wenn eine FirstSpirit-Webanwendung in eine andere Webanwendung integriert werden soll.
  • Wert nicht gesetzt (FirstSpirit Standardeinstellung):
    • Ist der Wert nicht gesetzt, werden die Standardeinstellungen der Servlet Engine verwendet.
    • Ist hier kein Wert für das Attribut SameSite konfiguriert, wird die Standardeinstellung des Browsers verwendet. Moderne Browser interpretieren ein nicht gesetztes SameSite-Attribut als SameSite=Lax.

e-Spirit empfiehlt die Standard-Einstellungen der Konfigurationsdatei fs-server.conf beizubehalten. Die Standardeinstellung deckt in den meisten Fällen sowohl die Sicherheitsaspekte (guter Schutz vor Cross-Site-Request-Forgery) als auch die Belange des Nutzers (gute User Experience) ab.
Nur in Ausnahmefällen (z. B. FirstSpirit als eingebettete WebApp) ist eine Änderung notwendig.

2 ContentCreator

2.1 Arbeitsabläufe: Zeitauswahl bei Terminen

Für Arbeitsabläufe kann ein Termin angegeben werden, bis zu welchem der gesamte Arbeitsablauf durchlaufen sein muss. Der durch den Redakteur wählbare Termin wird dem nächsten Bearbeiter im entsprechenden Aktionsfenster angezeigt. Darüber hinaus wird der Termin im Report-Bereich für Aufgaben angezeigt.

Bisher konnte nur ein Datum für den Termin ausgewählt werden. Mit dem aktuellen Release kann jetzt zusätzlich eine Uhrzeit ausgewählt werden.

UID=cc_arbeitsablauf_zeitauswahl

2.2 Benutzerführung / UX: Darstellung von Checkboxen, Radiobuttons und Umschalter

Die Eingabeelemente „Kontrollkästchen“ (CMS_INPUT_CHECKBOX), „Optionsfeld“ (CMS_INPUT_RADIOBUTTON) und „Umschalter“ (CMS_INPUT_TOGGLE) erlauben die Auswahl von Werten, die der Projektentwickler vorgibt. Dabei kann bei einem „Optionsfeld“ und beim „Umschalter“ genau ein Wert ausgewählt werden, beim „Kontrollkästchen“ können mehrere Werte gewählt werden. Beim „Optionsfeld“ und beim „Umschalter“ wird durch das Aktivieren eines Feldes ein zuvor gewähltes deaktiviert, beim „Kontrollkästchen“ ist dies nicht der Fall.

Im neuen FirstSpirit ContentCreator sind diese Eingabeelemente jetzt wieder besser voneinander unterscheidbar. Der Redakteur kann wieder besser erkennen, wie der Zustand dieser Eingabeelemente in einem Formular ist und wie sie bedient werden können: „Optionsfelder“ werden jetzt durch Kreise visualisiert, „Kontrollkästchen“ durch Kästchen.

UID=contentcreator_design_checkbox_radiobutton

Diese neue Visualisierung wirkt sich auch Dialoge des ContentCreator aus, z. B. den Dialog „Neue Seite anlegen“:

UID=contentcreator_dialog_neue_seite

2.3 Tabellen: Vertikale Ausrichtung von Inhalten in Zellen ("valign")

Im FirstSpirit ContentCreator kann für Inhalte in Tabellen (CMS_INPUT_DOM / „Inline-Tabellen“ und CMS_INPUT_DOMTABLE) jetzt auch die vertikale Ausrichtung bestimmt werden. Dazu kann – analog zum bereits bestehenden Attribut align für die horizontale Ausrichtung – das neue Attribut valign verwendet werden. Die vorgegebenen Schlüsselbegriffe für die verschiedenen Ausrichtungen sind

  • top (oben)
  • middle (Mitte / zentriert, Standardeinstellung)
  • bottom (unten)

1) Beispiel CMS_INPUT_DOM / Inline-Tabellen:

Über Stilvorlagen werden Tabellenlayoutmerkmale von Inline-Tabellen, z. B. Hintergrundfarbe, Textausrichtung usw., festgelegt. Das Formular für die Erfassung der vertikalen Textausrichtung in einer Stilvorlage (z. B. in der „Standard-Stilvorlage“) muss den Bezeichner valign erhalten.

Beispiel:

<CMS_INPUT_RADIOBUTTON name="valign" gridHeight="1" useLanguages="no">
<ENTRIES>
<ENTRY value="top">
<LANGINFOS>
<LANGINFO lang="*" label="Top"/>
<LANGINFO lang="DE" label="Oben"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="middle">
<LANGINFOS>
<LANGINFO lang="*" label="Centre"/>
<LANGINFO lang="DE" label="Zentriert"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="bottom">
<LANGINFOS>
<LANGINFO lang="*" label="Bottom"/>
<LANGINFO lang="DE" label="Unten"/>
</LANGINFOS>
</ENTRY>
</ENTRIES>
<LANGINFOS>
<LANGINFO lang="*" label="Vertical alignment"/>
<LANGINFO lang="DE" label="Vertikale Ausrichtung"/>
</LANGINFOS>
</CMS_INPUT_RADIOBUTTON>

Darstellung im ContentCreator:

UID=contentcreator_zelleigenschaften_bearbeiten

Die Ausrichtung, die durch den Redakteur im entsprechenden Dialog „Zelleigenschaften bearbeiten“ festlegt, kann beispielsweise im HTML-Ausgabekanal der Stilvorlage, und damit in der Vorschau sowie auf der generierten Seite ausgegeben werden, z. B.

...
style='
...
$CMS_VALUE(if(!valign.isEmpty, "vertical-align:" + valign + ";"))$
...
'

2) Beispiel CMS_INPUT_DOMTABLE:
Für CMS_INPUT_DOMTABLE erfolgt die Definition von Zelleigenschaften durch den Redakteur über einen Dialog, der über das Attribut propertyConfig konfiguriert werden kann. Die vertikale Ausrichtung von Inhalt kann dabei ebenfalls über den Schlüsselbegriff valign aktiviert werden, z. B.

<CMS_INPUT_DOMTABLE name="table" 
propertyConfig="
valign:Vertikale Ausrichtung:
[top:Oben|middle:Zentriert|bottom:Unten],
align:Horizontale Ausrichtung:
[left:Linksbündig|center:Zentriert|right:Rechtsbündig]">
<LANGINFOS>
<LANGINFO lang="*" label="Table"/>
<LANGINFO lang="DE" label="Tabelle"/>
</LANGINFOS>
</CMS_INPUT_DOMTABLE>

Darstellung im ContentCreator:

UID=contentcreator_zelleigenschaften_bearbeiten_domtable

Die durch den Redakteur definierten Eigenschaften einer Zelle einer CMS_INPUT_DOMTABLE können über den HTML-Ausgabekanal der Standard-Formatvorlage „Tabellenzelle“ ausgewertet und ausgegeben werden. Dazu steht das Systemobjekt #cell zur Verfügung.
Beispiel:

<td..
...
$CMS_VALUE(if(!#cell.valign.isEmpty, " valign='" + #cell.valign + "'"))$
$CMS_VALUE(if(!#cell.align.isEmpty, " align='" + if(#cell.align == "block",
"justify", #cell.align) + "'"))$
...
</td>

Hinweis: Für den FirstSpirit SiteArchitect ist eine entsprechende Unterstützung für das Attribut valign nicht geplant.

Für weitere Informationen siehe

3 Externe Synchronisierung / Content Transport

Externe Synchronisierung und Content Transport: Verbesserte Unterstützung für den gemeinsamen Zugriff auf eine Datenbank

Über die Funktionalitäten „FirstSpirit External Synchronization“ und „FirstSpirit Content Transport“ können, unter anderem, Datenbank-Inhalte (Datensätze) und die zugehörigen Datenbank-Strukturen (Schemata, Tabellen, Spalten) eines FirstSpirit-Projekts (Quellprojekt) exportiert und in weitere FirstSpirit-Projekte (Zielprojekte) importiert werden. Die dbnames der Spaltennamen und Tabellen werden beim Synchronisieren neu berechnet. Dieses Verhalten kann, unter den folgenden Voraussetzungen, dazu führen, dass in den Zielprojekten, Spalten und Tabellen der Datenbank nicht gefunden werden können:

  • die FirstSpirit-Schemata der beteiligten Projekte referenzieren dieselben Datenbanktabellen (und zeigen nicht auf jeweils eigene Datenbank-Tabellenräume) und
  • die dbnames entsprechen nicht den automatisch berechneten dbnames

Für diesen speziellen Anwendungsfall kann jetzt beim Exportieren und Importieren von Datenbank-Schemata eine zusätzliche Mapping-Datei (Mapping.xml) verwendet werden, in der die Datenbanknamen des Quellprojekts zusammen mit den FirstSpirit-eigenen, eindeutige Bezeichnern (UUIDs) gespeichert werden, z. B.:

<xs:gid dbName="j_categories_spalte_x" uuid="66843bbe-da0d-46e3-a136-76bd93d782bb"/>
<xs:gid dbName="j_categories_spalte_y" uuid="4ba29641-26af-4edd-bac0-5a352913974d"/>
...

Über diese eindeutige Zuordnung ist es nun möglich, die Datenbank-Schemata von lesend angebundenen Datenbanken („Kein Schema Sync“) über „External Synchronization“ oder „Content Transport“ wie folgt zu synchronisieren:

  • Wird ein Schema im Quellprojekt geändert und über eine der beiden Funktionalitäten in weitere FirstSpirit-Projekte synchronisiert, so werden die Namen von Datenbanktabellen und Datenbankspalten aus dem Quellprojekt in die Zielprojekte übernommen.
  • Werden Datenbanktabelle oder Datenbankspalte im Zielprojekt neu angelegt, so wird nun bevorzugt der entsprechende dbname des Ursprungsschemas verwendet.

Bei einer Verwendung von „FirstSpirit External Synchronization“ kann die Mapping-Datei (Mapping.xml) über eine neue Option im Interface ExportOperation.SchemaOptions (setExportGidMapping=true) zur Export-Datei hinzugefügt werden:

ExportOperation exportOperation = ... // get the export operation via agent;
ExportOperation.SchemaOptions schemaOptions = exportOperation.addSchema(schema);
schemaOptions.setExportGidMapping(true);
ExportOperation.Result result = exportOperation.perform(...);

Für die neue Funktionalität musste das bisherige Export-Format nicht erweitert werden. Es kann weiterhin das Export-Format in der Version 3.2 eingesetzt werden.

Das Kommandozeilenwerkzeug „FSDevTools“ wird die neue Option erst ab Version 2.6 unterstützen. Diese Version ist aktuell noch nicht verfügbar. In der Standardeinstellung wird bei der Verwendung von „FSDevTools“ keine Mapping-Datei erzeugt (setExportGidMapping=false).

Ohne Mapping-Datei (Standardverhalten beim Einsatz von „FirstSpirit External Synchronization“) werden die dbnames der Spaltennamen und Tabellen wie bisher beim Synchronisieren neu berechnet. Bei den regulären Anwendungsfällen wird es bei der Neuberechnung keine Abweichung geben, so dass der Einsatz einer Mapping-Datei nicht notwendig ist.

Bei einer Verwendung der Funktionalität „FirstSpirit Content Transport“ wird die Mapping-Datei (Mapping.xml) automatisch erzeugt und verwendet.

4 FirstSpirit Content Experience Tools (CXT)

4.1 Aktuelle Modul-Versionen

Folgende Modul-Versionen für „FirstSpirit Content Experience Tools“ werden von FirstSpirit 2020-05 unterstützt:

Modul- / DateinameVersionsnummer
FirstSpirit CXT DAP Bridge
dataservice-[version].fsm
1.28
FirstSpirit CXT FragmentCreator
fragment-creator-[version].fsm
2.4
FirstSpirit Fragment DAP
fragmentdap-[version].fsm
1.25
FirstSpirit Media DAP
mediadap-[version].fsm
1.23*
FirstSpirit Markdown Editor
markdown-editor-[version].fsm
1.21*
FirstSpirit Tagging Editor
tagging-editor-[version].fsm
1.21
FirstSpirit CXT FragmentCreator - CaaS Integration
caas-integration-[version].fsm
1.21

* Diese Module benötigen ab dieser Version FirstSpirit 2020-03 oder höher.

4.2 Erweiterung der MicroApps API: Einbettung von MicroApps in eine Seite ("Widget")

Bislang konnten MicroApps im MicroApp Framework als modaler Dialog per MicroApps API aufgerufen werden (CxtMicroApps.getButtons(context)).
Mit dem aktuellen Release wurde die MicroApps API um die Methode CxtMicroApps.embedMicroApp erweitert, mit der MicroApps jetzt direkt in eine HTML-Seite eingebettet werden können („Widget“).
Die API bietet darüber hinaus die Möglichkeit, Handler hinzuzufügen und zu benutzen und auf Events zu reagieren.

Hinweis: Die Verwendung der API ist aktuell noch für den internen Gebrauch bestimmt und wird intern sowie durch Partner getestet. Zukünftig soll sie auch für externe Kunden bereitgestellt werden.

4.3 Fragment DAP: Fragmente im Report nach Kategorie filtern

Bislang konnten im Report des Fragment DAP (<SOURCE name="FirstSpiritFragmentAccess/FSFAConnector">) die angezeigten Fragmente nach Remote-Projekt oder durch Angabe eines Suchbegriffs gefiltert werden. Mit dem aktuellen Release werden die Optionen zum Filtern um die Kategorie erweitert, zu der die angezeigten Fragmente gehören.

Wenn der Fragmente-Report im ContentCreator geöffnet wird, ist als Standard kein Filter ausgewählt. Anders als zuvor können somit sämtliche Fragmente aus allen verknüpften Projekten gleichzeitig eingesehen werden.

Der Report des Fragment DAP ohne Filter
Der Report des Fragment DAP ohne Filter

Zusätzlich zu den bisherigen Filtern nach einem spezifischen Projekt und per Suchbegriff, steht nun auch ein Filter nach Kategorien als Dropdown-Menü zur Auswahl. Hier kann aus allen Kategorien der verknüpften Projekte eine ausgewählt werden, um die angezeigten Fragmente einzuschränken.

Kommt eine gleichnamige Kategorie in mehreren Projekten vor, so werden beim Filtern nach dieser Kategorie zunächst projektübergreifend alle Fragmente aus der Kategorie angezeigt. Die Ergebnisse können wie zuvor auch noch weiter eingeschränkt werden, indem nach einem bestimmten Projekt oder Suchbegriff gefiltert wird.

4.4 FragmentCreator: Überarbeitung des Designs (Eingabefelder)

Im Rahmen der Überarbeitung und Zusammenführung der technischen Basis für FirstSpirit ContentCreator und FragmentCreator wurde die graphische Oberfläche des FragmentCreator überarbeitet und an die Designprinzipien des ContentCreator angepasst.

Mit dem Design-Update sind grundsätzlich keine funktionalen Änderungen für Redakteure oder Entwickler verbunden. Alle Funktionen in den Oberflächen stehen prinzipiell an den bekannten Positionen zur Verfügung. Weder entwicklungs- noch betriebsseitig fallen Aufwände mit dem Update des Designs an.

Die Änderungen des aktuellen Releases betreffen in erster Linie die Eingabefelder für Text und Auswahl sowie die Tags (CMS_INPUT_TEXT, CMS_INPUT_CHECKBOX, CMS_INPUT_COMBOBOX, CMS_INPUT_RADIOBUTTON, FS_TAGGING u.a.).

UID=fragmentcreator_formular_rebrush

Die Anpassung der Dokumentation hinsichtlich des Designs erfolgt sukzessive, daher entspricht die Darstellung in der Dokumentation potenziell nicht mehr dem aktuellen Software-Stand.

5 Modul-Entwicklung, Skripte, API

5.1 Globale Modulressourcen: Verbesserte Stabilität bei der Auflösung von Abhängigkeiten

Ressourcen eines Moduls haben einen bestimmten Gültigkeitsbereich. Das bedeutet, die entsprechenden Jars und Verzeichnisse können entweder nur innerhalb des Moduls (modul-lokal) oder serverweit (global) erreichbar sein. Globale Ressourcen (scope=„global“) stehen auch anderen Modulen auf dem Server zur Verfügung. Allerdings liegen dabei alle Klassen in einem Namensraum, und damit kann es jede Klasse nur einmal geben. Die Verwendung verschiedener Versionen einer Klasse ist damit ausgeschlossen.

Classloading und Versionierung von Ressourcen: Werden die gleichen globalen Ressourcen von mehreren Modulen in jeweils unterschiedlichen Versionen mitgebracht, kann nur eine dieser globalen Ressourcen von allen Modulen verwendet werden. Um Konflikte zwischen verschiedenen Modulen zu vermeiden, werden die Klassen – soweit wie möglich – über einzelne, voneinander getrennte Modul-Classloader geladen. Bei globalen Ressourcen wird dann eine dieser Klassen über den kombinierten, globalen Classloader zur Verfügung gestellt.

Bei identischen Namen wird versucht herauszufinden, ob Ressourcen miteinander kompatibel sind. Dazu werden neben dem eindeutigen Bezeichner („name“) in der Ressourcendefinition (module.xml) auch die mitgelieferte Version der Ressource („version“) sowie (optional) die Angabe der minimal kompatiblen Version („minVersion“) und der maximal kompatiblen Version („maxVersion“) benötigt, z. B.:

<web-resources>
<resource name="..." version="4.4" minVersion="4.4" maxVersion="4.5.2">
lib/httpclient-compatibility.jar
</resource>
</web-resources>

Bisheriges Verhalten

Bisher konnte nicht sichergestellt werden, dass immer die neueste Version einer globalen Ressource verwendet wurde. Die modul-lokalen Ressourcen wurden über den jeweiligen Modul-Classloader geladen und dann wurde eine von diesen Ressourcen über den kombinierten, globalen Classloader zur Verfügung gestellt. Dabei wurde zwar berücksichtigt, dass die Version kompatibel zu den anderen Modulen war (basierend auf „name“ und „maxVersion“ bzw. „minVersion“), es wurde aber nicht immer auch die neueste Version (also die Version mit der höchsten Versionsnummer) verwendet.

Bei einer Modulaktualisierung konnte dieses Verhalten Probleme verursachen, weil beispielsweise Dienste, die auf diese globalen Ressourcen zugreifen, mit einer anderen Version nicht mehr funktionierten.

Neues Verhalten

Mit dem aktuellen FirstSpirit-Release wird sichergestellt, dass beim normalen Betrieb immer die neueste Version (also die Version mit der höchsten Versionsnummer) einer globalen Ressource verwendet wird, auch wenn diese zuvor über verschiedene Modul-Classloader geladen wurden. Stellen mehrere Module die gleiche Version einer globalen Ressource zur Verfügung, wird ebenfalls immer die globale Ressource aus dem gleichen Modul geladen. Dabei wird natürlich weiterhin berücksichtigt, ob die Versionen kompatibel zu den anderen Modulen sind (basierend auf „name“ und „maxVersion“ bzw. „minVersion“).

Es gilt: Stellen mehrere Module die gleiche globale Ressource zur Verfügung und sind die Versionen kompatibel zueinander, wird immer die Version mit der höchsten Versionsnummer verwendet.

Damit steigt die Stabilität bei der Auflösung von Abhängigkeiten nach einer Modulaktualisierung. Module, die globale Ressourcen enthalten, die von unterschiedlichen Diensten verwendet werden, bleiben jetzt mit einer größeren Wahrscheinlichkeit nach einer Modulaktualisierung funktionsfähig. In Einzelfällen kann aber weiterhin ein Neustart des FirstSpirit-Servers notwendig sein.

Weiterführende Dokumentation:

5.2 JSON-Funktion: Verbesserte Unterstützung für FS_REFERENCE

Mit dem aktuellen FirstSpirit-Release unterstützt die JSON-Funktion auch referenzierte Objekte der Eingabekomponente FS_REFERENCE.

Für diese Änderung wird keine neue Version des JSON-Ausgabeformats veröffentlicht, die Änderungen fließen in die aktuelle Formatversion 1.1. ein.

Übersicht der Änderungen in Formatversion 1.1

Die Eingabekomponente FS_REFERENCE dient zur Aufnahme einer beliebigen Referenz. Der Typ des referenzierten Objekts ist dabei nicht festgelegt: es können Referenzen zu Medien (Bilder und Dateien), zu Seitenreferenzen, Ordnern, Absätzen der aktuellen Seite und vielen weiteren Objekten festgelegt werden.

Über die JSON-Funktion können die referenzierten FirstSpirit-Objekte der Eingabekomponente FS_REFERENCE nun in eine JSON-Objektstruktur überführt werden (bisher wurden die referenzierten Objekte nicht gerendert). Dabei wird nicht das Objekt selbst, sondern nur die Daten gerendert, die zur Referenzierung notwendig sind.

Beispiel: Eine Eingabekomponente vom Typ FS_REFERENCE verweist über den Modus sections=„only“auf die Absätzen der aktuellen Seite.

Die Ausgabe der Seitenreferenz (oder der Seite) im Format 1.1 enthält dann den neuen Bereich „section“: mit den Daten zu den referenzierten Absätzen („fsType“: „Section“)

"st_reference_pageref": {
"fsType": "FS_REFERENCE",
"name": "st_reference_pageref",
"value": {
"fsType": "PageRef",
"name": "test",
"identifier": "c88bc52c-aab9-4f66-870c-1354ca73fcb1",
"uid": "test",
"uidType": "SITESTORE_LEAF",
"url": "http:\/\/www.myurl.de\/external_sync_DE\/test.json",
"section": {
"fsType": "Section",
"name": "cms_input_text",
"displayName": "CMS_INPUT_TEXT",
"identifier": "c56cbc16-e70d-426d-af0f-16de05578922"
}
}
}
}

Weiterführende Dokumentation:

Hinweise zur Formatversion

Die Formatversion kann über die JSON-Einstellungen explizit gesetzt werden:

$CMS_SET(#global.json.formatVersion, "1.1")$

Wenn über FirstSpirit-Updates hinweg eine unveränderte JSON-Ausgabe benötigt wird, sollte die Formatversion explizit in den Projekteinstellungen unter Globale Einstellungen gesetzt werden.

Wenn die Formatversion nicht explizit eingestellt wird, dann wird immer die aktuelle JSON-Formatversion (1.1) verwendet.

5.3 Pop-up-Dialog als Warnhinweis erstellen

Pop-up-Dialoge, die mithilfe des Interfaces RequestOperation (FirstSpirit Developer-API, Package de.espirit.firstspirit.ui.operations) erstellt werden, können jetzt über Enum RequestOperation.Kind (FirstSpirit Developer-API, Package de.espirit.firstspirit.ui.operations) auch als Warnhinweis erzeugt werden:

Beispiel:

import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.ui.operations.RequestOperation;
import de.espirit.firstspirit.ui.operations.RequestOperation.Kind;

opAgent = context.requireSpecialist(OperationAgent.TYPE);
if (opAgent != null) {
RequestOperation requestOp = opAgent.getOperation(RequestOperation.TYPE);
requestOp.setKind(Kind.WARN);
requestOp.setTitle("Whoa, there!");
requestOp.perform("Once you delete this content, there's no getting it back.
Make sure you want to do this!");
} else {
context.logInfo("...");
}

Mögliche Typen (RequestOperation.Kind):

  • WARN (Neu)
  • INFO
  • QUESTION
  • ERROR

Im SiteArchitect und ServerManager werden Pop-up-Dialoge vom Typ WARN mit einem Ausrufezeichen-Symbol angezeigt und Pop-up-Dialoge vom Typ INFO mit einem „i“-Symbol.

Der ContentCreator unterscheidet bei der Darstellung nicht zwischen Pop-up-Dialogen vom Typ WARN oder vom Typ INFO. Beide Arten werden identisch mit einem Ausrufezeichen-Symbol angezeigt.

5.4 Verbesserte Konfigurationsmöglichkeiten für benutzerspezifische URLs (AdvancedUrlCreator)

FirstSpirit stellt API-Schnittstellen und eine Referenz-Implementierung („Advanced URL Creator“) zur Verfügung, um benutzerspezifische Pfadstrategien zur URL-Erzeugung in FirstSpirit einzubinden. Sämtliche Konfigurationsparameter (sowohl die von FirstSpirit ausgewerteten Standard-Parameter als auch benutzerdefinierte Parameter) müssen dabei entweder über ein Auftrags-Skript definiert werden, das vor dem eigentlichen Generierungsauftrag ausgeführt wird oder über die Konfigurationseinstellungen in der module.xml-Datei.

Das FirstSpirit-Framework wertet einige vorgegebenen Standard-Parameter direkt aus, u.a.:

  • useWelcomeFileNames (zur Konfiguration von Startseitenreferenzen)
  • stripWelcomeFileNames (entfernt die Extension /index.* aus der Advanced URL)

Weitere Standard-Parameter siehe FirstSpirit-Dokumentation: Standard-Konfigurationsparameter.

Für alle Parameter gilt: Die Groß- bzw. Kleinschreibung der Parameter ist nicht relevant, d. h. useWelcomeFileNames, USEWELCOMEFILENAMES oder usewelcomefilenames sind gültige Bezeichnungen für ein und denselben Parameter.

Die Parameter „useWelcomeFileNames“ und „stripWelcomeFilenames“, die zur Konfiguration benutzerspezifischer Pfadstrategien zur URL-Erzeugung eingesetzt werden, bieten mit dem aktuellen FirstSpirit-Release neue Konfigurationsmöglichkeiten an.

Änderung für den Parameter „useWelcomeFileNames“

Der Parameter „useWelcomeFileNames“ kann zur Konfiguration von Startseitenreferenzen verwendet werden.

context.setProperty("#urlCreatorSettings", 
Collections.singletonMap("usewelcomefilenames", "true"));

Bisheriges Verhalten:

Mögliche Werte:

  • true oder yes oder Wert nicht gesetzt (Standardwert)
  • false oder no

true oder yes (Standardwert): Wird der Parameter mit dem Wert „true“ übergeben (Standardwert), wird für Seitenreferenzen, die als Startseite eines Ordners der Struktur-Verwaltung markiert sind, immer der Dateiname index.* beim Erzeugen einer Advanced URL geliefert (unabhängig vom Anzeigenamen oder dem Dateinamen aus dem Eigenschaftsdialog).

Aus

../en/startpage/mithras_home.html

bei der Standard-URL-Erzeugung wird im Advanced-Modus mit „useWelcomeFileNames“ (true):

../Startpage/index.html

Für Seitenreferenzen, die nicht als Startseite gekennzeichnet sind, wird dagegen weiterhin der Anzeigename beim Erzeugen der Advanced URL verwendet.

false oder no: Wird der Parameter mit dem Wert „false“ übergeben, werden für alle Seitenreferenzen, unabhängig ob Startseite oder nicht, die URLs basierend auf dem Anzeigenamen der Seitenreferenz erzeugt (wobei die Leerzeichen durch ein „-“-Zeichen ersetzt werden):

../Startpage/Mithras-Homepage.html

Neues Verhalten:

Mögliche Werte:

  • true oder yes oder Wert nicht gesetzt (Standardwert): Nur der erste HTML-Ausgabekanal verwendet Welcomefilenames.
  • false oder no: Es werden keine Welcomefilenames verwendet.
  • all: Alle HTML-Ausgabekanäle verwenden Welcomefilenames. (Eine solche Konfiguration kann zu identischen URLs führen, siehe (*)).
  • Kommaseparierte Liste von Ausgabekanälen: Alle aufgelisteten Kanäle verwenden Welcomefilenames. (Eine solche Konfiguration kann zu identischen URLs führen, siehe (*)).

true oder yes: Wird der Parameter mit dem Wert „true“ übergeben (Standardwert), wird für Seitenreferenzen, die als Startseite eines Ordners der Struktur-Verwaltung markiert sind, der Dateiname index.* beim Erzeugen einer Advanced URL geliefert (unabhängig vom Anzeigenamen oder dem Dateinamen aus dem Eigenschaftsdialog) - aber nur noch für den ersten HTML-Ausgabekanal (z.B. „html“), während für alle weiteren Ausgabekanäle (z.B.„ php“), die URLs weiterhin basierend auf dem Anzeigenamen der Seitenreferenz erzeugt werden (wobei die Leerzeichen durch ein „-“-Zeichen ersetzt werden).

../Startpage/index.html

false oder no: Wird der Parameter mit dem Wert „false“ übergeben, werden für alle Seitenreferenzen, unabhängig ob Startseite oder nicht, die URLs basierend auf dem Anzeigenamen der Seitenreferenz erzeugt (wobei die Leerzeichen durch ein „-“-Zeichen ersetzt werden):

../Startpage/Mithras-Homepage.html

all: Wird der Parameter mit dem Wert „all“ übergeben, wird für Seitenreferenzen, die als Startseite eines Ordners der Struktur-Verwaltung markiert sind, der Dateiname index.* beim Erzeugen einer Advanced URL geliefert (unabhängig vom Anzeigenamen oder dem Dateinamen aus dem Eigenschaftsdialog) - für alle im Projekt vorhandenen HTML-Ausgabekanäle. (Eine solche Konfiguration kann zu identischen URLs führen, siehe (*)).

Liste von Ausgabekanälen: Wird dem Parameter eine Liste von Ausgabekanälen übergeben, wird für Seitenreferenzen, die als Startseite eines Ordners der Struktur-Verwaltung markiert sind, der Dateiname index.* beim Erzeugen einer Advanced URL geliefert (unabhängig vom Anzeigenamen oder dem Dateinamen aus dem Eigenschaftsdialog) - für alle HTML-Ausgabekanäle, die in der Liste angegeben sind. Angegeben wird hier der Name des Vorlagensatzes („Vorlagensatz-Name“: siehe FirstSpirit-Produktdokumentation unter Vorlagensätze eines Projektes). (Eine solche Konfiguration kann zu identischen URLs führen, siehe (*)).

(*) Bei einer Konfiguration, die für alle oder mehrere Ausgabekanäle WelcomeFileNames verwendet, können mehrere index.*-Dateien in einem Ordner liegen (z. B. „/index.html“ und „/index.php“). Werden dann zusätzlich die Erweiterungen /index.* über stripWelcomeFileNames entfernt, entstehen identische URLs. Von einer solchen Konfiguration wird dringend abgeraten!

Änderung für den Parameter „stripWelcomeFileNames“

Der Parameter „stripWelcomeFileNames“ ist nur relevant, wenn die verwendete URL-Pfadstrategie auch den Konfigurationsparameter „useWelcomeFileNames“ verwendet.

Mithilfe des Parameters „stripWelcomeFileNames“ kann die durch „useWelcomeFileNames“ ergänzte Extension „/index.*“ aus der Advanced URL entfernt werden (aber nicht aus dem Dateinamen, unter dem die Seite im Dateisystem abgelegt wird).

factorySettings = new HashMap(); 
factorySettings.put("usewelcomefilenames", "true");
factorySettings.put("stripwelcomefilenames", "true");
context.setProperty("#urlCreatorSettings", factorySettings);

Bisheriges Verhalten:

Mögliche Werte:

  • true oder yes oder Wert nicht gesetzt (Standardwert)
  • false oder no

Werden die Parameter „useWelcomeFileNames“ und „stripWelcomeFileNames“ mit dem Wert „true“ übergeben (Standardwert), wird für Seitenreferenzen, die als Startseite eines Ordners in der Struktur-Verwaltung markiert sind, der Anzeigename der Startseite aus der Advanced URL entfernt.

Aus

../en/startpage/mithras_home.html

bei der Standard-URL-Erzeugung wird im Advanced-Modus mit „useWelcomeFileNames“ und „stripWelcomeFileNames“ (im Dateisystem):

../Startpage/index.html

Und die Advanced URL:

../Startpage

Damit wird die Startseite des Ordners „Startpage“ im Dateisystem zwar mit der Extension „/index.*“ angelegt, kann aber (bei passender Webserver-Konfiguration) über die URL „/Startpage/“ angefragt werden.

Sind im Projekt mehrere Vorlagensätze vorhanden, wird über „stripWelcomeFileNames“ nur „index.{master extension}“ entfernt. „Master extension“ ist die Dateierweiterung aus dem ersten Vorlagensatz (üblicherweise „html“).

Wird der Parameter „stripWelcomeFileNames“ mit dem Wert „false“ übergeben, bleibt für alle Startseitenreferenzen die Extension „/index.*“ im Dateisystem und in der Advanced URL erhalten.

Neues Verhalten:

Mögliche Werte:

  • true oder yes oder Wert nicht gesetzt (Standardwert): „/index.*“ (üblicherweise „/index.html“) wird gekürzt.
  • false oder no: URL wird nicht gekürzt
  • Liste von Erweiterungen: Alle aufgelisteten Erweiterungen (z. B. „/index.html“ und „/index.php“) werden gekürzt.

true oder yes: Wird der Parameter „stripWelcomeFileNames“ mit dem Wert „true“ übergeben (Standardwert), wird die Startseite des Ordners „Startpage“ im Dateisystem zwar mit der Erweiterung „/index.*“ angelegt, kann aber (bei passender Webserver-Konfiguration) über die URL „/Startpage/“ angefragt werden.

false oder no: Wird der Parameter „stripWelcomeFileNames“ mit dem Wert „false“ übergeben, bleibt für alle Startseitenreferenzen die Erweiterung „/index.*“ im Dateisystem und in der Advanced URL erhalten.

Liste von Erweiterungen: Wird dem Parameter eine Liste von Erweiterungen übergeben, wird für Seitenreferenzen, die als Startseite eines Ordners der Struktur-Verwaltung markiert sind, die Extension „/index.*“ beim Erzeugen einer Advanced URL gekürzt und kann, bei entsprechender Webserver-Konfiguration, über die jeweilige URL angefragt werden (analog zum Verhalten beim Wert „true“). Angegeben werden hier die Namen der Erweiterungen („Zieldatei-Erweiterung:“: siehe FirstSpirit-Produktdokumentation unter Vorlagensätze eines Projektes).

6 SiteArchitect / ContentCreator

Arbeitsablauf: Reihenfolge der Transitionen auf einer Aktivität ändern

Ein Arbeitsablauf ist eine Abfolge von Aufgaben, die nach einer fest vorgegebenen Struktur abgearbeitet werden. Diese besteht in FirstSpirit aus Status, Aktivitäten und Transitionen, wobei Transitionen die Verbindung zwischen Aktivität und Status bilden.

Projektspezifische Arbeitsabläufe können über einen grafischen Editor im FirstSpirit SiteArchitect („Vorlagen“ / „Arbeitsabläufe“) erstellt werden. Instanzen dieser Arbeitsabläufe können anschließend kontextgebunden auf jedem Element innerhalb des FirstSpirit-Projekts (SiteArchitect: Kontextmenü in der Baumansicht / „Arbeitsablauf“ und im ContentCreator über den Element-Status) oder kontextfrei über die FirstSpirit-Menüleiste („Aufgaben“ / „Arbeitsablauf“ bzw. im ContentCreator über „Aktionen“) gestartet werden. Jede Instanz eines Arbeitsablaufs muss entsprechend der im Arbeitsablauf festgelegten Regeln durchlaufen werden. Dabei wird bei jeder Aktivität ein Dialog geöffnet, der dem Bearbeiter die Möglichkeit gibt, den Arbeitsablauf über die Auswahl einer Transition (über eine Schaltfläche im Dialog) weiterzuschalten.

Mit dem aktuellen FirstSpirit-Release kann die Reihenfolge für die Anzeige der Transitionen auf einer Aktivität im Arbeitsablauf konfiguriert werden.

Die Konfiguration erfolgt auf dem Arbeitsablauf im FirstSpirit SiteArchitect „(Vorlagen“ / „Arbeitsabläufe“) im Register „Zustandsdiagramm“. Wird im grafischen Editor eine manuelle Aktivität selektiert, erscheint in der Eigenschaften-Ansicht (rechts) unter „Allgemeines“ die neue Eigenschaft „Transitionen“, die alle ausgehenden Transitionen der selektierten Aktivität anzeigt. Über das Icon

UID=icon___grosses_fenster
hinter der Eigenschaft können die Transitionen in einem eigenen Fenster geöffnet und in dieser Ansicht über Drag-and-drop oder über die Buttons am rechten Fensterrand (Nach oben verschieben / Nach unten verschieben) in der Reihenfolge verändert werden.

Reihenfolge ausgehender Transitionen ändern
Reihenfolge ausgehender Transitionen ändern

Die geänderte Reihenfolge wirkt sich auf die Anzeige der Schaltflächen im Dialog aus.

Geänderte Reihenfolge  der Transitionen im Dialog
Geänderte Reihenfolge der Transitionen im Dialog

Weiterführende Informationen:

7 System

Aktualisierung von integrierter Fremdsoftware

Mit dem aktuellen FirstSpirit-Release wurde folgende intern verwendete Software aktualisiert:

ASM (Bibliothek für die Analyse und Modifikation von Java-Bytecode)

Aktualisierung von Version 7.3.1 auf Version 8.0.1.

8 Vorlagenentwicklung

Arbeitsabläufe: Mehr Konfigurationsmöglichkeiten für kontextbezogene Informationen in E-Mails

In E-Mails, die durch Arbeitsabläufe versendet werden, können spezielle Platzhalter verwendet werden, die vom System automatisch kontextbezogen, ersetzt werden. Auf diese Weise kann beispielsweise ein Link zur Vorschau der Seite, auf der der Arbeitsablauf aktiv ist, und viele weitere Informationen in der E-Mail ausgegeben werden.

Die Platzhalter können auf den Eigenschaften einer Aktivität oder einer Transition im Register „E-Mail“ konfiguriert werden „(Vorlagenverwaltung“ / „Arbeitsabläufe“ / „Zustandsdiagramm“). Beim Schalten einer Transition oder Aktivität werden dann automatisch die E-Mails mit den entsprechenden Informationen versendet.

Die Platzhalter werden, mit dem aktuellen FirstSpirit-Release, um folgende Möglichkeiten erweitert:

  • %DATE_TIME% = Fälligkeitsdatum (nur wenn gesetzt) mit Uhrzeit. Das Format ist lokalisiert, z. B. in der englischen Version: „February 25, 1986 at 11:04:37 AM CET“.
  • %HISTORY_SHORT% = Historie der Instanz des Arbeitsablaufs, nur die letzten drei Einträge werden angezeigt, in aufsteigender Reihenfolge (z. B. Eintrag: 8, 9, 10).
  • %HISTORY_LAST% = Historie der Instanz des Arbeitsablaufs, nur der letzte Eintrag wird angezeigt (z. B. Eintrag: 10).
  • %HISTORY_DESC% = Historie der Instanz des Arbeitsablaufs, alle Einträge werden angezeigt, in absteigender Reihenfolge (z. B. Eintrag: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1).
  • %HISTORY_SHORT_DESC% = Historie der Instanz des Arbeitsablaufs, nur die letzten drei Einträge werden angezeigt, in absteigender Reihenfolge (z. B. Eintrag: 10, 9, 8).
  • %LAST_USER_FULLNAME% = letzte bearbeitende Person, es wird der volle Name ausgegeben (ist dieser nicht bekannt, wird der Anmeldename ausgegeben).
  • %NEXT_USER_FULLNAME% = Name der Personen, die den Arbeitsablauf im nächsten Schritt bearbeiten dürfen. Es werden die vollen Namen ausgegeben (sind diese nicht bekannt, werden die Anmeldenamen ausgegeben).

Alle bisherigen Platzhalter werden wie zuvor unterstützt:

  • %FIRSTspiritURL% = Verbindungsmodus HTTP (Standardmodus; Mastersprache)
  • %FIRSTspiritSOCKETURL% = Verbindungsmodus SOCKET (Mastersprache)
  • %PAGESTORE_PREVIEW_URL% = Vorschau-URL einer Seite aus der Inhalte-Verwaltung (Mastersprache)
  • %SITESTORE_PREVIEW_URL% = Vorschau-URL einer Seitenreferenz aus der Struktur-Verwaltung (Mastersprache)
  • %WF_NAME% = Name des Arbeitsablaufs
  • %CREATOR% = Name der Person, die den Arbeitsablauf erzeugt hat. Es wird der volle Name ausgegeben (ist dieser nicht bekannt, wird der Anmeldename ausgegeben).
  • %LAST_USER% = Name der Person, die den Arbeitsablauf zuletzt bearbeitet hat. Es wird der Anmeldename ausgegeben.
  • %LAST_COMMENT% = letzter Kommentar
  • %NEXT_USER% = Name der Personen, die den Arbeitsablauf im nächsten Schritt bearbeiten dürfen. Hier werden die Anmeldenamen ausgegeben.
  • %PRIORITY% = Priorität
  • %DATE% = Fälligkeitsdatum (nur wenn gesetzt)
  • %HISTORY% = Historie der Instanz des Arbeitsablaufs, alle Einträge werden angezeigt, in aufsteigender Reihenfolge (z. B. Eintrag: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10).
  • %WEBeditURL% = WebEdit Link auf die Vorschau der Seite (Mastersprache)

Weiterführende Dokumentation:

Übersicht

ID Beschreibung Kategorien
CORE-7678

In E-Mails, die durch Arbeitsabläufe versendet werden, können spezielle Platzhalter verwendet werden, die vom System automatisch kontextbezogen, ersetzt werden. Diese Platzhalter werden, mit dem aktuellen FirstSpirit-Release, um weitere Konfigurationsmöglichkeiten erweitert.

Weitere Informationen können dem Kapitel „Vorlagenentwicklung: Arbeitsabläufe: Mehr Konfigurationsmöglichkeiten für kontextbezogene Informationen in E-Mails“ entnommen werden.

Arbeitsablauf, Entwickler, FirstSpirit-Administrator, Freigabe
CORE-9572

Mit dem aktuellen Release kann für Arbeitsabläufe jetzt für den Termin zusätzlich zum Datum eine Uhrzeit ausgewählt werden.

Weitere Informationen können dem Kapitel „ContentCreator: Arbeitsabläufe: Zeitauswahl bei Terminen“ entnommen werden.

Arbeitsablauf, ContentCreator, Redakteur
CORE-10832

Mit dem aktuellen FirstSpirit-Release kann die Reihenfolge für die Anzeige der Transitionen auf einer Arbeitsablauf-Aktivität konfiguriert werden. Die Konfiguration erfolgt auf dem Arbeitsablauf im FirstSpirit SiteArchitect („Vorlagen“ / „Arbeitsabläufe“) im Register Zustandsdiagramm über die neue Eigenschaft „Transitionen“. Die geänderte Reihenfolge wirkt sich auf die Anzeige der Schaltflächen aus, die beim Durchschalten eines Arbeitsablaufs über das Dialogfenster der entsprechenden Aktivität angezeigt werden.

Weitere Informationen können dem Kapitel „SiteArchitect / ContentCreator: Arbeitsablauf: Reihenfolge der Transitionen auf einer Aktivität ändern“ entnommen werden.

Arbeitsablauf, ContentCreator, FragmentCreator, SiteArchitect, Vorlagen-Verwaltung
CORE-10834

Die Konfigurationsmöglichkeiten für die Parameter „useWelcomeFileNames“ und „stripWelcomeFilenames“, die zur Konfiguration benutzerspezifischer Pfadstrategien zur URL-Erzeugung eingesetzt werden, wurden mit dem aktuellen FirstSpirit-Release erweitert.

Weitere Informationen können dem Kapitel „Modul-Entwicklung, Skripte, API: Verbesserte Konfigurationsmöglichkeiten für benutzerspezifische URLs (AdvancedUrlCreator)“ entnommen werden.

Advanced URL, Entwickler, Generierung, Migration, SiteArchitect
CORE-11462

Die Funktionalitäten „FirstSpirit External Synchronization“ und „FirstSpirit Content Transport“ stellen für das Exportieren von Datenbank-Inhalten (Schemata, Entities) nun eine zusätzliche Mapping-Datei (Mapping.xml) zur Verfügung, in der die Datenbanknamen des Quellprojekts zusammen mit den FirstSpirit-eigenen, eindeutige Bezeichnern (UUIDs) gespeichert werden.

Weitere Informationen können dem Kapitel „Externe Synchronisierung / Content Transport: Externe Synchronisierung und Content Transport: Verbesserte Unterstützung für den gemeinsamen Zugriff auf eine Datenbank“ entnommen werden.

Content Transport, Datenbank, Entwickler, Externe Synchronisierung, FirstSpirit-API
CORE-11711

Werden die gleichen globalen Ressourcen von mehreren Modulen in jeweils unterschiedlichen Versionen mitgebracht, kann nur eine dieser globalen Ressourcen von allen Modulen verwendet werden. Mit dem aktuellen FirstSpirit-Release wird sichergestellt, dass beim normalen Betrieb immer die neueste Version (also die Version mit der höchsten Versionsnummer) einer globalen Ressource verwendet wird. Damit steigt die Stabilität bei der Auflösung von Abhängigkeiten nach einer Modulaktualisierung.

Weitere Informationen können dem Kapitel „Modul-Entwicklung, Skripte, API: Globale Modulressourcen: Verbesserte Stabilität bei der Auflösung von Abhängigkeiten“ entnommen werden.

Entwickler, Isolated mode, Modul-Entwicklung, Module
CORE-12038

Mit dem aktuellen FirstSpirit Release kann das FirstSpirit Session Cookie um das Attribut SameSite erweitert werden. Die Einstellung SameSite=None kann in Einzelfällen notwendig sein, wenn Firstspirit-Webanwendungen in andere Webanwendungen integriert sind (z. B. als IFrame).

Weitere Informationen können dem Kapitel „Administration: Das FirstSpirit Session Cookie unterstützt das Attribut SameSite“ entnommen werden.

FirstSpirit-Administrator, Server-Administrator, ServerMonitoring, Sicherheit
CORE-12068

Pop-up-Dialoge, die mithilfe des Interfaces RequestOperation (FirstSpirit Developer-API, Package de.espirit.firstspirit.ui.operations) erstellt werden, können jetzt über Enum RequestOperation.Kind (FirstSpirit Developer-API, Package de.espirit.firstspirit.ui.operations) auch als Warnhinweis erzeugt werden.

Weitere Informationen können dem Kapitel „Modul-Entwicklung, Skripte, API: Pop-up-Dialog als Warnhinweis erstellen“ entnommen werden.

ContentCreator, Entwickler, FirstSpirit-API, Modul-Entwicklung, ServerManager, SiteArchitect
CORE-12085

Über die JSON-Funktion können die referenzierten FirstSpirit-Objekte der Eingabekomponente FS_REFERENCE nun in eine JSON-Objektstruktur überführt werden (bisher wurden die referenzierten Objekte nicht gerendert). Dabei wird nicht das Objekt selbst, sondern nur die Daten gerendert, die zur Referenzierung notwendig sind. Für diese Änderung wird keine neue Version des JSON-Ausgabeformats veröffentlicht, die Änderungen fließen in die aktuelle Formatversion 1.1. ein.

Weitere Informationen können dem Kapitel „Modul-Entwicklung, Skripte, API: JSON-Funktion: Verbesserte Unterstützung für FS_REFERENCE“ entnommen werden.

Entwickler, JSON-Unterstützung
CORE-12129

Es wurde ein Fehler behoben, der dazu führen konnte, dass das Classloading eines Services nicht wie erwartet funktionierte.

Entwickler, FirstSpirit-Administrator, Module, Server-Administrator
CORE-12171

Im FirstSpirit ContentCreator kann für Inhalte in Tabellen (CMS_INPUT_DOM / „Inline-Tabellen“ und CMS_INPUT_DOMTABLE) jetzt auch die vertikale Ausrichtung von Inhalt durch den Redakteur definiert werden.

Weitere Informationen können dem Kapitel „ContentCreator: Tabellen: Vertikale Ausrichtung von Inhalten in Zellen ("valign")“ entnommen werden.

ContentCreator, Entwickler, Redakteur
CORE-12229

Mit dem aktuellen FirstSpirit-Release wurde intern verwendete Software aktualisiert.

Weitere Informationen können dem Kapitel „System: Aktualisierung von integrierter Fremdsoftware“ entnommen werden.

FirstSpirit-Administrator, Integrierte Software
CORE-12245

Bei der Aktualisierung des Moduls „SpellService“ (Datei fs-spell.fsm) auf eine höhere Version wurden in seltenen Fällen bestehende Konfigurationen überschrieben. Dies konnte beispielsweise dazu führen, dass selbstangelegte Wörterbücher entfernt oder nicht berücksichtigt wurden.
Darüber hinaus wurde ein Bug gefixt, der dazu führte, dass der FirstSpirit-Server mit Modul „SpellService“ nach einer Aktualisierung nicht mehr startete (Fehlermeldung in fs-server.log: ERROR ... (de.espirit.firstspirit.server.module.ServiceManagerImpl): cannot install service, module=SpellService, version=..., componentClass=de.espirit.firstspirit.opt.spell.SpellServiceImpl).

Module, Rechtschreibprüfung
CORE-12246

Es wurde ein Fehler behoben, der dazu führte, dass beim Start des ServiceManagers die Methode installed für alle Services aufgerufen wurde. Das Ausführen der Methode installed konnte beispielsweise dazu führen, dass globale Konfigurationsdateien neu geschrieben wurden.

Dienste, FirstSpirit-Administrator, Module, ServerManager
CORE-12298

Die Installation eines FirstSpirit-Servers erfolgt über das Installationsarchiv fs-install-[version].tar.gz. Beim Ausführen der Kommandos FS_HOME/bin/fs-server installstart oder FS_HOME/bin/fs-server install (unter Linux-Betriebssystemen) konnte es zu einem Fehler kommen, weil der Ordner run nicht vorhanden war. Dieser Ordner ist jetzt ein Bestandteil des Installationsarchivs.

Server-Administrator
CXT-864

Der Fragment DAP-Report kann angezeigte Fragmente nun nach Kategorie sortieren.

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): Fragment DAP: Fragmente im Report nach Kategorie filtern“ entnommen werden.

Data Access Plugin, FirstSpirit Content Experience Tools (CXT), Redakteur, Reports
CXT-1243

FragmentCreator: Überarbeitung des Designs (Eingabefelder)

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): FragmentCreator: Überarbeitung des Designs (Eingabefelder)“ entnommen werden.

Eingabekomponenten, Entwickler, FirstSpirit Content Experience Tools (CXT), FragmentCreator, Redakteur
CXT-1268

Mit dem aktuellen Release können MicroApps jetzt per MicroApps API direkt in HTML-Seiten eingebunden werden („Widget“).

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): Erweiterung der MicroApps API: Einbettung von MicroApps in eine Seite ("Widget")“ entnommen werden.

Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-API, FragmentCreator, Modul-Entwicklung
CXT-1315

Browser-Kompatibilitäten

Weitere Informationen können dem Kapitel „Administration: Browser-Kompatibilitäten“ entnommen werden.

ContentCreator, Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator, Redakteur
CXT-1339

Im neuen ContentCreator werden jetzt verschachtelte Frames vermieden: Statt dem (durch eine entsprechende Vorlagenkonfiguration im Projekt bedingte) Öffnen einer weiteren ContentCreator-Instanz in einem bestehenden ContentCreator-Fenster wird nun eine leere Seite angezeigt.
(Fehlermeldung in der Browser-Konsole: (index):35 Skipping startup of nested ContentCreator, please contact your administrator.)

ContentCreator, Entwickler, Redakteur
CXT-1413

In seltenen Fällen konnten Daten aufgrund von Timing-Problemen nicht bearbeitet werden, statt dessen wurde eine Ladeanimation angezeigt.

ContentCreator, Redakteur
CXT-1465

Über den Element-Status in der Menüleiste rechts können per Fly-out-Menü Arbeitsabläufe gestartet und weitergeschaltet werden. Aufgrund eines Timing-Problems konnte es zu einer unvollständigen oder veralteten Ansicht kommen. Jetzt werden die verfügbaren Arbeitsablauf-Aktionen direkt angezeigt, ohne dass eine manuelle Aktualisierung der Seite erforderlich ist.

ContentCreator, Redakteur
CXT-1466

Zwischenzeitlich konnten keine Datensätze per FS_INDEX mit DatasetDataAccessPlugin erstellt und bearbeitet werden, wenn diese Eingabekomponente in einem Metadaten-Formular verwendet wurde.
(Fehlermeldung: ...java.lang.IllegalArgumentException: Unknown language: §...)

ContentCreator, Data Access Plugin, Datenquellen-Verwaltung, Eingabekomponenten, Entwickler, Redakteur, Vorlagenentwicklung
CXT-1482

Aus Sicherheitsgründen haben jetzt - wie konzipiert - nur noch FirstSpirit-Administratoren Zugriff auf die mit FirstSpirit 2020-04 neu eingeführte Fehlerseite für das MicroApp Framework (erreichbar unter ~/status). Darüber hinaus enthalten die Fehlerseiten jetzt mehr Informationen zur Fehlerursache.

Debugging, Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, Sicherheit
CXT-1490

Im neuen ContentCreator wurde die Benutzerführung / UX für die Eingabeelemente „Kontrollkästchen“ (CMS_INPUT_CHECKBOX), „Optionsfeld“ (CMS_INPUT_RADIOBUTTON) und „Umschalter“ (CMS_INPUT_TOGGLE) verbessert.

Weitere Informationen können dem Kapitel „ContentCreator: Benutzerführung / UX: Darstellung von Checkboxen, Radiobuttons und Umschalter“ entnommen werden.

ContentCreator, Eingabekomponenten, Entwickler, Redakteur
CXT-1525

FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): Aktuelle Modul-Versionen“ entnommen werden.

Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator, Module
CXT-1528

Zwischenzeitlich wurden bei Verwendung des Moduls „FirstSpirit CXT FragmentCreator - CaaS Integration“ bei einer Freigabe von Fragmenten die Inhalte nicht mehr auf Live-CaaS-Instanzen übertragen, sondern nur auf Preview-CaaS-Instanzen.

Entwickler, FirstSpirit Content as a Service (CaaS), FragmentCreator, Freigabe

Deprecations

Funktion Abgekündigt mit Entfällt / Entfallen mit
Eingabekomponente FS_LIST 5.2R3 2020-07
Eingabekomponente CMS_INPUT_CONTENTAREALIST 5.2R3
Eingabekomponente CMS_INPUT_CONTENTLIST 5.2R3
Eingabekomponente CMS_INPUT_FILE 5.2R3
Eingabekomponente CMS_INPUT_LINKLIST 5.2R3
Eingabekomponente CMS_INPUT_OBJECTCHOOSER 5.2R3
Eingabekomponente CMS_INPUT_PAGEREF 5.2R3
Eingabekomponente CMS_INPUT_PICTURE 5.2R3
Eingabekomponente CMS_INPUT_TABLIST 5.2R3
FirstSpirit Access-API: de.espirit.firstspirit.agency.GroupsAgent 5.2R15
FirstSpirit Access-API: delete (de.espirit.firstspirit.access.AccessUtil) 5.2R18
Windows-Installer 2018-06 2020-06
FirstSpirit Access-API: release (de.espirit.firstspirit.access.AccessUtil) 2018-06
FirstSpirit Access-API: getLastLoginAsDate (de.espirit.firstspirit.agency.UserStatisticsAgent) 2018-07
FirstSpirit Access-API: remainingDurationOfCurrentStageInMillis (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access-API: getStartingTimeOfStageAsDate (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access-API: getSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access-API: setSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access-API: getSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access-API: setSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access-API: getLostAndFoundStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access-API: getDeletedStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access-API: de.espirit.firstspirit.access.store.Previewable 2019-01
Java 8 Support für FirstSpirit 2019-05 2020-06
WebSphere Application Server Support für FirstSpirit 2019-05
Legacy mode für den FirstSpirit-Server 2019-06 2022-03
Support von Java Web Start für FirstSpirit 2019-10 2020-06
FirstSpirit ContentCreator (altes Design / alte Technik) 2019-11 2020-07
Demo-Projekt Mithras Energy 2020-02 2020-06
Support von Microsoft Internet Explorer für FirstSpirit Web Apps 2020-05 2020-07