Student projects/AJAX course format: Difference between revisions
No edit summary |
m (→Scriptaculous) |
||
Line 25: | Line 25: | ||
Cons: | Cons: | ||
One of the major drawbacks of Scriptaculous(and the prototype | 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. | It also currently supports a rather small feature set. |
Revision as of 03:20, 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'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
- Forum discussion about an AJAX course layout system
- Current implimentation into Chameleon theme site (Would need to be further integrated and extended)
- Forum discussion on AJAX in Moodle
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