Dateiverwaltung für die WebBox
ulrich
2017-02-28 8a09f479c1f66d750f0fa73bd4e4f1a993a9bfff
commit | author | age
798463 1 # Dateiverwaltung
U 2
fcee96 3 Eine Bedienoberfläche zur Bearbeitung und Verwaltung von Dateien für die [WebBox](/dev/Software/WebBox/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
680ec1 17 Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv). Weitere Informationen zur Dateiverwaltung finden sich auf der [Produktseite](/dev/Software/filecms/Dateiverwaltung).
798463 18
U 19 ## Webanwendung herstellen
20
1ac489 21 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 22
U 23 Desweiteren werden die folgenden Klassenbibliotheken benötigt
24
25 ```
26 Bibliothek            Datei(en)                       Ablageort lokal
27 ----------            ---------                       ---------------
28 Commons Fileupload .. commons-fileupload-1.3.2.jar .. $JLIB
29 Commons IO .......... commons-io-2.5.jar ............ $JLIB
30 Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME
31 XStream ............. xstream-1.4.7.jar ............. $JLIB
32 Jettison ............ jettison-1.3.3.jar ............ $JLIB
33 Transit ............. Transit.jar ................... $JLIB
34 FileSystem .......... FileSystem.jar ................ $JLIB
35 ```
36 Diese sind an folgenden Orten frei erhältlich:
37
38 - [Apache Commons](http://commons.apache.org)
39 - [Apache Tomcat](http://tomcat.apache.org)
40 - [XStream](https://github.com/codehaus/xstream)
41 - [Jettison](https://github.com/codehaus/jettison)
2d4415 42 - [Transit](/gitblit/docs/Transit.git)
U 43 - [FileSystem] (/gitblit/docs/FileSystem.git)
798463 44
1197b5 45 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 46
1ac489 47 Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux):
798463 48
U 49 ```
50 cd $FILE-CMS
51 mkdir dist
52 mkdir build
53 cp -r web/* build
54 cd build/WEB-INF
55 mkdir classes
56 mkdir lib
57 cd ../..
58 cp $JLIB/* build/WEB-INF/lib
59
1197b5 60 $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
798463 61
30a32f 62 cp src/java/logging.properties build/WEB-INF/classes
798463 63 $JDK/bin/jar -cf dist/file-cms.war -C build .
U 64 rm -r build
65 ```
66
67 Das Webarchiv der Dateiverwaltung liegt anschließend als `$FILE-CMS/dist/file-cms.war` fertig zum Deployment bereit.
68
69 ### Distributionsalternative
70
71 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.
72
73 ## Abhängigkeiten
74
75 Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll:
76
77 ```
78 $CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6
79 $CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 1.11.1
80 $CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0
81 $CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0
82 $CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2
680ec1 83 $CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4
798463 84 ```
U 85
86 `$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
88 - [Bootstrap](http://getbootstrap.com)
89 - [jQuery](http://jquery.com)
90 - [Mustache](https://github.com/janl/mustache.js)
91 - [Font Awesome](http://fontawesome.io/)
85053f 92 - [Codemirror](https://codemirror.net)
680ec1 93 - [TinyMCE](https://tinymce.com)
85053f 94
U 95 ## Lizenz
96
db9792 97 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.