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). Weitere Informationen zur Dateiverwaltung finden sich auf der Produktseite.
Die Dateiverwaltung erhält den Ablageort von Dateien über den JNDI-Eintrag
<Environment
name="wbxFileBase"
type="java.lang.String"
value="/pfad/zu/den/daten"
override="false"
/>
Wenn die Angabe wbxFileBase
wie oben als JNDI-Parameter angegeben wird, kann sie beispielsweise in der Datei $CATALINA_BASE/context.xml
hinterlegt werden.
Ist die Angabe wbxFileBase
nicht zu finden oder leer, wird der Ablageort ../../../daten
ausgehend von $CATALINA_BASE/webapps
verwendet. Wenn also z.B. das webapps-Verzeichnis in /usr/local/tomcat/webapps
liegt, dann wird das Datenverzeichnis der Dateiablage in /usr/daten
vermutet. Liegt es stattdessen in /media/extmirror/srv/wbx/sys/base/webapps
dann lautet der Datenpfad /media/extmirror/srv/wbx/daten
.
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:
Nach Beschaffung des JDK und der oben angegebenen Klassenbibliotheken 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 Klassenbibliotheken lokal an Orten abgelegt sind, deren Pfade mit den Platzhaltern $JLIB
und $CATALINA_HOME
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 ../..
cp $JLIB/* build/WEB-INF/lib
$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.
Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll:
$CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6
$CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 3.2.1
$CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0
$CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0
$CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2
$CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4
$CATALINA_BASE/webapps/jslib/fancybox ............. mindestens in Version 3
$CATALINA_BASE/webapps/jslib/moment ............... mindestens in Version 2.8.1
$CATALINA_BASE/webapps/jslib/numeral .............. mindestens in Version 2.0.6
$CATALINA_BASE
meint das in der der Datei RUNNING.txt der Tomcat-Dokumentation so bezeichnete Verzeichnis. Nachfolgend die Quellen, von denen die obigen Abhängigkeiten bezogen werden können:
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/ui
. 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
einschalten$CATALINA_BASE/conf/context.xml
anlegen (Angabe fuer wbxFileBase
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="/pfad/zum/ablageort">
</Context>
Das file-cms
legt beim ersten Start die Verzeichnisse www und home in dem Verzeichnis an, das mit wbxFileBase
angegeben wurde (siehe weiter oben). Wenn beispielsweise der Ablageort /media/rdata/cms
als wbxFileBase
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.