ad_dimensional option_list { url " " } { options_set " " } { optionstype "url" }What it does:
Generate an option bar as in the ticket system;Defined in: /web/philip/packages/acs-core/table-display-procs.tcl
- option_list -- the structure with the option data provided
- url -- url target for select (if blank we set it to ns_conn url).
- options_set -- if not provided defaults to [ns_getform], for hilite of selected options.
- optionstype -- only url is used now, was thinking about extending so we get radio buttons and a form since with a slow select updating one thing at a time would be stupid.
option_list structure is
{ {variable "Title" defaultvalue { {value "Text" {key clause}} ... } } ... } an example: set dimensional_list { {visited "Last Visit" 1w { {never "Never" {where "last_visit is null"}} {1m "Last Month" {where "last_visit + 30 > sysdate"}} {1w "Last Week" {where "last_visit + 7 > sysdate"}} {1d "Today" {where "last_visit > trunc(sysdate)"}} }} ..(more of the same).. }
Source code:
set html {}
if {[empty_string_p $option_list]} {
return
}
if {[empty_string_p $options_set]} {
set options_set [ns_getform]
}
if {[empty_string_p $url]} {
set url [ns_conn url]
}
append html "<table border=0 cellspacing=0 cellpadding=3 width=100%>\n<tr>\n"
foreach option $option_list {
append html " <th bgcolor=\"#ECECEC\">[lindex $option 1]</th>\n"
}
append html "</tr>\n"
append html "<tr>\n"
foreach option $option_list {
append html " <td align=center>\["
# find out what the current option value is.
# check if a default is set otherwise the first value is used
set option_key [lindex $option 0]
set option_val {}
if { ! [empty_string_p $options_set]} {
set option_val [ns_set get $options_set $option_key]
}
if { [empty_string_p $option_val] } {
set option_val [lindex $option 2]
}
set first_p 1
foreach option_value [lindex $option 3] {
set thisoption [lindex $option_value 0]
if { $first_p } {
set first_p 0
} else {
append html " | "
}
if {[string compare $option_val $thisoption] == 0} {
append html "<strong>[lindex $option_value 1]</strong>"
} else {
append html "<a href=\"$url?[export_ns_set_vars "url" $option_key $options_set]&[ns_urlencode $option_key]=[ns_urlencode $thisoption]\">[lindex $option_value 1]</a>"
}
}
append html "\]</td>\n"
}
append html "</tr>\n</table>\n"