AJAX File Browser

Product of ITHit Canadian company. I am main project frontend developer and work as freelancer.

Ajax File Browser is a highly configurable WebDAV front-end control for displaying and managing documents in your custom CMS/DMS/CRM or cloud storage.

Site
webdavsystem.com/ajaxfilebrowser
Started since
Autumn, 2013
Technologies
JavaScript, WebDAV protocol

Features

  • Upload files more than 2 GB size (partial file upload)
  • Auto–resume upload after internet connection crashing or browser closing
  • Support Versioning, Quota and Class2 locking.
  • Customizing buttons, columns, toolbars, panels
  • Progress for any long-lasting operations and cancel functionality
  • Integration with Microsoft Office
  • Many file and folders view modes
  • Render lists and tree with large number of files (more than 10 000 items)
  • Ten themes for desktop and mobile versions

My contribution

Mobile version

I have developed mobile version that based on desktop AjaxFileBrowser and jQuery Mobile.

Interface has been reconceived and adapted for mobile and table devices. You can see it on ajaxbrowser.com site under "Mobile Version" link.

Mobile version screen for tablet with opened tree and edit mode enabled.

Virtual scrolling

For mobile version for all lists (tree, files and upload lists) I have created lazy render logic — DOM is generated only for viewed items.

This allows to view and scroll very long lists — over 10 000 files on mobile devices (tested on iPhone 4 and iPad 2). Scrolling is very fast!

Opened upload files panel, disabled edit mode and select view mode — Thumbnails.

Moving to asynchronous requests

Before my introduction to project all requests were synchronous. It caused a lot of problems: browser blocks, authentication in FireFox…

I have rewrote most code to asynchronous requests, onle kept sync methods for API calls.

Also I have moved requests to separate layer, added progress programming interface to it, global error handlers, commands grouping and created data caching.

Desktop version

Also I do refactorings, bug fixing and other small features.