JS Webdav Client: Access files of a Webdav server

Recommend this page to a friend!
  Info   View files Documentation   View files View files (157)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2023-10-28 (-6 hours ago) RSS 2.0 feedNot yet rated by the usersTotal: 38 All time: 516 This week: 3Up
Version License JavaScript version Categories
webdav-js 1.0.16GNU General Publi...6Web services, Files and Folders
Description 

Author

This package can access files of a Webdav server.

It can send HTTP requests to a WebDav server and perform operations to access its files.

Currently it can browse files, preview fonts, videos and images, and create directories.

Innovation Award
JavaScript Programming Innovation award nominee
March 2017
Number 3
WebDav is a protocol based on HTTP for manipulate files stored on remote Web servers.

This package can manipulate Web server files sending WebDav requests using AJAX.

Manuel Lemos
Picture of Dom Hastings
  Performance   Level  
Name: Dom Hastings <contact>
Classes: 4 packages by
Country: United Kingdom
Age: 40
All time rank: 993 in United Kingdom
Week rank: 6 Up1 in United Kingdom Up
Innovation award
Innovation award
Nominee: 3x

Winner: 2x

Details

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
  Files folder image Files  
File Role Description
Files folder image.github (1 directory)
Files folder imageassets (2 directories)
Files folder imagebuild (4 files)
Files folder imagedocker (3 directories)
Files folder imageexamples (4 directories)
Files folder imagesrc (4 files, 2 directories)
Files folder imagetests (3 files, 3 directories)
Files folder imagetranslations (3 files)
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .prettierignore Data Auxiliary data
Accessible without login Plain text file .prettierrc Data Auxiliary data
Accessible without login Plain text file docker-compose.nginx.yml Data Auxiliary data
Accessible without login Plain text file docker-compose.yml Data Auxiliary data
Accessible without login Plain text file esbuild.js Aux. Auxiliary script
Accessible without login HTML file index.html Doc. Documentation
Accessible without login Plain text file jest-puppeteer.config.js Class Class source
Accessible without login Plain text file jest.config.functional.chrome.ts Data Auxiliary data
Accessible without login Plain text file jest.config.functional.firefox.ts Data Auxiliary data
Accessible without login Plain text file jest.config.unit.ts Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file Makefile Data Auxiliary data
Accessible without login Plain text file package-lock.json Data Auxiliary data
Accessible without login Plain text file package.json Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file TODO.md Data Auxiliary data
Accessible without login Plain text file tsconfig.json Data Auxiliary data

  Files folder image Files  /  .github  
File Role Description
Files folder imageworkflows (1 file)

  Files folder image Files  /  .github  /  workflows  
File Role Description
  Accessible without login Plain text file build-on-push.yml Data Auxiliary data

  Files folder image Files  /  assets  
File Role Description
Files folder imagecss (3 files)
Files folder imageimg (64 files)

  Files folder image Files  /  assets  /  css  
File Role Description
  Accessible without login Plain text file style-min.css Data Auxiliary data
  Accessible without login Plain text file style.css Data Auxiliary data
  Accessible without login Plain text file webdav.css.map Data Auxiliary data

  Files folder image Files  /  assets  /  img  
