No Description

dom111 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
.github 09fc82e1ad Adding functional test. 2 years ago
assets 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
build 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
docker fbe7503e1f Refine Nginx example with docker-compose file 2 years ago
examples fbe7503e1f Refine Nginx example with docker-compose file 2 years ago
src 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
tests 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
translations 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
.editorconfig c2fbfc77b5 Rewritten from the ground up using ES modules and trying to separate the 5 years ago
.gitattributes c2fbfc77b5 Rewritten from the ground up using ES modules and trying to separate the 5 years ago
.gitignore b39d17311d Replace webpack with esbuild. 2 years ago
.prettierignore b39d17311d Replace webpack with esbuild. 2 years ago
.prettierrc b39d17311d Replace webpack with esbuild. 2 years ago
LICENSE 4ec02b7cdd Add MIT license 6 years ago
Makefile 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
README.md df0090f8f9 Bump version and update README. 2 years ago
TODO.md 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
docker-compose.nginx.yml fbe7503e1f Refine Nginx example with docker-compose file 2 years ago
docker-compose.yml fbe7503e1f Refine Nginx example with docker-compose file 2 years ago
esbuild.js 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
index.html 09fc82e1ad Adding functional test. 2 years ago
jest-puppeteer.config.js b39d17311d Replace webpack with esbuild. 2 years ago
jest.config.functional.chrome.ts 09fc82e1ad Adding functional test. 2 years ago
jest.config.functional.firefox.ts 09fc82e1ad Adding functional test. 2 years ago
jest.config.unit.ts b39d17311d Replace webpack with esbuild. 2 years ago
package-lock.json 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
package.json 1ff6ce30b8 Refactor code - replacing nested events with direct calls. 2 years ago
tsconfig.json d556e1e7a2 Add first pass at i18n (using i18next). 2 years ago

README.md

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

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