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 |
|
b12c95
|
21 |
Die Dateiverwaltung erhält den Ablageort von Dateien über den JNDI-Eintrag |
U |
22 |
|
|
23 |
```` |
|
24 |
<Environment |
|
25 |
name="wbxFileBase" |
|
26 |
type="java.lang.String" |
|
27 |
value="/pfad/zu/den/daten" |
|
28 |
override="false" |
|
29 |
/> |
|
30 |
```` |
|
31 |
|
|
32 |
Wenn die Angabe `wbxFileBase` wie oben als JNDI-Parameter angegeben wird, kann sie beispielsweise in der Datei `$CATALINA_BASE/context.xml` hinterlegt werden. |
94179c
|
33 |
|
U |
34 |
#### Automatische Ermittlung des Ablageortes |
|
35 |
|
b12c95
|
36 |
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`. |
94179c
|
37 |
|
798463
|
38 |
## Webanwendung herstellen |
U |
39 |
|
1ac489
|
40 |
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
|
41 |
|
U |
42 |
Desweiteren werden die folgenden Klassenbibliotheken benötigt |
|
43 |
|
|
44 |
``` |
|
45 |
Bibliothek Datei(en) Ablageort lokal |
|
46 |
---------- --------- --------------- |
|
47 |
Commons Fileupload .. commons-fileupload-1.3.2.jar .. $JLIB |
|
48 |
Commons IO .......... commons-io-2.5.jar ............ $JLIB |
|
49 |
Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME |
|
50 |
XStream ............. xstream-1.4.7.jar ............. $JLIB |
|
51 |
Jettison ............ jettison-1.3.3.jar ............ $JLIB |
6720b6
|
52 |
Thumbnailator ....... thumbnailator.jar ............. $CATALINA_BASE |
U |
53 |
wbx-lib ............. wbx-lib.jar ................... $CATALINA_BASE |
798463
|
54 |
Transit ............. Transit.jar ................... $JLIB |
U |
55 |
``` |
|
56 |
Diese sind an folgenden Orten frei erhältlich: |
|
57 |
|
|
58 |
- [Apache Commons](http://commons.apache.org) |
|
59 |
- [Apache Tomcat](http://tomcat.apache.org) |
|
60 |
- [XStream](https://github.com/codehaus/xstream) |
|
61 |
- [Jettison](https://github.com/codehaus/jettison) |
6720b6
|
62 |
- [Thumbnailator](https://github.com/coobird/thumbnailator) |
2d4415
|
63 |
- [Transit](/gitblit/docs/Transit.git) |
6720b6
|
64 |
- [wbx-lib](/gitblit/docs/wbx-lib.git) |
798463
|
65 |
|
1197b5
|
66 |
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
|
67 |
|
1ac489
|
68 |
Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux): |
798463
|
69 |
|
U |
70 |
``` |
|
71 |
cd $FILE-CMS |
|
72 |
mkdir dist |
|
73 |
mkdir build |
|
74 |
cp -r web/* build |
|
75 |
cd build/WEB-INF |
|
76 |
mkdir classes |
|
77 |
mkdir lib |
|
78 |
cd ../.. |
|
79 |
cp $JLIB/* build/WEB-INF/lib |
|
80 |
|
6720b6
|
81 |
$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
|
82 |
|
30a32f
|
83 |
cp src/java/logging.properties build/WEB-INF/classes |
798463
|
84 |
$JDK/bin/jar -cf dist/file-cms.war -C build . |
U |
85 |
rm -r build |
|
86 |
``` |
|
87 |
|
|
88 |
Das Webarchiv der Dateiverwaltung liegt anschließend als `$FILE-CMS/dist/file-cms.war` fertig zum Deployment bereit. |
|
89 |
|
8d15c3
|
90 |
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
|
91 |
|
798463
|
92 |
### Distributionsalternative |
U |
93 |
|
|
94 |
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. |
|
95 |
|
|
96 |
## Abhängigkeiten |
|
97 |
|
|
98 |
Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll: |
|
99 |
|
|
100 |
``` |
|
101 |
$CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6 |
4d16ad
|
102 |
$CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 3.2.1 |
798463
|
103 |
$CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0 |
U |
104 |
$CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0 |
|
105 |
$CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2 |
680ec1
|
106 |
$CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4 |
a5c558
|
107 |
$CATALINA_BASE/webapps/jslib/fancybox ............. mindestens in Version 3 |
c5eaaa
|
108 |
$CATALINA_BASE/webapps/jslib/moment ............... mindestens in Version 2.8.1 |
U |
109 |
$CATALINA_BASE/webapps/jslib/numeral .............. mindestens in Version 2.0.6 |
798463
|
110 |
``` |
U |
111 |
|
|
112 |
`$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: |
|
113 |
|
|
114 |
- [Bootstrap](http://getbootstrap.com) |
|
115 |
- [jQuery](http://jquery.com) |
|
116 |
- [Mustache](https://github.com/janl/mustache.js) |
|
117 |
- [Font Awesome](http://fontawesome.io/) |
85053f
|
118 |
- [Codemirror](https://codemirror.net) |
680ec1
|
119 |
- [TinyMCE](https://tinymce.com) |
a5c558
|
120 |
- [Fancybox](http://fancyapps.com/fancybox/3/) |
c5eaaa
|
121 |
- [Moment](http://momentjs.com/) |
U |
122 |
- [Numeral](http://numeraljs.com/) |
85053f
|
123 |
|
U |
124 |
## Lizenz |
|
125 |
|
8d15c3
|
126 |
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. |