Index: openacs-4/packages/acs-templating/tcl/date-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/date-procs.tcl,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/acs-templating/tcl/date-procs.tcl 18 Nov 2002 18:01:07 -0000 1.15 +++ openacs-4/packages/acs-templating/tcl/date-procs.tcl 2 Jan 2003 17:11:09 -0000 1.16 @@ -729,7 +729,7 @@ } ad_proc -public template::widget::dateFragment { - element_reference fragment size type value } { + element_reference fragment size type value {mode edit} } { Create an input widget for the given date fragment If type is "t", uses a text widget for the fragment, with the given size. @@ -742,39 +742,52 @@ set value [template::util::date::get_property $fragment $value] set value [template::util::leadingTrim $value] - if { [info exists element(${fragment}_interval)] } { - set interval $element(${fragment}_interval) + if { ![string equal $mode "edit"] } { + set output {} + append output "" + append output $value + return $output } else { - # Display text entry for some elements, or if the type is text - if { [string equal $type t] || - [regexp "year|short_year" $fragment] } { - return "\n" - } else { - # Use a default range for others - set interval [template::util::date::defaultInterval $fragment] - } + if { [info exists element(${fragment}_interval)] } { + set interval $element(${fragment}_interval) + } else { + # Display text entry for some elements, or if the type is text + if { [string equal $type t] || + [regexp "year|short_year" $fragment] } { + return "\n" + } else { + # Use a default range for others + set interval [template::util::date::defaultInterval $fragment] + } + } + return [template::widget::numericRange "$element(name).$fragment" \ + $interval $size $value] } - - return [template::widget::numericRange "$element(name).$fragment" \ - $interval $size $value] } ad_proc -public template::widget::ampmFragment { - element_reference fragment size type value } { + element_reference fragment size type value {mode edit} } { Create a widget that shows the am/pm selection } { upvar $element_reference element set value [template::util::date::get_property $fragment $value] - return [template::widget::menu \ - "$element(name).$fragment" { {A.M. am} {P.M. pm}} $value {}] + if { ![string equal $mode "edit"] } { + set output {} + append output "" + append output $value + return $output + } else { + return [template::widget::menu \ + "$element(name).$fragment" { {A.M. am} {P.M. pm}} $value {}] + } } ad_proc -public template::widget::monthFragment { - element_reference fragment size type value } { + element_reference fragment size type value {mode edit} } { Create a month entry widget with short or long month names } { @@ -784,13 +797,22 @@ set value [template::util::date::get_property $fragment $value] - set options [list [list "--" {}]] - for { set i 1 } { $i <= 12 } { incr i } { - lappend options [list [template::util::date::monthName $i $size] $i] + if { ![string equal $mode "edit"] } { + set output {} + if { [exists_and_not_null value] } { + append output "" + append output [template::util::date::monthName $value $size] + } + return $output + } else { + set options [list [list "--" {}]] + for { set i 1 } { $i <= 12 } { incr i } { + lappend options [list [template::util::date::monthName $i $size] $i] + } + + return [template::widget::menu \ + "$element(name).$fragment" $options $value {} ] } - - return [template::widget::menu \ - "$element(name).$fragment" $options $value {} ] } @@ -890,12 +912,14 @@ # Output the widget set fragment_def $template::util::date::fragment_widgets([string toupper $token]) set fragment [lindex $fragment_def 1] + append output [template::widget::[lindex $fragment_def 0] \ element \ $fragment \ [lindex $fragment_def 2] \ $type \ - $value] + $value \ + $element(mode)] # Output the separator if { [string equal $sep " "] } {