ad_table_form datadef { type "select" } { return_url " " } { item_group " " } { item " " } { columns " " } { allowed " " }What it does:
builds a form for chosing the columns to displayDefined in: /web/philip/packages/acs-core/table-display-procs.tclcolumns is a list of the currently selected columns.
allowed is the list of all the displayable columns, if empty all columns are allowed.
Source code:
# first build a map of all available columns
set sel_list [ad_table_column_list $datadef $allowed]
# build the map of currently selected columns
set sel_columns [ad_table_column_list $datadef $columns]
set max_columns [llength $sel_list]
set n_sel_columns [llength $sel_columns]
set html {}
if {[string compare $item "CreateNewCustom"] == 0} {
set item {}
}
# now spit out the form fragment.
if {![empty_string_p $item]} {
append html "<h2>Editing <strong>$item</strong></h2>"
append html "<form method=get action=\"/tools/table-custom\">"
append html "<input type=submit value=\"Delete this view\">"
append html "<input type=hidden name=delete_the_view value=\"1\">"
append html "[export_form_vars item_group item]"
if {![empty_string_p $return_url]} {
append html "[export_form_vars return_url]"
}
append html "</form>"
}
append html "<form method=get action=\"/tools/table-custom\">"
if {![empty_string_p $return_url]} {
append html "[export_form_vars return_url]"
}
if {[empty_string_p $item_group]} {
set item_group [ns_conn url]
}
append html "[export_form_vars item_group]"
if {![empty_string_p $item]} {
set item_original $item
append html "[export_form_vars item_original]"
append html "<input type=submit value=\"Save changes\">"
} else {
append html "<input type=submit value=\"Save new view\">"
}
append html "<table>"
append html "<tr><th>Name:</th><td><input type=text size=60 name=item [export_form_value item]></td></tr>"
if {![empty_string_p $item]} {
set item_original item
append html "[export_form_vars item_original]"
append html "<tr><td> </td><td><em>Editing the name will rename the view</em></td></tr>"
}
if {[string compare $type select] == 0} {
# select table
set options "<option value=\"\">---"
foreach opt $sel_list {
append options " <option value=\"[lindex [lindex $datadef $opt] 0]\">[lindex [lindex $datadef $opt] 1]"
}
for {set i 0} { $i < $max_columns} {incr i} {
if {$i < $n_sel_columns} {
set match [lindex [lindex $datadef [lindex $sel_columns $i]] 0]
regsub "(<option )(value=\"$match\">)" $options "\\1 selected \\2" out
} else {
set out $options
}
append html "<tr><th>[expr $i + 1]</th><td><select name=\"col\">$out</select></td></tr>\n"
}
} else {
# radio button table
append html "<tr><th>Col \#</th>"
foreach opt $sel_list {
append html "<th>[lindex [lindex $datadef $opt] 1]</th>"
}
append html "</tr>"
foreach opt $sel_list {
append options "<td><input name=\"col_@@\" type=radio value=\"[lindex [lindex $datadef $opt] 0]\"></td>"
}
for {set i 0} { $i < $max_columns} {incr i} {
if {$i < $n_sel_columns} {
set match [lindex [lindex $datadef [lindex $sel_columns $i]] 0]
regsub "( type=radio )(value=\"$match\">)" $options "\\1 checked \\2" out
} else {
set out $options
}
regsub -all {@@} $out $i out
append html "<tr><th>[expr $i + 1]</th>$out</tr>\n"
}
}
append html "</table></form>"
return $html