File Role Description
  Accessible without login Image file delete.png Icon Icon image
  Accessible without login Image file folder.png Icon Icon image
  Accessible without login Image file loading.gif Icon Icon image
  Accessible without login Plain text file loading.svg Data Auxiliary data
  Accessible without login Image file page_add.png Icon Icon image
  Accessible without login Image file page_delete.png Icon Icon image
  Accessible without login Image file page_save.png Icon Icon image
  Accessible without login Image file page_white.png Icon Icon image
  Accessible without login Image file page_white_acrobat.png Icon Icon image
  Accessible without login Image file page_white_actionscript.png Icon Icon image
  Accessible without login Image file page_white_add.png Icon Icon image
  Accessible without login Image file page_white_c.png Icon Icon image
  Accessible without login Image file page_white_camera.png Icon Icon image
  Accessible without login Image file page_white_cd.png Icon Icon image
  Accessible without login Image file page_white_code.png Icon Icon image
  Accessible without login Image file page_white_code_red.png Icon Icon image
  Accessible without login Image file page_white_coldfusion.png Icon Icon image
  Accessible without login Image file page_white_compressed.png Icon Icon image
  Accessible without login Image file page_white_copy.png Icon Icon image
  Accessible without login Image file page_white_cplusplus.png Icon Icon image
  Accessible without login Image file page_white_csharp.png Icon Icon image
  Accessible without login Image file page_white_cup.png Icon Icon image
  Accessible without login Image file page_white_database.png Icon Icon image
  Accessible without login Image file page_white_delete.png Icon Icon image
  Accessible without login Image file page_white_dvd.png Icon Icon image
  Accessible without login Image file page_white_edit.png Icon Icon image
  Accessible without login Image file page_white_error.png Icon Icon image
  Accessible without login Image file page_white_excel.png Icon Icon image
  Accessible without login Image file page_white_find.png Icon Icon image
  Accessible without login Image file page_white_flash.png Icon Icon image
  Accessible without login Image file page_white_freehand.png Icon Icon image
  Accessible without login Image file page_white_gear.png Icon Icon image
  Accessible without login Image file page_white_get.png Icon Icon image
  Accessible without login Image file page_white_go.png Icon Icon image
  Accessible without login Image file page_white_h.png Icon Icon image
  Accessible without login Image file page_white_horizontal.png Icon Icon image
  Accessible without login Image file page_white_key.png Icon Icon image
  Accessible without login Image file page_white_lightning.png Icon Icon image
  Accessible without login Image file page_white_link.png Icon Icon image
  Accessible without login Image file page_white_magnify.png Icon Icon image
  Accessible without login Image file page_white_medal.png Icon Icon image
  Accessible without login Image file page_white_office.png Icon Icon image
  Accessible without login Image file page_white_paint.png Icon Icon image
  Accessible without login Image file page_white_paintbrush.png Icon Icon image
  Accessible without login Image file page_white_paste.png Icon Icon image
  Accessible without login Image file page_white_php.png Icon Icon image
  Accessible without login Image file page_white_picture.png Icon Icon image
  Accessible without login Image file page_white_powerpoint.png Icon Icon image
  Accessible without login Image file page_white_put.png Icon Icon image
  Accessible without login Image file page_white_ruby.png Icon Icon image
  Accessible without login Image file page_white_stack.png Icon Icon image
  Accessible without login Image file page_white_star.png Icon Icon image
  Accessible without login Image file page_white_swoosh.png Icon Icon image
  Accessible without login Image file page_white_text.png Icon Icon image
  Accessible without login Image file page_white_text_width.png Icon Icon image
  Accessible without login Image file page_white_tux.png Icon Icon image
  Accessible without login Image file page_white_vector.png Icon Icon image
  Accessible without login Image file page_white_visualstudio.png Icon Icon image
  Accessible without login Image file page_white_width.png Icon Icon image
  Accessible without login Image file page_white_word.png Icon Icon image
  Accessible without login Image file page_white_world.png Icon Icon image
  Accessible without login Image file page_white_wrench.png Icon Icon image
  Accessible without login Image file page_white_zip.png Icon Icon image
  Accessible without login Image file pencil.png Icon Icon image

  Files folder image Files  /  build  
File Role Description
  Accessible without login Plain text file example.generator.js Aux. Auxiliary script
  Accessible without login Plain text file examples-branch.sh Data Auxiliary data
  Accessible without login Plain text file examples-tag.sh Data Auxiliary data
  Accessible without login Plain text file examples.sh Data Auxiliary data

  Files folder image Files  /  docker  
File Role Description
Files folder imagenginx (1 file)
Files folder imagetest (3 files)
Files folder imagewebdav (1 file)

  Files folder image Files  /  docker  /  nginx  
File Role Description
  Accessible without login Plain text file Dockerfile Data Auxiliary data

  Files folder image Files  /  docker  /  test  
File Role Description
  Accessible without login Plain text file chrome.json Data Auxiliary data
  Accessible without login Plain text file Dockerfile Data Auxiliary data
  Accessible without login Plain text file entrypoint.sh Data Auxiliary data

  Files folder image Files  /  docker  /  webdav  
File Role Description
  Accessible without login Plain text file Dockerfile Data Auxiliary data

  Files folder image Files  /  examples  
File Role Description
Files folder imageapache-directory-list-local (3 files)
Files folder imageapache-directory-list (3 files)
Files folder imagebookmarklet (2 files)
Files folder imagenginx (5 files)

  Files folder image Files  /  examples  /  apache-directory-list-local  
File Role Description
  Accessible without login HTML file header.html Doc. Documentation
  Accessible without login Plain text file README.md Doc. Documentation
  Accessible without login Plain text file webdav.conf Data Auxiliary data

  Files folder image Files  /  examples  /  apache-directory-list  
File Role Description
  Accessible without login Plain text file header.html Aux. Auxiliary script
  Accessible without login Plain text file README.md Doc. Documentation
  Accessible without login Plain text file webdav.conf Data Auxiliary data

  Files folder image Files  /  examples  /  bookmarklet  
File Role Description
  Accessible without login Plain text file README.md Doc. Documentation
  Accessible without login Plain text file source-min.js Aux. Auxiliary script

  Files folder image Files  /  examples  /  nginx  
