2020.06 2021.06

Klassifikationseditor

Der Abschnitt beschreibt die Funktionsweise und Integration des Klassifikationseditors

Klassifikationseditor

Mit dem Klassifikationseditors als Webinterface, gibt es neben der Kommandozeilen-Schnittstelle eine weitere Möglichkeit, Klassifikationen im System zu erzeugen, zu bearbeiten und zu löschen. Im Unterschied zum ersten Klassifikationseditor bietet die neue Version eine vollständig überarbeitete, auf JavaScript basierende Oberfläche.

Konfiguration

Der Aufruf erfolgt bei einer lokalen Beispiel-Installation über folgende URL:
http://localhost:8291/modules/classeditor/classificationEditor.xml

Weiterhin können verschiedene XSL-Parameter übergeben werden. Die Parameter starten alle mit XSL.classeditor. Zum Beispiel:
http://localhost:8291/modules/classeditor/classificationEditor.xml?XSL.classeditor.debug=true&XSL.classeditor.showId=true

Parameter Werte Beschreibung
debug true | false Stellt den Debug-Modus ein. Damit wird die ausführliche statt die komprimierte JS-Datei geladen.
class Klassifikations-ID
z.B. DocPortal_class_1
Gibt die Klassifikation an welche geladen werden soll. Wird dieser Parameter weggelassen werden alle Klassifikationen angezeigt.
categ Kategorie-ID Die ID einer Kategorie welche geladen werden soll. Dieser Parameter wird ignoriert wenn keine Klassifikations-ID angegeben wurde.
showId true | false IDs werden angezeigt und können bearbeitet werden.

Unter http://localhost:8291/modules/classeditor/classificationEditorDiag.xml kann zusätzlich ein Dialog basierender Klassifikationseditor aufgerufen werden.

ACL

Um Anwendern die Möglichkeit zu geben mit dem Klassifikationseditor zu arbeiten müssen vorher entsprechende Rechte vergeben werden. Da der Klassifikationseditor auf Jersey basiert wird als ID der Klassenpfad der Resource verwendet. Das Zugriffsrecht entspricht der aufgerufenen Methode kombiniert mit der HTTP Anfrage Methode (GET, POST, HEAD...).

1
2
3
4
        Speichern:
        Objekt ID: org.mycore.frontend.classeditor.resources.MCRClassificationEditorResource
        Zugriffsrecht: /classifications/save_POST
      
1
2
3
4
        Import:
        Objekt ID: org.mycore.frontend.classeditor.resources.MCRClassificationEditorResource
        Zugriffsrecht: /classifications/import_POST
      

Anpassung

Gestartet wird der Editor mithilfe der JavaScript Klasse classeditor.Editor. Als einziger Parameter wird ein JSON-Objekt erwartet welches die Einstellungen für den Editor bereithält. Die genauen Attribute können aus der Klassenbeschreibung entnommen werden.

Um den Editor einzubinden sollten die Templates der XSL-Datei classificationEditorBase.xsl verwendet werden. Die Templates sind modular gestaltet um jeden Entwickler selbst entscheiden zu lassen was er benötigt. Wird das dojo-Framework z.B. schon im Layoutprozess eingebunden muss classeditor.includeDojoJS nicht mehr aufgerufen werden. Der Entwickler muss dann natürlich dafür Sorge tragen das alle notwendigen dojo und dijit Resourcen verfügbar sind.

Ein Beispiel in dem das dojo-Framework und der Klassifikationseditor erst per Anwenderklick geladen wird findet sich im Zeitschriftenserver der ThULB: svn.thulb.uni-jena.de/viewvc/jportal2/trunk/jportal_mcr_module/src/main/resources/web/classification/ClassificationEditor.js

Hinweise

Um alle css Formatierungen korrekt anzuzeigen muss der Body-Tag die Klasse des aktuellen dojo-Themes erhalten, in der Regel 'claro'. Dazu sollte die JavaScript Methode updateBodyTheme() vor dem laden des Klassifikationseditors aufgerufen werden.