Hacking ownCloud: Benutzerfreundlichkeit bei der Navigation erhöhen

Für diverse Projekte setzen wir die Software ownCloud als Dateiverwaltung / Intranet ein. Damit ist es möglich, sozusagen eine eigene „Dropbox“ zu erstellen inkl. Sharing-Optionen, Berechtigungen, anonymen Zugriffen etc.. Beim Einsatz mit vielen Benutzern hat sich jedoch gezeigt, dass die Benutzerfreundlichkeit der Web-Oberfläche noch zu wünschen übrig lässt.

owncloud-01
Bei Klick auf Ordnername wird navigiert, bei Klick auf Symbol selektiert.

Navigation via Ordner ermöglichen
Konkret geht es darum, dass bei einem Klick auf einen Ordner bzw. Symbol neue eine Navigation möglich sein soll. Normalerweise wird mit Klick auf den Ordner der entsprechende Ordner ausgewählt, um diesen bzw. mehrere selektierte Ordner danach als Zip-Datei herunterzuladen oder zu löschen. Unsere Erfahrung zeigt, dass viele Benutzer damit überfordert sind. Sie erwarten, via Symbol ebenfalls in der Dateistruktur navigieren zu können. Oder dass, wenn ein Ordner selektiert ist und Dateien hochgeladen werden, diese in diesen Ordner geladen werden. Was natürlich nicht der Fall ist. Das Herunterladen eines gesamten Ordners als Zip-Datei ist auch mit dem Herunterladen-Link hinter dem Dateinamen möglich, dazu braucht es die Selektieren-Funktion nicht. Wer das also unbedingt benötigt (obwohl das eher unzuverlässig funktioniert), kann das weiterhin machen.

Upgrade-Fähigkeit dahin
Ziel war, dieses Verhalten zu ändern und so die Support-Anfragen zu minimieren. Ganz im Bewusstsein, dass die Upgrade-Fähigkeit der Installation darunter leidet. Jedoch hält sich der Aufwand in Grenzen. Wir haben an einer einzigen Datei in vier Codezeilen Anpassungen vorgenommen. Da dies wirklich die bisher einzige Anpassung im ownCloude-Core ist und es auch dabei bleiben soll, ist der Aufwand für ein Upgrade noch vertretbar. Wir führen sowieso für jede Installation (egal ob ownCloud, WordPress etc.) eine Datei mit Besonderheiten. Da sind auch Hinweise zum upgraden vorhanden. Und im schlimmsten Fall, wenn die Datei versehentlich überschrieben würde, ist wieder das Standard-Verhalten aktiv. Zwar unschön, aber kein Weltuntergang.

Die Lösung
Die Darstellung der Dateiliste wird in der Datei /apps/files/js/filelist.js generiert. Ab Zeile 727 ist bereits vorgesehen, dass die Selektion abgestellt werden kann.
Erster Schritt: Variable _allowSelection auf false setzen (Zeile 100):

owncloud-02

Zweiter Schritt: Die Zeile auskommentieren, welche nun mit _allowSelection: false aufgerufen würde. Wir hätten zwar mit der auskommentierten Zeile das Input-Element nicht mehr, aber das Symbol wäre dann nicht mehr verlinkt und die Navigation würde noch nicht funktionieren.

owncloud-03

Dritter Schritt: Wir fügen das Ordner-Symbol bzw. Datei-Symbol innerhalb des Zeilenlinks wieder hinzu, sodass auch das Symbol als Navigationslink funktioniert. Dazu definieren wir etwas weiter unten im Code eine neue Variable iconSpan und fügen dieses neue icon-Element dem Link hinzu:

owncloud-04

Fazit
Die Anpassung ist nicht sonderlich komplex, doch sie erhöht die Benutzerfreundlichkeit enorm. Trotzdem ist die Lösung, weil Anpassung im core, unbefriedigend. Als nächstes sollte darum dafür gesorgt werden, dass die Funktionalität im owncloud-core Einzug findet. Das ist gerade der grosse Vorteil von OpenSource: Fehlende Funktionen oder Anpassungen können frei entwickelt und dann der community zurückgegeben werden. Dieser Blog-Beitrag ist ein Teil davon.

Leave a Reply

Your email address will not be published. Required fields are marked *