Wiki source code of ERPrototaculous
Version 253.1 by Ravi Mendis on 2009/07/16 09:15
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
100.1 | 1 | == Introduction == |
2 | |||
![]() |
209.1 | 3 | ERPrototaculous was developed to provide the ajax functionality in ERDivaLook. |
4 | |||
5 | === What is ERPrototaculous? === | ||
6 | |||
![]() |
233.1 | 7 | Features include: |
![]() |
209.1 | 8 | |
![]() |
233.1 | 9 | * 'Organic' support for Prototype and Scriptaculous in WebObjects. |
![]() |
245.1 | 10 | * No custom Prototype extensions |
11 | * A set of widgets in the Prototype + Scriptaculous family. | ||
![]() |
241.1 | 12 | * Use of [[Unobtrusive Javascript>>http://en.wikipedia.org/wiki/Unobtrusive_JavaScript]]. |
![]() |
249.1 | 13 | * Virtually stateless ajax responses |
![]() |
233.1 | 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 | |||
![]() |
253.1 | 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 | 1. AjaxUpdaterLink | ||
31 | 1. AjaxUpdaterButton | ||
32 | 1. 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 | 1. AjaxRequestLink | ||
39 | 1. AjaxRequestButton | ||
40 | |||
![]() |
229.1 | 41 | ==== Prototype + Scriptaculous Widgets ==== |
![]() |
211.1 | 42 | |
![]() |
209.1 | 43 | * Accordion |
44 | * LightWindow | ||
45 | * ModalBox | ||
46 | * CalendarDateSelect | ||
47 | * FileUpload | ||
![]() |
233.1 | 48 | |
49 | == Forms in ERPrototaculous == | ||
50 | |||
51 | Differences from using forms in WebObjects. i.e ##WOForm##: | ||
52 | |||
![]() |
249.1 | 53 | * All form controls must be named. This includes text fields, selects and buttons. |
![]() |
233.1 | 54 | (WebObjects dynamically assigned names are not compatible with ERPrototaculous). |
![]() |
249.1 | 55 | * All forms in an ERPrototaculous app are instances of ##AjaxUpdaterForm##. |
![]() |
253.1 | 56 | * Form submits can be the form of a: |
![]() |
233.1 | 57 | ** Static ##<button>## |
58 | ** WOSubmitButton (if the result is to update whole page/app. | ||
59 | ** AjaxUpdaterButton (to update a **container**). Or | ||
60 | ** AjaxRequestButton (for a background ajax request) |