Feature Wiki

Information about planned and released features

Tabs

WebDAV - Versioning of files

1 Initial Problem

If one uploads an already existing file on ILIAS over the WebDAV service, the file on ILIAS will always be overwritten with the uploaded file. This happens without creating a new version. Additionally, the “Last Modification”-date stays the same.

Of course most file explorers will prevent you from just overwriting an existing file with an “Are you sure?”-Dialog. But in some cases, it might be intended to overwrite a file with a new version. In this case, the old version will be lost. Some users might not even notice that they just have overwritten their old version. Others just change the title from for example “name_v1_0.pdf” to “name_v1_1.pdf” to prevent the overwriting.

2 Conceptual Summary

Since the File-Object in ILIAS supports multiple file versions, we would like to use this feature in WebDAV. The implementation of this feature is quite simple: If a file is uploaded and it already exists, the version will be increased by one and the file will be saved under this new version.

Additionally, it should be possible to turn this feature on and off in the WebDAV-settings of the ILIAS client. Independently of this, settings, the behaviour of the file upload will be changed, so that the “Last Modification”-date will be changed on every version-upload,.

We would like to backport the updating of the modification date as a bugfix to all supported ILIAS versions.

3 User Interface Modifications

The settings for file versioning will just be a simple checkbox to activate and deactivate it. This checkbox is located on the WebDAV settings page inside of the file administration settings.

3.1 List of Affected Views

  • WebDAV settings page inside of the file administration settings. (Administration -> Files -> WebDAV)

3.2 User Interface Details

  • New checkbox with the title "Versioning"
    • Also, this option should have an info text to make it clear for the user, what this means
    • The wording could look like this: "If versioning is activated, a file upload over WebDAV for an already existing file will add a new version to this file object instead of overwriting it."

4 Technical Information

During the refactoring of WebDAV for ILIAS 5.4, we from the Lucerne University for applied sciences and arts (Hochschule Luzern) already tested the feature of creating new versions instead of overwriting. But since this was not part of our Feature Request for ILIAS 5.4, we just saved the changes for this feature request.

4.1 Implementation

The implementation is quite simple. On every file upload that should create a new file, the version of the file object will be incremented. Since the folder of the actual file is determined by the file version, the new upload will get its own folder where the file will be saved.

4.2 Probable Issues

Since every file upload creates a version, there can be an “over versioning”. For example: If one opens a document from a WebDAV-folder directly with a text editor (for example word), every new save on this document means a new version on ILIAS. If the editor of this document saves, every minute to prevent data loss, after 30 minutes there will be 30 new versions of this file with just small differences.

We still believe that this would constitute a significant improvement. As the feature will be configurable, you can change this setting back to the current behavior. To avoid surprises the versioning setting will default to off, thus keeping the current behavior.

4.3 RFC 3253 – Version Extension to WebDAV (just an additional information)

WebDAV is short for Web Distributed Authoring and Versioning. As the name suggest, there is an extension to WebDAV for versioning, which is called Delta-V and is defined by RFC3253. Our WebDAV library sabreDAV does not natively support this feature. As stated by sabre itself, there are no widespread clients, which implement this feature. Due to this fact, we decided, that the direct use of the ILIAS versioning is the best solution.

Source:

5 Contact

6 Funding

If you are interest in funding this feature, please add your name and institution to this list.

7 Discussion

JourFixe, ILIAS [jourfixe], 07 MAY 2019 : We highly appreciate this suggestion and schedule the feature for 6.0. Bugfix for modification date is accepted for all supported versions.

8 Implementation

The implementations follows the outline above. There is one checkbox on the settings screen of webdav. As the general layout of this screen has changed, here a adapted screenshot.

Checkbox to enable and disable versioning in WebDAV

Test Cases

Test cases completed at {date} by {user}

  • #32142 : Activate/Deactivate File-Versioning

Approval

Approved at 6.12.2019 by Kergomard, Stephan [skergomard]{user}.

Last edited: 10. Dec 2019, 13:00, Kergomard, Stephan [skergomard]