Ajax File Browser Design

From MWCSWiki

Jump to: navigation, search

Team File Browser

Contents

Deadlines

Feature/Fix Owned by Deadline
Detects browser Elliott 4/23
Remove sortables feature Sam 4/23
Make directories droppable Elliott 4/23
Make items draggable Elliott 4/23
Delete file tree pane (replace with icons) Sam/Elliott 4/23
Put username in cookie (made a getUser() function on the server) Eric 4/23
Lighter color for help screen Sam 4/23
Details in list view Sam/Elliott 4/25
Shortcut keys Elliott 4/25
Add creative commons logo, W3C validation logo, Get Firefox logo, and possibly a project logo Sam 4/25
Logout button Sam/Eric 4/25
Install scripts in each user's directory Eric 4/27
Right-click menu Elliott 4/27
Sort files Sam 4/27
Refresh directory after uploading Sam 4/27

Main Features

  • Create directories
  • Delete directories
  • Delete files
  • Preview files and information (mouseover tooltip)
  • Download files/directories
  • Upload files
  • Show space available
  • Address bar (typable)
  • Selectable themes
  • Different views (list, icons)
  • List view displays file size, permissions, modification date
  • Drag-and-drop files and directories
  • Automatically arrange/cleanup files in the window
  • Right-click options such as properties, delete, copy, download, etc.
  • Shortcut keys
  • Turn on/off hidden files and directories
  • Search for files/directories

Priorities for beta

  • Copy files/directories
  • Move files/directories
  • Download files
  • Upload files
  • Help screen
  • Default icon (check if picture exists first)
  • List view (change CSS file)
  • Logout button
  • Better color scheme
  • Cookie for username

Architecture

  • Model
    • Perl scripts on the server
    • Authenticates users
    • Performs actions on files and directories
    • Returns directory listings and information to client
  • View
    • HTML, CSS, and JavaScript
    • Client script manipulates the user interface, formats the display, provides tooltips and other interface features
    • Calls functions provided by the model (server)
  • Control
    • Client-side JavaScript
    • Sends requests to the model (server) and returns the results to the view