Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Student projects/AJAX course format.

Student projects/AJAX course format

From MoodleDocs

Current Progress

I am currently working on research and planning.

Research and planning

Drag and Drop

There has been some discussion on the forums about the want to use a RIA library, this would be a more elegant solution than homebrew but more research needs to be done as to wether one can be found that does not cause the same compatibility issues as Scriptaculous has been shown too by extending the built-in Array and Object classes.

RIA's

Several people have hacked RIA's,such as Scriptaculous, into their moodle installations to add functionality such as drag-and-drop. We need to determine which would be best to Integrate into the moodle codebase.

Scriptaculous

Site: http://script.aculo.us/

Lisence:MIT (GPL compatible)

  • Drag and Drop
  • Auto Complete
  • Sorting
  • Effects

Pros: This has already been implimented in some user's Moodle installations and is known to work with a few problems(noted below)

Cons: One of the major drawbacks of Scriptaculous(and the prototype toolkit which it uses) is that it uses the prototype object to extend javascripts built in Array object which can cause strange behaviors. As far as I know this has only caused problems with moodle's texteditor but having odd behavior like this exist is something I would prefer to avoid as opposed to asking developers to be sure and code around it.

It also currently supports a rather small feature set.

DOJO

Site: http://dojotoolkit.org/

Lisence: Dual - AFL and BSD(GPL compatible)

Features:

  • Drag and drop
  • Effects (wipe,fade etc...)
  • offline Storage
  • rather complete Widget Set

Pros: This Library seems a bit more refined than scriptaculous, it also has big name backing(IBM,AOL,OpenLazlo...et al) which is a good sign that it will be around for a while.

Cons:

MochiKit

Site: http://mochikit.com/

Lisence: Dual - AFL or MIT(GPL compatible)

Published Compatibility: Safari, IE 6+, FF 1.0+

Features:(well documented by them on the following page) http://mochikit.com/doc/html/MochiKit/index.html

  • extended DOM Manipulation
  • Logging
  • Full Async Request handling
  • Visual Effects
  • Sorting
  • Drag and Drop
  • Event Handleing


Pros: They stress reliability and Documentation.More of a library in a traditional sense, the functions are well organized and very reusable. They also claim compatibility with other libraries. Their library is setup well for any extensions anyone wants to make to it(the documentation helps alot too).


Cons: Drag and drop was adapted for scriptaculous so it may have the same issues that they had.


Specifications

Other Links to spec discussions

Project suggestion

From Student projects:

AJAX course format
Background
 
The current course formats are designed to work on lower browsers and older technologies. They are highly compatible with browsers but can    
really slow down the course creation process.
Overview
 
Design a clean, extensible method for implementing a course format using AJAX. This may require development of a web service to service   
the Javascript front end.
Details

  1. It should be optional and accessible, so that it can drop back to the current interface on browsers that are incapable of dealing  with dynamic pages.
  2. Blocks can be dragged and dropped.
  3. Sections can be dragged and dropped, made hidden or visible.
  4. Activities and resources can be dragged and dropped, made hidden or visible, have the group status changed, etc. 

Mentors: Martin Dougiamas and Urs Hunkler

Programmer: Edward Coyne