Aucune description

dom111 d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
.github 730f91ba5f Adding functional test. il y a 2 ans
assets d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
build 730f91ba5f Adding functional test. il y a 2 ans
docker 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
examples d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
src d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
tests 730f91ba5f Adding functional test. il y a 2 ans
translations d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
.editorconfig c2fbfc77b5 Rewritten from the ground up using ES modules and trying to separate the il y a 5 ans
.gitattributes c2fbfc77b5 Rewritten from the ground up using ES modules and trying to separate the il y a 5 ans
.gitignore 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
.prettierignore 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
.prettierrc 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
LICENSE 4ec02b7cdd Add MIT license il y a 6 ans
Makefile 730f91ba5f Adding functional test. il y a 2 ans
README.md d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
TODO.md 8de745f124 Add `pushstate` when previews are opened in lightbox and `popstate` when closed. Still work to do with potentially managing the `popstate` handler for files too. Potentially addresses the main problem in #59. il y a 2 ans
docker-compose.yml 730f91ba5f Adding functional test. il y a 2 ans
esbuild.js 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
index.html 730f91ba5f Adding functional test. il y a 2 ans
jest-puppeteer.config.js 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
jest.config.functional.chrome.ts 730f91ba5f Adding functional test. il y a 2 ans
jest.config.functional.firefox.ts 730f91ba5f Adding functional test. il y a 2 ans
jest.config.unit.ts 30cb29f8bd Replace webpack with esbuild. il y a 3 ans
package-lock.json d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
package.json d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans
tsconfig.json d51b38f966 Add first pass at i18n (using i18next). il y a 2 ans

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.

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

yarn install # or npm install

After making changes, ensure you rebuild the application:

yarn build # or npm run build

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

Unit Tests

To run the unit tests:

docker-compose run --workdir=/src --rm test yarn test