From 41ab37e425058eab58e640c94b79b3a9e26fb169 Mon Sep 17 00:00:00 2001 From: ulrich Date: Sat, 09 Jan 2021 19:15:13 +0000 Subject: [PATCH] Erste Anpassungen am Rendering bei ui2 --- README.md | 92 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 77 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index ffdc579..2a13443 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,43 @@ # Dateiverwaltung -Die Dateiverwaltung ist eine Webanwendung, die eine Bedienoberfläche und Funktionen zur Verwaltung von Dateien auf einem [Tomcat Servlet Container] (http://tomcat.apache.org) bereitstellt. +Eine Webanwendung zur Bearbeitung und Verwaltung von Dateien für die [WebBox](/data/ulrich/prg/webbox). ## Funktionen -Die Dateiverwaltung stellt die folgenden Funktionen bereit +Die Dateiverwaltung besitzt die folgenden Funktionen -- hier -- Funktionen -- auflisten +- 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). +Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv). Weitere Informationen zur Dateiverwaltung finden sich auf der [Produktseite](/data/ulrich/prg/file-cms). -Weitere Informationen zur Dateiverwaltung finden sich auf der Produktseite (Link noch angeben...). +### 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](http://azul.com) oder dem [OpenJDK-Projekt](http://openjdk.java.net/) erhältlich ist. In der hier folgenden weiteren Beschreibung wird der lokale Ablageort des Java Development Kits `$JDK` genannt. +Zum Herstellen der Webanwendung wird ein Java Development Kit (JDK) benötigt, wie es z.B. von [Azul](http://azul.com) oder dem [OpenJDK-Projekt](http://openjdk.java.net/) 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 @@ -28,8 +49,9 @@ 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 -FileSystem .......... FileSystem.jar ................ $JLIB ``` Diese sind an folgenden Orten frei erhältlich: @@ -37,12 +59,13 @@ - [Apache Tomcat](http://tomcat.apache.org) - [XStream](https://github.com/codehaus/xstream) - [Jettison](https://github.com/codehaus/jettison) -- [Transit](/gitblit/summary/Transit.git) -- [FileSystem] (/gitblit/summary/FileSystem.git) +- [Thumbnailator](https://github.com/coobird/thumbnailator) +- [Transit](/gitblit/docs/Transit.git) +- [wbx-lib](/gitblit/docs/wbx-lib.git) Nach Beschaffung des JDK und der oben angegebenen Klassenbibliotheken wird der Quellcode aus diesem Git-Repository an einen frei wählbaren lokalen Ablageort [heruntergeladen](http://uhilger.de/gitblit/zip/?r=file-cms.git&h=master&format=zip) 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 WebBox-Verwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux): +Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux): ``` cd $FILE-CMS @@ -55,7 +78,7 @@ 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/FileSystem.jar:$JLIB/xstream-1.4.7.jar:$CATALINA_HOME/lib/servlet-api.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 +$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 . @@ -63,6 +86,8 @@ ``` 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 @@ -74,10 +99,14 @@ ``` $CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6 -$CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 1.11.1 +$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](http://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt) der Tomcat-Dokumentation so bezeichnete Verzeichnis. Nachfolgend die Quellen, von denen die obigen Abhängigkeiten bezogen werden können: @@ -87,7 +116,40 @@ - [Mustache](https://github.com/janl/mustache.js) - [Font Awesome](http://fontawesome.io/) - [Codemirror](https://codemirror.net) +- [TinyMCE](https://tinymce.com) +- [Fancybox](http://fancyapps.com/fancybox/3/) +- [Moment](http://momentjs.com/) +- [Numeral](http://numeraljs.com/) + +## 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](/gitblit/blob/file-cms.git/master/web!agpl.txt) bereitgestellt. Die von der Dateiverwaltung verwendeten Komponenten unterliegen zum Teil anderen Lizenzen. Deren Nutzungsbedingungen sind an den angegebenen Quellen der Komponenten angegeben. \ No newline at end of file +Die Dateiverwaltung wird zu den Bedingungen der [GNU Affero General Public License](/gitblit/doc/file-cms.git/master/web!agpl.txt) 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) + -- Gitblit v1.9.3