Wiki source code of ERPrototaculous

Version 237.1 by Ravi Mendis on 2009/07/16 09:22

Show last authors
1 == Introduction ==
2
3 ERPrototaculous was developed to provide the ajax functionality in ERDivaLook.
4
5 === What is ERPrototaculous? ===
6
7 Features include:
8
9 * 'Organic' support for Prototype and Scriptaculous in WebObjects.
10 * No custom Prototype extensions
11 * A set of widgets in the Prototype + Scriptaculous family.
12 * Use of [[Unobtrusive Javascript>>http://en.wikipedia.org/wiki/Unobtrusive_JavaScript]].
13 * Pseudo-stateless ajax responses
14
15 ==== Unobtrusive Javascript in ERPrototaculous ====
16
17 Unobtrusive javascript is used in contrast to on-demand style of ajax programming.
18 By including Javascript as well as CSS globally in the page wrapper, CSS and/or Javascript doesn't have to load inside ajax requests.
19
20 The result is **faster** and more **reliable** ajax in WebObjects applications.
21
22 ==== Prototype WebObjects Elements ====
23
24 ##Ajax.Updater## and ##Ajax.Request## have been implemented as WebObjects dynamic elements.
25
26 ===== Ajax.Updater =====
27
28 Support for Prototype's [[Ajax.Updater>>http://www.prototypejs.org/api/ajax/updater]] is in the form of three components:
29
30 * AjaxUpdaterLink
31 * AjaxUpdaterButton
32 * AjaxUpdaterForm (with ##onsubmit## for ajax form submission)
33
34 ===== Ajax.Request =====
35
36 Prototype's [[Ajax.Request>>http://www.prototypejs.org/api/ajax/request]] is in the form of:
37
38 * AjaxRequestLink
39 * AjaxRequestButton
40
41 ==== Prototype + Scriptaculous Widgets ====
42
43 * Accordion
44 * LightWindow
45 * ModalBox
46 * CalendarDateSelect
47 * FileUpload
48
49 == Forms in ERPrototaculous ==
50
51 Differences from using forms in WebObjects. i.e ##WOForm##:
52
53 1. All form controls must be named. This includes text fields, selects and buttons.
54 (WebObjects dynamically assigned names are not compatible with ERPrototaculous).
55 1. All forms in an ERPrototaculous app are instances of ##AjaxUpdaterForm##.
56 1. Form submits can be the form of a:
57
58 *
59 ** Static ##<button>##
60 ** WOSubmitButton (if the result is to update whole page/app.
61 ** AjaxUpdaterButton (to update a **container**). Or
62 ** AjaxRequestButton (for a background ajax request)