GSB 7.0 Standardlösung

Content-Editor

Im Content-Editor werden die Fragen & Antworten, die über die GSBAdmin-Oberfläche administriert wurden, aufgegriffen und über HTML-Formularelemente und entsprechende Konfigurationen widergespiegelt. Dies erfolgt in unterschiedlichen Schritten: Zunächst wird empfohlen für eine neue Umfrage eine eigene Ordnerstruktur anzulegen und entsprechend zu verwalten; auf diese Weise ist eine übersichtliche Gruppierung der verschiedenen Konfigurationsdokumente möglich, welches die Erstellung und Verwaltung einer Umfrage erheblich erleichtert. Im nächsten Schritt werden die Fragen angelegt und entsprechend ihrer Ausgestaltung konfiguriert. Darauf Aufbauend wird die Umfrage – möglicherweise mit Blätterfunktionalitäten – administriert. Zum Schluss wird die visuelle Ausgestaltung über Velocity-Templates sowie Label-Dokumente vorgenommen.

Anlegen einer Ordnerstruktur

Es wird empfohlen im Content-Editor innerhalb der schon vorhandenen Verzeichnis-Struktur einen eigenen Ordner mit einem beliebigen Namen für die neue Umfrage, z.B. „Umfrage2“, anzulegen. Soll die Umfrage über mehrere Seiten verlaufen, empfiehlt es sich Unterordner für jede Frage-Seite zu erstellen.Diese Struktur kann als Best Practice verstanden werden. Wie dies im einzelnen Mandanten gehandhabt wird, hängt besipielsweise auch von den Editorberechtigungen- bzw. der Editorkonfiguration ab und bleibt dem Ersteller selbst überlassen. Unterhalb des neu angelegten Ordners sollte ein „_config“-Ordner angelegt werden, der die üblichen vom ConfigReader benötigten Konfigurations-Dokumente (DefaultNavNode, DefaultNavTarget_target) enthält.

Anschließend wird ein Ordner mit beliebigem Namen (hier „_Fragen“) unterhalb des „Umfrage2“-Ordners angelegt. An dieser Stelle werden später Dokumente zur Verwaltung einzelner Fragen abgelegt.

Der folgende Screenshot zeigt zwei Umfragen (Umfrage1 und Umfrage2) mit ihren jeweiligen _config- sowie _Fragen-Ordnern. Umfrage1 besteht hierbei aus einem mehrseitigen Dialog (Einführung, Allgemeines, Klima, …):

CMS-Ordnerstruktur

Erstellen von Fragen & Antworten

In den folgenden Schritten werden die Fragen, die im GSBAdmin angelegt wurden, mit Formularelementen im Contentbereich verknüpft. Dabei wird zusätzlich definiert, welche Ausgestaltung eine Frage/Antwort-Einheit bekommen soll (Radiobuttons, Checkboxen oder ein Freitextfeld). Die zugehörigen Antworten werden dabei automatisch ermittelt und bei der Darstellung hinzugefügt.

Radiobuttons

Im „_Fragen“-Ordner werden die Formularelement für die jeweiligen Fragen angelegt. Im Fall einer Frage mit zwei Radiobuttons als Antwortmöglichkeit wird ein Dokument vom Typ „HTML-Formular Dynamische Radiobutton Gruppe“ benötigen. Es empfiehlt sich ein bereits vorhandenes Dokument zu kopieren. Analog hierzu können auch Checkboxen und Selectboxen konfiguriert werden.

Konfiguration Radio-Buttons

Bei der „Internen Beschreibung“ kann ein kurzer, stichwortartiger Text eingefügt werden.

