im_alpha_nav_bar

one of the documented procedures in this installation of the ACS
Usage:
im_alpha_nav_bar   letter   initial_list   { vars_to_ignore "" }
What it does:
Returns an A-Z bar with greyed out letters not in initial_list and bolds "letter". Note that this proc returns the empty string if there are fewer than NumberResultsPerPage records. inital_list is a list where the ith element is a letter and the i+1st letter is the number of times that letter appears.
Defined in: /web/philip/tcl/intranet-defs.tcl

Source code:



    set min_records [ad_parameter NumberResultsPerPage intranet 50]
    # Let's run through and make sure we have enough records
    set num_records 0
    foreach { l count } $initial_list {
	incr num_records $count
    }
    if { $num_records < $min_records } {
	return ""
    }

    set url "[ns_conn url]?"
    set vars_to_ignore_list [list "letter"]
    foreach v $vars_to_ignore { 
	lappend vars_to_ignore_list $v
    }

    set query_args [export_ns_set_vars url $vars_to_ignore_list]
    if { ![empty_string_p $query_args] } {
	append url "$query_args&"
    }
    
    set html_list [list]
    foreach l [im_all_letters] {
	if { [lsearch -exact $initial_list $l] == -1 } {
	    # This means no user has this initial
	    lappend html_list "<font color=gray>$l</font>"
	} elseif { [string compare $l $letter] == 0 } {
	    lappend html_list "<b>$l</b>"
	} else {
	    lappend html_list "<a href=${url}letter=$l>$l</a>"
	}
    }
    if { [empty_string_p $letter] || [string compare $letter "all"] == 0 } {
	lappend html_list "<b>All</b>"
    } else {
	lappend html_list "<a href=${url}letter=all>All</a>"
    }
    if { [string compare $letter "scroll"] == 0 } {
	lappend html_list "<b>Scroll</b>"
    } else {
	lappend html_list "<a href=${url}letter=scroll>Scroll</a>"
    }
    return [join $html_list " | "]


philg@mit.edu