cache.tcl
Cache Viewer
- Location:
- /packages/xotcl-core/www/cache.tcl
Related Files
[ hide source ] | [ make this the default ]
File Contents
ad_page_contract { Cache Viewer } { {cache:optional,notnull 0} {item:token,optional,notnull 0} {flush:boolean,optional,notnull 0} {filter ""} {flushall:boolean,optional,notnull 0} {flushallcaches:optional,boolean,notnull 0} } -properties { title:onevalue context:onevalue } set admin_p [acs_user::site_wide_admin_p] if {!$admin_p} { ad_return_warning "Insufficient Permissions" \ "Only side wide admins are allowed to view this page!" ad_script_abort } # Expires: now ns_set update [ns_conn outputheaders] "Expires" "now" if { $flushallcaches } { foreach cache [ns_cache_names] { ns_cache flush $cache } ad_returnredirect [ns_conn url] ad_script_abort } if { $flush ne "0" } { ns_cache flush $cache $flush ad_returnredirect [export_vars -base [ns_conn url] {cache}] ad_script_abort } if {$flushall == 1} { foreach i [ns_cache names $cache] { ns_cache flush $cache $i } ad_returnredirect [export_vars -base [ns_conn url] {cache}] ad_script_abort } set title "Show Caches" set context [list [list "./cache" cache]] set output "" if { $cache == 0 } { set context "" TableWidget create t1 \ -actions [subst { Action new -label Refresh -url [ad_conn url] -tooltip "Reload this page" Action new -label "Flush all" \ -url [export_vars -base [ad_conn url] {{flushallcaches 1}}] \ -tooltip "Flush all caches" }] \ -columns { AnchorField name -label "Name" Field stats -label "Stats" Field size -label "Size" -html { align right } } \ -no_data "Currently no data available" foreach item [lsort [ns_cache_names]] { t1 add -name $item \ -name.href "?cache=[ns_quotehtml $item]" \ -stats [ns_cache_stats $item] \ -size [lindex [ns_cache_size $item] 1] } set t1 [t1 asHTML] } elseif { $item != 0 } { append output "<h3>Data for cache_item $item of cache $cache</h3>" append output "<p><xmp>[ns_cache get $cache $item]</xmp></p>" } else { set item_list [ns_cache names $cache] set item_count [llength $item_list] set href [export_vars -base [ns_conn url] {cache {flushall 1}}] append output "<h3>Items in cache $cache ($item_count) with size [ns_cache_size $cache]</h3>\n" append output "<form> <input type='hidden' name='cache' value='$cache'> <a href='[ns_quotehtml $href]' class='button'>flush all</a> Filter: <input name='filter' value='$filter'> </form> " #append output "<a href='[ns_quotehtml $href]'>flush all</a> items of [ns_quotehtml $cache]" set entries "<ul>" set count 0 foreach name [lsort -dictionary $item_list] { if {[catch {set entry [ns_cache get $cache $name]}]} continue if {$filter ne ""} { if {![regexp $filter $entry]} continue } incr count set n "" regexp -- {-set name ([^\\]+)\\} $entry _ n set show_url [export_vars -base [ns_conn url] {cache {item $name}}] set flush_url [export_vars -base [ns_conn url] {cache {flush $name}}] append entries "<li><a href=\"[ns_quotehtml $show_url]\">$name</a> $n ([string length $entry] bytes, " \ "<a href=\"[ns_quotehtml $flush_url]\">flush</a>)</li>" } append entries "</ul>" if {$filter ne ""} { append output "$count matching entries:\n" } append output $entries append output "<a href='?'>All Caches</a>" } lappend context "Cache Statistics" # # Local variables: # mode: tcl # tcl-indent-level: 2 # indent-tabs-mode: nil # End: