Dateiverwaltung für die WebBox
ulrich
2018-04-01 92d86e5568b8313725ac709d28e32377eba890b4
commit | author | age
798463 1 # Dateiverwaltung
U 2
0eeb83 3 Eine Bedienoberfläche zur Bearbeitung und Verwaltung von Dateien für die [WebBox](/data/ulrich/prg/webbox).  
798463 4
U 5 ## Funktionen
6
65ca7a 7 Die Dateiverwaltung besitzt die folgenden Funktionen
798463 8
65ca7a 9 - Persönliches und öffentliches Verzeichnis je Benutzer
680ec1 10 - Auflisten von Verzeichnissen und ihrer Inhalte
U 11 - Ansehen der Datei-Inhalte
12 - Erstellen und Bearbeiten von Texten und Dokumenten
65ca7a 13 - Dateien und Ordner kopieren, verschieben und löschen
680ec1 14 - Hochladen per Drag and Drop direkt in Ordner
U 15 - Listen- und Kachelansicht
798463 16
0eeb83 17 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).
798463 18
94179c 19 ### Konfiguration
U 20
8d15c3 21 Die Dateiverwaltung arbeitet mit relativen Pfadangaben und erhält den Ablageort von Dateien über die Angabe `de.uhilger.filecms.web.Initialiser.FILE_BASE` des Servlet-Kontext. Diese Angabe wird beim Start der Dateiverwaltung gebildet und kann im Deployment Descritor der Dateiverwaltung (Datei `WEB-INF/web.xml`) mit dem Context-Parameter `datenAblage` festgelegt werden.
94179c 22
U 23 #### Automatische Ermittlung des Ablageortes
24
25 Ist die Angabe `datenAblage` im Deployment Descriptor der Dateiverwaltung 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`.
26
798463 27 ## Webanwendung herstellen
U 28
1ac489 29 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.
798463 30
U 31 Desweiteren werden die folgenden Klassenbibliotheken benötigt
32
33 ```
34 Bibliothek            Datei(en)                       Ablageort lokal
35 ----------            ---------                       ---------------
36 Commons Fileupload .. commons-fileupload-1.3.2.jar .. $JLIB
37 Commons IO .......... commons-io-2.5.jar ............ $JLIB
38 Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME
39 XStream ............. xstream-1.4.7.jar ............. $JLIB
40 Jettison ............ jettison-1.3.3.jar ............ $JLIB
6720b6 41 Thumbnailator ....... thumbnailator.jar ............. $CATALINA_BASE
U 42 wbx-lib ............. wbx-lib.jar ................... $CATALINA_BASE
798463 43 Transit ............. Transit.jar ................... $JLIB
U 44 ```
45 Diese sind an folgenden Orten frei erhältlich:
46
47 - [Apache Commons](http://commons.apache.org)
48 - [Apache Tomcat](http://tomcat.apache.org)
49 - [XStream](https://github.com/codehaus/xstream)
50 - [Jettison](https://github.com/codehaus/jettison)
6720b6 51 - [Thumbnailator](https://github.com/coobird/thumbnailator)
2d4415 52 - [Transit](/gitblit/docs/Transit.git)
6720b6 53 - [wbx-lib](/gitblit/docs/wbx-lib.git)
798463 54
1197b5 55 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.
798463 56
1ac489 57 Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux):
798463 58
U 59 ```
60 cd $FILE-CMS
61 mkdir dist
62 mkdir build
63 cp -r web/* build
64 cd build/WEB-INF
65 mkdir classes
66 mkdir lib
67 cd ../..
68 cp $JLIB/* build/WEB-INF/lib
69
6720b6 70 $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
798463 71
30a32f 72 cp src/java/logging.properties build/WEB-INF/classes
798463 73 $JDK/bin/jar -cf dist/file-cms.war -C build .
U 74 rm -r build
75 ```
76
77 Das Webarchiv der Dateiverwaltung liegt anschließend als `$FILE-CMS/dist/file-cms.war` fertig zum Deployment bereit.
78
8d15c3 79 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.
6720b6 80
798463 81 ### Distributionsalternative
U 82
83 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.
84
85 ## Abhängigkeiten
86
87 Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll:
88
89 ```
90 $CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6
4d16ad 91 $CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 3.2.1
798463 92 $CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0
U 93 $CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0
94 $CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2
680ec1 95 $CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4
a5c558 96 $CATALINA_BASE/webapps/jslib/fancybox ............. mindestens in Version 3
c5eaaa 97 $CATALINA_BASE/webapps/jslib/moment ............... mindestens in Version 2.8.1
U 98 $CATALINA_BASE/webapps/jslib/numeral .............. mindestens in Version 2.0.6
798463 99 ```
U 100
101 `$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:
102
103 - [Bootstrap](http://getbootstrap.com)
104 - [jQuery](http://jquery.com)
105 - [Mustache](https://github.com/janl/mustache.js)
106 - [Font Awesome](http://fontawesome.io/)
85053f 107 - [Codemirror](https://codemirror.net)
680ec1 108 - [TinyMCE](https://tinymce.com)
a5c558 109 - [Fancybox](http://fancyapps.com/fancybox/3/)
c5eaaa 110 - [Moment](http://momentjs.com/)
U 111 - [Numeral](http://numeraljs.com/)
85053f 112
8d15c3 113 ## Geplante Erweiterungen
U 114
115 + Packen von Ordnern
116 + Feeds für Ordner
117
85053f 118 ## Lizenz
U 119
8d15c3 120 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.