Skip to content

A simple WebDAV client written in JS for use as a bookmarklet, or integration into a web server.

License

Notifications You must be signed in to change notification settings

dom111/webdav-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

webdav-js

A simple way to administer a WebDAV filesystem from your browser.

The original aim for this project was to provide a bookmarklet for use when you want to administer a WebDAV server, without the need for using a third party application.

The application has since been rewritten to not rely on jQuery and use more modern methods and provide a single runtime file. Now that there's more separation between the interface code and the library code, I'd like to investigate using other frontend approaches to see which I prefer (and also to weigh up the differences between the currently available frameworks). There's still work to do around code separation and hopefully this will be something I can continue to work on (as time allows) I feel it's at least as stable as the previous version.

Features

  • Browse, upload, download, rename, delete entries and create directories.
  • File preview for image, video, audio, font, text, PDF files.
  • Basic keyboard navigation.
  • A (very) simple gallery browser for preview-able files.

Localisation

Currently, the library contains text translated to English, German and Portuguese. If you use this and would like it to be localised to your language please submit a PR including the translation (using en.json as a template) and adding the language in UI.js.

Tested in:

  • Chrome
  • Firefox
  • Edge

Implementations

Gitpod demo

Available here, wait for the Docker build to complete, and you will be able to interact with the Apache demo, make changes and contribute!

Open in Gitpod

Bookmarklet:

javascript:["https://cdn.jsdelivr.net/gh/dom111/webdav-js/assets/css/style-min.css","https://cdn.jsdelivr.net/gh/dom111/webdav-js/src/webdav-min.js"].forEach((function(e,s){/css$/.test(e)?((s=document.createElement("link")).href=e,s.rel="stylesheet"):(s=document.createElement("script")).src=e,document.head.appendChild(s)}));

or drag this link directly

Apache:

There is also an example for how you could set up Apache in the examples/ directory (one using a locally hosted version of the library, and one using a CDN).

Think you have another example implementation that would be good to showcase? Fork this repository and make a PR!

Test the library

Included in the package is a docker-compose.yml file that can spawn an Alpine Linux Apache WebDAV server that uses the example Apache configuration so you can see the library in action if you don't have a WebDAV server at your disposal.

To start it, run:

docker-compose up

and navigate to http://localhost:8080/.

Contributing

If you feel this can be improved (I'm certain it can!), please feel free to fork it and submit a PR.

Localisation would be a great start if you'd like to help!

To start making changes, ensure you install all the dependencies and build the application:

make build

After making changes, ensure you rebuild the application:

make build

Once your changes have compiled you can test using the Docker container.

Tests

To run the unit and functional tests:

make build
docker-compose up -d
make test