Index: openacs-4/packages/acs-tcl/tcl/form-processing-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/form-processing-procs.tcl,v diff -u -r1.16.2.12 -r1.16.2.13 --- openacs-4/packages/acs-tcl/tcl/form-processing-procs.tcl 17 Mar 2003 14:48:03 -0000 1.16.2.12 +++ openacs-4/packages/acs-tcl/tcl/form-processing-procs.tcl 20 Mar 2003 12:48:46 -0000 1.16.2.13 @@ -680,12 +680,16 @@ after_html - result_datatype - search_query - - search_query_name { + search_query_name - + maxlength { if { [llength $extra_arg] > 2 || [llength $extra_arg] == 1 } { return -code error "element $element_name: \"$extra_arg\" requires exactly one argument" } lappend form_command [uplevel [list subst [lindex $extra_arg 1]]] } + default { + ns_log Error "Unknown switch '[lindex $extra_arg 0]' to ad_form on url [util_get_current_url]" + } } } eval $form_command Index: openacs-4/packages/acs-templating/tcl/element-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/element-procs.tcl,v diff -u -r1.9.2.3 -r1.9.2.4 --- openacs-4/packages/acs-templating/tcl/element-procs.tcl 5 Mar 2003 14:57:37 -0000 1.9.2.3 +++ openacs-4/packages/acs-templating/tcl/element-procs.tcl 20 Mar 2003 12:49:15 -0000 1.9.2.4 @@ -367,6 +367,16 @@ continue } + if { [info exists element(maxlength)] } { + set value_bytelength [string bytelength $value] + if { $value_bytelength > $element(maxlength) } { + set excess_no_bytes [expr { $value_bytelength - $element(maxlength) }] + set message "$label is [ad_decode $excess_no_bytes "1" "one character" "$excess_no_bytes characters"] too long." + lappend v_errors $message + set formerror($element_id:maxlength) $message + } + } + if { ! [template::data::validate $element(datatype) value message] } { # the submission is invalid Index: openacs-4/packages/acs-templating/tcl/widget-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/widget-procs.tcl,v diff -u -r1.14.2.4 -r1.14.2.5 --- openacs-4/packages/acs-templating/tcl/widget-procs.tcl 13 Mar 2003 17:55:19 -0000 1.14.2.4 +++ openacs-4/packages/acs-templating/tcl/widget-procs.tcl 20 Mar 2003 12:49:15 -0000 1.14.2.5 @@ -184,6 +184,10 @@ append output " $name=\"$attributes($name)\"" } } + + if { [info exists element(maxlength)] } { + append output " maxlength=\"$element(maxlength)\"" + } append output " />" } Index: openacs-4/packages/acs-templating/www/doc/api/element.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/element.html,v diff -u -r1.1.1.1 -r1.1.1.1.4.1 --- openacs-4/packages/acs-templating/www/doc/api/element.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/api/element.html 20 Mar 2003 12:49:52 -0000 1.1.1.1.4.1 @@ -23,6 +23,7 @@ name { expression } { message } \ ... } \ -options { { label value } { label value } ... } \ + -maxlength maxlength \ -value value \ -values { value value ... }