Das Feld ID muss für Elemente mit im GSBAdmin definierten Antwortmöglichkeiten immer mit dem festen Prefix idInstanceAnswer beginnen. Es empfiehlt sich danach direkt den Namen der Frage anzuschließen, um eindeutige Requestparameternamen zu erhalten (ID=Requestparametername) Bei „Eigenschaften der Formular-Füll-Klasse“ sind folgende Angaben nötig:

  • ChoicesFormFillerClass=de.materna.cms.cae.struts.formfiller.SurveyInstanceQuestionFormFiller=Bestimmt den Formfiller der anhand von surveyName und questionName die Optionen ermittelt wird
  • surveyName=
  • questionName=
  • ValuesFormFillerClass=de.materna.cms.cae.struts.formfiller.TokenMapFormFiller - wird nur bei mehrstufigen (also blätterbaren) Formularen verwendet, um die bisher eingegebenen Formulareingaben zu ermitteln

Frage/Antwort mit Radiobuttons (numerisch)

Die nun folgende Frage, die erstellt werden soll, ist eine Frage vom Typ „Numerische-Antwort“.

Der Aufbau des betreffenden Dokuments vom Typ „HTML-Formular Dynamische Radiobutton Gruppe“ benötigt folgende Angaben:

Konfiguration Radio-Buttons

Die „ID“-Property beginnt hier mit „instanceNumber“ anstelle von „idInstanceAnswer“, gefolgt von einem Unterstrich und dem Namen der Frage.

Im Feld „Eigenschaften für Formular-Füll-Klasse“ muss wieder der Name der Umfrage stehen (surveyName), der Name der Frage (questionName) und zudem das numerische Minimum (rangeStart) sowie Maximum (rangeEnd) angegeben werden (wie im GSBAdmin).

Weiterhin sind auch hier Formfillerklassen anzugeben: ChoicesFormFillerClass=de.materna.cms.cae.struts.formfiller.NumberRangeFormFiller - erstellt die Auswahlmöglichkeiten auf Basis der gegebenen Konfigurationsparameter ValuesFormFillerClass=de.materna.cms.cae.struts.formfiller.TokenMapFormFiller - nur falls ein blätterbares Formular verwendet wird, damit bereits eingegebene Werte wieder übernommen werden.

Als Validator ist hier der RangeValidator angegeben. Dieser kann mit den gegebenen GSB-Validatoren konfiguriert werden: de.materna.cms.cae.forms.validation.IntegerValidator, oder auch RegexValidator

Frage/Antwort mit freiem Textfeld

Freitextfelder werden über Dokumente vom Typ „HTML-Formular Eingabefeld“ aufgebaut.

Die Parameter stellen sich wie folgt dar:

Konfiguration von Textfeldern

Hierbei ist zu beachten, dass die ID mit „instanceText“ beginnt, gefolgt von einem Unterstrich und dem Namen der Frage.

Beim Validator ist ein „Unzulässige-Zeichen“-Validator konfiguriert.

Frage/Antwort mit Checkboxen

Der letzten Fragetyp wird über Dokumente vom Typ „HTML-Formular Dynamische Checkbox Gruppe“ konfiguriert:

Die Parameter stellen sich wie folgt dar:

Konfiguration von Checkboxen


Für die Checkbox-Gruppe wird kein spezieller Validator konfiguriert.

Zusammenstellung von Umfrage-Seiten

Jede Umfrage-Seite wird über ein Dokument vom Typ „HTML-Formular“ aufgebaut. Hier werden die vorgesehenen Fragen zusammen mit ihrem Layout sowie weitere konfigurative Elemente angegeben.

Aufteilung über mehrere Seiten

Um ein Blättern zu ermöglichen sind u.a. Angaben zur Vorgänger- sowie zur Nachfolgeseite nötig.

Seitenaufteilung eines Formulars

Zu sehen sind folgende Properties:

PropertiesBeschreibung
successVerlinkt wird der Navigationsknoten, zu dem weitergeleitet wird, wenn das Formular erfolgreich abgeschickt wurde.

Im Regelfall die nächste Umfrage-Seite

failureVerlinkt wird der Navigationsknoten zu dem weitergeleitet wird, wenn das Formular nichterfolgreich abgeschickt wurde – wenn ein Fehler aufgetreten ist.

Im Regelfall dieselbe Seite zur nochmaligen Anzeige, z.B. für den Fall, dass Pflichtfelder nicht ausgefüllt wurden

backVerlinkt wird der Navigationsknoten zu dem weitergeleitet wird, wenn der „Zurück-Button“ betätigt wurde.

