Eine Webanwendung zur Bearbeitung und Verwaltung von Dateien für die WebBox.
Die Dateiverwaltung besitzt die folgenden Funktionen
Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv).
Die Dateiverwaltung bezieht den Ablageort von Dateien über die Systemvariable wbx.data
. Diese Angabe muss beim Start des Java-Prozesses als Parameter gesetzt sein wie in java -Dwbx.data=/pfad/zu/den/daten [weitere Parameter]
. Bei Verwendung von Tomcat kann diese Angabe auch in der Environment-Variable JAVA_OPTS
hinterlegt werden.
Ist die Angabe wbx.data
nicht zu finden oder leer, wird der Ablageort ausgehend von $CATALINA_BASE/webapps
ermittelt. Dieser Vorgang kann in der Datei WEB-INF/web.xml
mit den Parametern tiefe
und datenOrdner
beeinflusst werden.
Der Vorgang zur Ermittlung des Ablageortes für Daten geht ausgehend von $CATALINA_BASE/webapps
die Anzahl Ordner tiefe
nach oben und verwendet von diesem Ordner aus den Pfad in datenOrdner
.
Zum Herstellen der Webanwendung wird ein Java Development Kit (JDK) benötigt, wie es z.B. von Azul oder dem OpenJDK-Projekt frei erhältlich ist. In der hier folgenden weiteren Beschreibung wird der lokale Ablageort des Java Development Kits $JDK
genannt.
Desweiteren werden die folgenden Klassenbibliotheken benötigt
Bibliothek Datei(en) Ablageort lokal
---------- --------- ---------------
Commons Fileupload .. commons-fileupload-1.3.2.jar .. $JLIB
Commons IO .......... commons-io-2.5.jar ............ $JLIB
Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME
XStream ............. xstream-1.4.7.jar ............. $JLIB
Jettison ............ jettison-1.3.3.jar ............ $JLIB
Thumbnailator ....... thumbnailator.jar ............. $CATALINA_BASE
wbx-lib ............. wbx-lib.jar ................... $CATALINA_BASE
Transit ............. Transit.jar ................... $JLIB
Diese sind an folgenden Orten frei erhältlich:
Ferner erfordert die Dateiverwaltung die folgenden Javascript-Bibliotheken:
$JSLIB/jquery ............... mindestens in Version 3.2.1
$JSLIB/mustache ............. mindestens in Version 2.3.0
$JSLIB/codemirror ........... mindestens in Version 5.24.2
$JSLIB/tinymce .............. mindestens in Version 4.3.4
$JSLIB/fancybox ............. mindestens in Version 3
$JSLIB/moment ............... mindestens in Version 2.8.1
$JSLIB/numeral .............. mindestens in Version 2.0.6
Nachfolgend die Quellen, von denen die obigen Abhängigkeiten bezogen werden können:
Nach Beschaffung des JDK und der oben angegebenen Bibliotheken wird der Quellcode aus diesem Git-Repository an einen frei wählbaren lokalen Ablageort heruntergeladen und entpackt. In der hier folgenden weiteren Beschreibung wird das so entstandene Verzeichnis file-cms-master
einschließlich des absoluten Pfades dorthin $FILE-CMS
genannt. Ferner wird angenommen, dass die oben aufgeführten Bliotheken lokal an Orten abgelegt sind, deren Pfade mit den Platzhaltern $JLIB
und $JSLIB
gemeint sind. Anstelle der Platzhalter in den folgenden Kommandos muss also der absolute Pfad des lokalen Ablageortes eingesetzt werden.
Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux):
cd $FILE-CMS
mkdir dist
mkdir build
cp -r web/* build
cd build/WEB-INF
mkdir classes
mkdir lib
cd ..
mkdir jslib
cd ..
cp $JLIB/* build/WEB-INF/lib
cp -r $JSLIB/* build/jslib
$JDK/bin/javac -classpath $JLIB/commons-fileupload-1.3.2.jar:$JLIB/commons-io-2.5.jar:$JLIB/jettison-1.3.3.jar:$JLIB/Transit.jar:$JLIB/xstream-1.4.7.jar:$CATALINA_HOME/lib/servlet-api:$CATALINA_BASE/lib/thumbnailator.jar:$CATALINA_BASE/lib/wbx-lib.jar.jar -d ./build/WEB-INF/classes src/java/de/uhilger/filecms/api/*.java src/java/de/uhilger/filecms/web/*.java src/java/de/uhilger/filecms/pub/*.java
cp src/java/logging.properties build/WEB-INF/classes
$JDK/bin/jar -cf dist/file-cms.war -C build .
rm -r build
Das Webarchiv der Dateiverwaltung liegt anschließend als $FILE-CMS/dist/file-cms.war
fertig zum Deployment bereit.
Die im obigen Build-Skript bereits mit $CATALINA_BASE
gekennzeichneten Klassenbibliotheken werden nicht als Teil des Webarchivs der Dateiverwaltung gebaut und im Verzeichnis $CATALINA_BASE/lib
der WebBox erwartet.
Das Kommando cp $JLIB/* build/WEB-INF/lib
kann auch weggelassen werden, dann sind die Klassenbibliotheken nicht Teil des Webarchivs der Dateiverwaltung. In diesem Fall muss stattdessen der Inhalt von $JLIB
nach $CATALINA_BASE/lib
kopiert werden.
Zum Ausfuehren wird die Datei file-cms.war
in den Ordner $CATALINA_BASE/webapps
von Tomcat gelegt. Der Aufruf erfolgt anschliessend mit dem URL https://example.com/file-cms/ui2
. Nutzer muessen die Rolle ownFileAdmin
besitzen um die Webanwendung verwenden zu koennen.
Die Ausfuehrung gelingt in der hier beschriebenen Konfiguration auch ohne die WebBox auf einem Tomcat, wie er ab Werk ausgestattet ist. Die folgenden Einstellungen muessen in diesem Fall von Hand an Tomcat vorgenommen werden:
$CATALINA_BASE/conf/server.xml
einschaltenwbx.data
wie weiter oben erwaehnt)data.xml
und home.xml
in $CATALINA_BASE/conf/Catalina/localhost
anlegen wie in folgendem Beispiel<?xml version="1.0" encoding="UTF-8"?>
<Context path="/data" docBase="${wbx.data}/www/">
</Context>
Das file-cms
legt beim ersten Start die Verzeichnisse www und home in dem Verzeichnis an, das mit wbx.data
angegeben wurde (siehe weiter oben). Wenn beispielsweise der Ablageort /media/rdata/cms
als wbx.data
angegeben wurde ist der Eintrag fuer docBase
in data.xml
/media/rdata/cms/www
und in home.xml
/media/rdata/cms/home
.
Die Dateiverwaltung wird zu den Bedingungen der GNU Affero General Public License bereitgestellt. Die von der Dateiverwaltung verwendeten Komponenten unterliegen zum Teil anderen Lizenzen. Deren Nutzungsbedingungen sind an den Quellen der Komponenten angegeben.