Restriktionsstufe <ON_SAVE/> (Speichern unterbinden)
Regeln, die auf dieser Restriktionsstufe basieren, unterbinden das Speichern von ungültigen Formular-Inhalten durch den Redakteur (und damit zugleich auch die Freigabe dieser Inhalte).
Diese Restriktionsstufe stellt einen massiven Eingriff in den Redaktionsprozess dar. Der Redakteur wird im Arbeitsbereich bereits während der Eingabe auf ungültige Inhalte hingewiesen (siehe Darstellung im Arbeitsbereich) und muss diese korrigieren, bevor die (Formular-)Inhalte gespeichert werden können. Andernfalls bricht das Speichern mit einer Fehlermeldung ab.
Allgemeine Informationen zur Definition einer Restriktionsstufe siehe Redaktionelle Prozesse steuern (Restriktionsstufen).
Beispiele
Beispiel: Speichern einer leeren Eingabekomponente unterbinden
In einem Formular gibt es eine Eingabekomponente „st_table“, die vom Redakteur gefüllt werden muss. Für diesen Fall kann vom Vorlagenentwickler die Restriktionsstufe <ON_SAVE/> vergeben werden. Solange die Bedingung (Eingabekomponente „st_table“ ist nicht leer), die innerhalb der Wertermittlung definiert wird, nicht erfüllt ist, wird die Eingabekomponente vom FirstSpirit-Framework markiert und ein Korrekturhinweis unterhalb der Eingabekomponente eingeblendet. Versucht der Redakteur nun das Formular in diesem ungültigen Zustand zu speichern, wird eine Fehlermeldung angezeigt und das Speichern des Formulars unterbunden.
<RULES>
<ON_SAVE>
<WITH>
<NOT>
<PROPERTY source="st_table" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="st_table" name="VALID"/>
<MESSAGE lang="*" text="The editor must not be empty!"/>
<MESSAGE lang="DE" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
</RULES>
Die Restriktionsstufe <ON_SAVE/> stellt einen massiven Eingriff in den Redaktionsprozess dar. Dies kann zu Problemen beim redaktionellen Bearbeiten führen. Beispiel: Da die Bedingungen der hier gezeigte Regel sehr allgemein definiert sind, muss der Redakteur beim Anlegen oder Bearbeiten eines Formulars, das auf dieser Regel basiert, das betreffende Eingabefeld in allen Projektsprachen füllen, um das Formular speichern zu können. Dies ist wahrscheinlich nicht in allen Fällen gewünscht. Das bedeutet, Regeln, insbesondere, wenn diese sehr restriktiv in den Redaktionsprozess eingreifen, müssen umsichtig definiert werden. |
Für das oben angegebene Beispiel wäre beispielsweise die Definition einer Vorbedingung hilfreich, die die nachfolgende Validierung nur ausführt, wenn das Formular vom Redakteur in der Projekt-Mastersprache geöffnet wird:
...
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<PROPERTY source="#global" name="MASTER"/>
</EQUAL>
</IF>
...