1.13 Inhalte beitragen

Wenn aktiv, können Benutzer eigene Inhalte beitragen. Dabei wird im Goobi viewer ein Uploadformular zur Verfügung gestellt über das innerhalb von Goobi workflow ein Vorgang angelegt werden kann. Der Status des Vorgangs wird regelmäßig überprüft und dem Benutzer in der Oberfläche visualisiert.

Hier ist die Konfiguration von vorne bis hinten einmal dokumentiert.

Goobi workflow

Innerhalb von Goobi workflow muss der Zugriff auf verschiedene REST Endpoints aktiviert sein. Dafür muss die IP-Adresse des Goobi viewers sowie ein Token dafür hinterlegt werden:

goobi_rest.xml
<?xml version='1.0' encoding='UTF-8'?>
<config>
    <endpoint path="/process/details.*">
        <method name="get">
            <allow netmask="127.0.0.0/8" token="SECRETTOKEN"/>
        </method>
    </endpoint>
    <endpoint path="/processes.*">
        <method name="post">
            <allow netmask="127.0.0.0/8" token="SECRETTOKEN"/>
        </method>
    </endpoint>
</config>

In dem folgenden Beispiel gehen wir davon aus, dass es ein Projekt: viewer_UserUploads gibt. Darin enthalten ist eine Produktionsvorlage: viewer_UserUpload. Innerhalb der Produktionsvorlage ist ein Schritt: Check content in metadata editor enthalten.

In diesem Schritt zeigen wir die E-Mailadresse des einreichenden Benutzers an, sowie die Möglichkeit den eingereichten Inhalt abzulehnen und einen Ablehnungsgrund einzugeben. Das geschieht über Prozesseigenschaften:

goobi_processProperties.xml
<?xml version="1.0" encoding="UTF-8"?>
<config_processProperties>
    <property name="email" container="0">
        <project>viewer_UserUploads</project>
        <showStep name="Check content in metadata editor" access="read"/>
        <showProcessGroup access="read"/>
        <type>Text</type>
    </property>
    <property name="Rejected" container="0">
        <project>viewer_userUploads</project>
        <showStep name="Check content in metadata editor" access="write"/>
        <showProcessGroup access="read"/>
        <type>List</type>
        <defaultvalue>false</defaultvalue>
        <value>false</value>
        <value>true</value>
    </property>
    <property name="Rejection reason" container="0">
        <project>viewer_UserUploads</project>
        <showStep name="Check content in metadata editor" access="write"/>
        <showProcessGroup access="read"/>
        <type>text</type>
    </property>
</config_processProperties>

Goobi viewer

Innerhalb des Goobi viewers muss eine URL zu der verwendeten Goobi workflow Installation konfiguriert werden:

config_viewer.xml
<urls>
    <workflow>https://workflow.example.org/goobi/api/</workflow>
</urls>

Weiter muss die Funktionalität aktiviert und mit den entsprechenden, in Goobi workflow definierten Werten, konfiguriert sein:

config_viewer.xml
<upload enabled="true">
        <token>SECRETTOKEN</token>
        <docstruct>object</docstruct>
        <templateName>viewer_UserUploads</templateName>
        <rejectionPropertyName>Rejected</rejectionPropertyName>
        <rejectionReasonPropertyName>Rejection reason</rejectionReasonPropertyName>
</upload>

Um regelmäßig zu prüfen wie der Bearbeitungsstatus ist, muss ein Cronjob angelegt werden. Dieser prüft einmal pro Stunde alle beigetragenen Inhalte die im Status "WAITING" sind ob es irgendwelche Veränderungen gibt.

/etc/cron.d/intranda-goobiviewer
42 *       * * *   root  curl -s -H "Content-Type: application/json" -H "token:GOOBIVIEWERAPITOKEN" -d '{"type":"UPDATE_UPLOAD_JOBS"}' -X POST http://localhost:8080/api/v1/tasks/ 1>/dev/null

Last updated