Index: openacs-4/packages/xowiki/tcl/form-field-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/form-field-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/xowiki/tcl/form-field-procs.tcl 3 Jul 2007 10:22:32 -0000 1.7 +++ openacs-4/packages/xowiki/tcl/form-field-procs.tcl 5 Jul 2007 10:55:08 -0000 1.8 @@ -80,7 +80,18 @@ help_text=* {my help_text [lindex [split $s =] 1]} *=* { set l [split $s =] - if {[catch {my [lindex $l 0] [lindex $l 1]} errMsg]} { + set value [lindex $l 1] + if {[catch { + # + # we want to allow e.g. options=[xowiki::locales] + # + # Make sure, that validaton of form fields does not allow + # square brackets. + if {[string match {\[*\]} $value]} { + set value [subst $value] + } + my [lindex $l 0] $value + } errMsg]} { my msg "Error during setting attribute [lindex $l 0] to value [lindex $l 1]: $errMsg" } } @@ -206,6 +217,12 @@ set widget_type text(textarea) foreach p [list rows cols style] {if {[my exists $p]} {set html($p) [my $p]}} } + FormField::textarea instproc render_form_widget {} { + ::html::div -class form-widget { + ::html::textarea -id [my id] -name [my name] cols [my cols] -rows [my rows] { + ::html::t [my value] + }} + } Class FormField::richtext -superclass FormField::textarea -parameter { {editor xinha} @@ -262,7 +279,8 @@ set atts [list id [my id] name [my name]] if {[my multiple]} {lappend atts multiple [my multiple]} ::html::select $atts { - foreach {name value} [my options] { + foreach o [my options] { + foreach {name value} $o break set atts [list value $value] #my msg "lsearch {[my value]} $value ==> [lsearch [my value] $value]" if {[lsearch [my value] $value] > -1} { Index: openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl,v diff -u -r1.68 -r1.69 --- openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl 4 Jul 2007 11:29:04 -0000 1.68 +++ openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl 5 Jul 2007 10:55:08 -0000 1.69 @@ -20,8 +20,9 @@ {f.page_order "="} {f.title "="} {f.creator "="} - {f.description "="} {f.text "= richtext,editor=xinha"} + {f.description "="} + {f.nls_language "="} {validate {{name {\[::xowiki::validate_name\]} {Another item with this name exists \ already in this folder}}}} Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v diff -u -r1.62 -r1.63 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 4 Jul 2007 11:29:04 -0000 1.62 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 5 Jul 2007 10:55:08 -0000 1.63 @@ -373,7 +373,7 @@ foreach {tree_id tree_name subtree_id assign_single_p require_category_p} $category_tree break set options [list] - if {!$require_category_p} {lappend options "" ""} + if {!$require_category_p} {lappend options [list "" ""]} set value [list] foreach category [category_tree::get_tree -subtree_id $subtree_id $tree_id] { foreach {category_id category_name deprecated_p level} $category break @@ -382,7 +382,7 @@ if { $level>1 } { set category_name "[string repeat { } [expr {2*$level -4}]]..$category_name" } - lappend options $category_name $category_id + lappend options [list $category_name $category_id] } set f [FormField new \ -name "__category_${tree_name}_$tree_id" \ @@ -442,7 +442,10 @@ set form_fields [my create_category_fields] set form [lindex [my get_from_template form] 0] if {$form ne ""} { - array set name_map {"__name" name "__title" title "__page_order" page_order} + array set name_map { + "_name" name "_title" title "_page_order" page_order + "_description" description "_nls_language" nls_language + } array set __ia [my set instance_attributes] # we have a form, we get for the time being all variables foreach att [::xo::cc array names form_parameter] { @@ -462,9 +465,7 @@ __form_action - __object_name {} __category_* {foreach v $value {lappend category_ids $v}} - __name {my set $matt $value} - __title {my set $matt $value} - __page_order {my set $matt $value} + _* {my set $matt $value} default {set __ia($att) $value} } } @@ -498,14 +499,12 @@ return [next -autoname $anon_instances] } + set field_names [list _title title _description description _nls_language nls_language] + if {[$package_id show_page_order]} { + set field_names [linsert $field_names 0 _page_order page_order] + } if {!$anon_instances} { - if {[$package_id show_page_order]} { - set field_names [list __name name __page_order page_order __title title] - } else { - set field_names [list __name name __title title] - } - } else { - set field_names [list] + set field_names [linsert $field_names 0 _name name] } if {[my form_parameter __form_action ""] eq "save-form-data"} { @@ -532,8 +531,9 @@ } else { set form_fields [my create_category_fields] foreach {form_att att} $field_names { + set value [my set $att] lappend form_fields [my create_form_field -name $form_att -slot [my find_slot $att] \ - -configuration [list -value [my set $att]]] + -configuration [list -value $value]] } }