Im Regelfall die Vorgängerseite

initVerlinkt wird der Navigationsknoten, über den die Umfrage initialisiert wird.

Fragen

Im unteren Teil des Formulars wird dargestellt wie Fragen eingebunden werden:

Formularfragen

In den Slots können die Frage-Dokumente, welche im vorherigen Abschnitt erstellt wurden, angegeben werden („Dokumente“). Die Slot-Namen („Slotbelegung“) werden später bei der Erstellung des Velocity-Templates benötigt.

Das Layout, welches für die Darstellung der Antwortmöglichkeiten einer Frage verwendet wird („Layout“ im oberen Bereich), wird über die dabei angegebene Layout-Variante definiert (Platzierung der Fragen übereinander, nebeneinander, etc.).

Interaktionsmöglichkeiten

Um der Teilnehmerin/dem Teilnehmer die Möglichkeit zu geben, innerhalb der Seiten einer Umfrage zu blättern, werden HTML-Buttons angegeben:

Interaktionsmöglichkeiten

Im „submit“-Slot muss zusätzlich zum eigentlichen Submit-Button noch das „Fragebogen_Token“ mit angegeben werden. Als Action wird die TokenMapAction verlinkt. Soll auch ein zurück Blättern angeboten werden, sn muss dies über einen Button geschehen der als ID Wert folgendes enthält: org.apache.struts.taglib.html.CANCEL - im Beispiel der correct Slot

Falls es eine Umfrage mit blätterbarem Formular ist, wird ein Token benötigt, um die Werte der Formularseiten, bzw. deren Formularelementwerte, zu ermittlen. Es handelt sich dabei um ein verstecktes Texteingabefeld mit der Formularfüllklasse: de.materna.cms.cae.struts.formfiller.TokenStoreFormFiller und der Konfiguration beanName=TokenMap und der der ID token.

Auf der letzten Formular-Seite der Umfrage, ist die Angabe von weiteren Dokumenten zum Abschluss der Umfrage nötig. Entscheidend ist an dieser Stelle die zusätzliche Einbindung einer HibernateAction als letzte Action, welche die Umfrage in der Datenbank speichert.

Formular-Parameter

Die eingehängte Action muss dabei die im folgenden Screenshot zu sehenden Parameter definieren:

Formular-Parameter

  • className=de.materna.cms.cae.database.survey.BkcmsSvInstance - die Klasse des zu speichernden Objektes, fix
  • hibernateAction=Save - Anwesisung, dass gespeichert sollsurveyName=NameDerUmfrage - der Name der Umfrage
  • updateInstanceAnswers=true - gibt an ob Antwortmöglichkeiten berücksichtigt werden sollen
  • updateInstanceTexts=true - gibt an ob Freitextantworten berücksichtigt werden sollen

Visuelle Gestaltung einer Umfrageseite

Velocity-Templates

In der Layoutdatei, welche in der Property „Layout“ angeben wird, wird die Visualisierung (Look & Feel) angegeben. Die hierbei verwendete Velocity-Technik ist u.a. auf http://velocity.apache.org/ ausführlich beschrieben.

Formularlayout

Darstellung von Fragen- und Antworttexten

Um internationalisierte Textbausteine anstelle der bisher verwendeten Dokumentennamen (z.B. „Frage_01“) anzuzeigen werden wie üblich Label verwendet.

Hierzu werden unter /_config/ResourceBundleEntries/Labels Dokumente vom Typ Konfiguration-Resource-Label angelegt; diese werden namentlich exakt so benannt, wie sie im GSBAdmin angeben wurden. In dieses Label-Dokument wird der zu erscheinende Text eingetragen, z.B. „Haben Sie heute schon gefrühstückt?“.

Hinweis:

Die Benennung der Label-Dokumente folgt folgender Konvention:Datatable___

Hierbei müssen die Token und die jeweiligen Namen der Umfrage, der Frage und ggf. der Antwortmöglichkeit (bspw. bei Radiobuttons) ersetzt werden.

Labels

Labels und Fragen