Dateiverwaltung für die WebBox
edit | blame | history | raw

Dateiverwaltung

Eine Webanwendung zur Bearbeitung und Verwaltung von Dateien für die WebBox.

Funktionen

Die Dateiverwaltung besitzt die folgenden Funktionen

  • Persönliches und öffentliches Verzeichnis je Benutzer
  • Auflisten von Verzeichnissen und ihrer Inhalte
  • Ansehen der Datei-Inhalte
  • Erstellen und Bearbeiten von Texten und Dokumenten
  • Dateien und Ordner kopieren, verschieben und löschen
  • Hochladen per Drag and Drop direkt in Ordner
  • Listen- und Kachelansicht

Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv). Weitere Informationen zur Dateiverwaltung finden sich auf der Produktseite.

Konfiguration

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.

Automatische Ermittlung des Ablageortes

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.

Webanwendung herstellen

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.

Distributionsalternative

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.

Abhängigkeiten

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:

Ausfuehren

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:

  • SingleSignOn Valve in $CATALINA_BASE/conf/server.xml einschalten
  • Environment-Variable fuer den Ablageort in $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.

Lizenz

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.

ui2 Prototyp

Versuch einer neuen Bedienoberfläche basierend auf app-vorlage und app-menu

Änderungen gegenüber der Bedienoberfläche des file-cms

  • kein Bootstrap mehr
  • kein jQuery mehr (allerdings benötigt Fancybox jQuery -> evtl. in separate .html-Datei auslagern)
  • kein FontAwesome mehr, die wenigen benötigtgten Piktogramme sind mit Hilfe von Fontello aus FontAwesome entnommen und in das file-cms-Projekt kopiert (nur wenige KB)