File Role Description
  Accessible without login HTML file davindex-footer.html Doc. Documentation
  Accessible without login HTML file davindex-header.html Doc. Documentation
  Accessible without login Plain text file nginx.conf Data Auxiliary data
  Accessible without login Plain text file README.md Doc. Documentation
  Accessible without login Plain text file webdav.conf Data Auxiliary data

  Files folder image Files  /  src  
File Role Description
Files folder imagecomponents (11 files, 1 directory)
Files folder imagelib (12 files, 1 directory)
  Accessible without login Plain text file style.scss Data Auxiliary data
  Accessible without login Plain text file webdav-min.js Class Class source
  Accessible without login Plain text file webdav.js.map Class Class source
  Accessible without login Plain text file webdav.ts Example Example script

  Files folder image Files  /  src  /  components  
File Role Description
Files folder imageTree (7 files)
  Accessible without login Plain text file Container.ts Data Auxiliary data
  Accessible without login Plain text file Footer.ts Class Class source
  Accessible without login Plain text file Header.ts Class Class source
  Accessible without login Plain text file Item.scss Data Auxiliary data
  Accessible without login Plain text file Item.ts Class Class source
  Accessible without login Plain text file List.ts Class Class source
  Accessible without login Plain text file Modal.scss Data Auxiliary data
  Accessible without login Plain text file Modal.ts Class Class source
  Accessible without login Plain text file TreeViewModal.scss Data Auxiliary data
  Accessible without login Plain text file TreeViewModal.ts Class Class source
  Accessible without login Plain text file UI.ts Class Class source

  Files folder image Files  /  src  /  components  /  Tree  
File Role Description
  Accessible without login Plain text file DataProvider.ts Data Auxiliary data
  Accessible without login Plain text file Leaf.ts Class Class source
  Accessible without login Plain text file Node.ts Class Class source
  Accessible without login Plain text file PlainObject.ts Class Class source
  Accessible without login Plain text file Tree.scss Data Auxiliary data
  Accessible without login Plain text file Tree.ts Class Class source
  Accessible without login Plain text file WebDAV.ts Class Class source

  Files folder image Files  /  src  /  lib  
File Role Description
Files folder imageHTTP (1 file)
  Accessible without login Plain text file AbstractUI.ts Class Class source
  Accessible without login Plain text file Collection.ts Class Class source
  Accessible without login Plain text file DAV.ts Class Class source
  Accessible without login Plain text file Entry.ts Class Class source
  Accessible without login Plain text file handleFileUpload.ts Example Example script
  Accessible without login Plain text file HTTP.ts Example Example script
  Accessible without login Plain text file joinPath.ts Data Auxiliary data
  Accessible without login Plain text file previewItems.ts Data Auxiliary data
  Accessible without login Plain text file Response.ts Class Class source
  Accessible without login Plain text file State.ts Class Class source
  Accessible without login Plain text file supportsEvent.ts Data Auxiliary data
  Accessible without login Plain text file supportsFocusWithin.ts Data Auxiliary data

  Files folder image Files  /  src  /  lib  /  HTTP  
File Role Description
  Accessible without login Plain text file RequestFailure.ts Class Class source

  Files folder image Files  /  tests  
File Role Description
Files folder imagefunctional (1 file)
Files folder imagelib (3 files)
Files folder imageunit (1 file, 1 directory)
  Accessible without login Plain text file jest.ts-puppeteer.preset.chrome.ts Class Class source
  Accessible without login Plain text file jest.ts-puppeteer.preset.firefox.ts Class Class source
  Accessible without login Plain text file jest.ts-puppeteer.preset.ts Class Class source

  Files folder image Files  /  tests  /  functional  
File Role Description
  Accessible without login Plain text file List.test.ts Example Example script

  Files folder image Files  /  tests  /  lib  
File Role Description
  Accessible without login Plain text file getProperties.ts Data Auxiliary data
  Accessible without login Plain text file grantClipboardPermissions.ts Class Class source
  Accessible without login Plain text file isReady.ts Data Auxiliary data

  Files folder image Files  /  tests  /  unit  
File Role Description
Files folder imageDAV (3 files)
  Accessible without login Plain text file DAV.test.ts Example Example script

  Files folder image Files  /  tests  /  unit  /  DAV  
File Role Description
  Accessible without login Plain text file Collection.test.ts Example Example script
  Accessible without login Plain text file Entry.test.ts Example Example script
  Accessible without login Plain text file Response.test.ts Example Example script

  Files folder image Files  /  translations  
File Role Description
  Accessible without login Plain text file de.json Data Auxiliary data
  Accessible without login Plain text file en.json Example Example script
  Accessible without login Plain text file pt.json Data Auxiliary data

 Version Control Unique User Downloads Download Rankings  
 100%
Total:38
This week:0
All time:516
This week:3Up