
New patches:

[Add a <ucw:simple-submit and <ucw:simple-form that do not require javascript.
Drew Crampsie <drewc@tech.coop>**20060506233602
 
 <ucw:simple-submit uses a BUTTON tag to render a submit button that does not require javascript
 
 To make this happen, i added a method to find-action that operates on a list, 
 grabbing the car and using it as the action id. When a form is submitted with an extra action parameter, 
 the last one submitted (first in the list) is taken to be the action-id.
 
 This allows forms without javascript!! SIMPLE-SUBMIT will work in the standard UCW:FORM, 
 SIMPLE-FORM is a form without the JS cruft, but will not work with standard <UCW:* submit buttons.
 
 
 
] {
hunk ./src/packages.lisp 317
+   #:simple-form
+   #:simple-submit
hunk ./src/rerl/standard-session-frame.lisp 12
+
+(defmethod find-action ((f standard-session-frame) (action-id list))
+  (find-action f (car action-id)))
+
+(defmethod (setf find-action) (lambda (f standard-session-frame) (action-id string))
+  (setf (gethash action-id (frame.actions f))
+	lambda))
hunk ./src/yaclml/ucw-tags.lisp 39
+(deftag-macro <ucw:simple-form (&attribute (id '(js:gen-js-name-string :prefix "ucw-form"))
+					    action 
+					    &allow-other-attributes others
+					    &body body)
+  "A Simple form tag, made for use with SIMPLE-SUBMIT. Does not require javascript."
+  (with-unique-names (url query action-id)
+    (rebinding (id)
+      `(let* ((,action-id (make-new-action (context.current-frame *context*)
+					   (lambda () (with-call/cc ,action))))
+              (,url (compute-url *current-component*
+                                 :action-id ,action-id)))
+         (<:form :action (print-uri-to-string-sans-query ,url)
+                 ,@others
+		 (dolist (,query (uri.query ,url))
+		   (if (string= ,+action-parameter-name+ (car ,query))
+		       (<:input :type "hidden" :name ,+action-parameter-name+
+				:value (when ,action (cdr ,query))
+				:id ,action-id)
+		       (<:input :type "hidden" :name (car ,query) :value (cdr ,query))))
+		 ,@body)))))
+
+(deftag-macro <ucw:simple-submit (&attribute action &allow-other-attributes others &body body)
+  "Presents an button tag which executes ACTION when clicked."  
+  `(<:button :type "submit"
+	     :name +action-parameter-name+
+	     :value (make-new-action (context.current-frame *context*)
+				     (lambda () (with-call/cc ,action)))
+	     ,@others ,@body))
+
+
}

Context:

[Added send-redirect function.
Marco Baringer <mb@bese.it>**20060501154250
 
 send-redirect does what redirect-component's render method did but
 it's usable from a simple-dispatcher (or anywhere else we don't have
 ucw's component context machinery).
] 
[Use dolist*, not dolist, in tabbed-pane's render method.
Marco Baringer <mb@bese.it>**20060501135314] 
[Using (when (whatever) T) is weird, use (whatever) instead
Marco Baringer <mb@bese.it>**20060501135000] 
[Minor indentation/whitespace fixups in src/components/form.lisp
Marco Baringer <mb@bese.it>**20060501134849] 
[make-with-dummy-request-nicer
cjstuij@gmail.com**20060501001756] 
[tabbed-pane-makeover - tabbed panes are now wrapped in divs in stead of a table, for more design flexibility. Is no longer tied to a tal file.
cjstuij@gmail.com**20060430233920] 
[Removing integer-range-validator, use number-range-validator instead.
Nathan Bird <nathan@acceleration.net>**20060428165829] 
[the value of a number-field should be nil, not 0, if nothing was entered.
Nathan Bird <nathan@acceleration.net>**20060428164949] 
[bin/ucwctl: allow a custom ucwctl.conf via -u|--ucwctl-file
Luca Capello <luca@pca.it>**20060501110031
 
 This adds the possibility to specify a different ucwctl.conf file
 instead of the default /etc/ucw/ucwctl.conf.  Moreover, by default
 ucwctl now reads ~/.ucw/ucwctl.conf it it exists, overriding the
 values in the general /etc/ucw/ucwctl.conf, and the same happens if
 the ucwctl.conf is specified via the command line option.  All command
 line options override the values present in any ucwctl.conf files.
 The order is the following:
 
   1) /etc/ucw/ucwctl.conf (if it exists)
   2) ~/.ucw/ucwctl.conf (if it exists)
   3) -u|--ucwctl-file (if specified, exit if it cannot be read)
   4) command line options
 
 A deeper discussion is available at:
 
   http://common-lisp.net/pipermail/bese-devel/2006-April/001932.html
   http://common-lisp.net/pipermail/bese-devel/2006-April/001961.html
] 
[In the phone and email validators instead of defining a new slot we just use the :default-initargs class option
Marco Baringer <mb@bese.it>**20060428103114] 
[Adding documentation to form.lisp
Nathan Bird <nathan@acceleration.net>**20060428023256] 
[Rearranging file contents to reduce style-warnings
Nathan Bird <nathan@acceleration.net>**20060428022511] 
[Implementing value-validators
Nathan Bird <nathan@acceleration.net>**20060428020403
 Value-validators are a category of validators that are only applied if there 
 is actually a value. This was done to provide a more systematic scheme since
 there were several different ways it was being handled previously.
 Javascript validation in this patch is untested.
] 
[Expanded the forms example to include a number-field and number-range-validated field.
Nathan Bird <nathan@acceleration.net>**20060428014551] 
[added a standard regular exprexpression validator then made e-mail-validator use it.  E-mail-validator IS NO LONGER INVALID IF EMPTY. Adde d an international phonenumber validator
russ@acceleration.net**20060425154947] 
[added regex exports
russ@acceleration.net**20060424225714] 
[Comment fixup
Nathan Bird <nathan@acceleration.net>**20060427173259] 
[Added missing id param that got lost in my <ucw:form changes
attila.lendvai@gmail.com**20060424150549] 
[TAG 2006-04-25
Marco Baringer <mb@bese.it>**20060425145623] 
Patch bundle hash:
35fa34a9ac934fdd8cafa9b7992c7e5aaf03ab8a
