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: Difference between revisions

From MoodleDocs
Line 49: Line 49:
Cons:
Cons:


Their [[http://manual.dojotoolkit.org/index.html] Documentation] is not complete(~60%).
Their [[http://manual.dojotoolkit.org/index.html Documentation]] is not complete(~60%).


====MochiKit====
====MochiKit====

Revision as of 03:42, 9 June 2006

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 libraries

Several people have hacked RIA libraries,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.

These are some of the most popular: (while this may not be a popularity contest I beleive that we want to work with one that is well supported and has a decent community following)

Scriptaculous

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

Licence: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 (aside from the problems mentioned 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/

Licence: 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:

Their [Documentation] is not complete(~60%).

MochiKit

Site: http://mochikit.com/

Licence: 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.


Rico

Site:openRico.org

Licence:Apache 2.0(incompatible with GPL [[1]])


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