Index: openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl,v diff -u -r1.30.2.2 -r1.30.2.3 --- openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 21 Apr 2008 10:33:30 -0000 1.30.2.2 +++ openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 21 Nov 2008 13:26:32 -0000 1.30.2.3 @@ -223,11 +223,20 @@ } } + proc render_localizer {} { + if {[my exists __localizer]} { + foreach l [my set __localizer] { + $l render + $l destroy + } + } + } + Class Localizer -parameter {type key url} Localizer instproc render {} { html::a -title [my key] -href [my url] { - switch [my type] { + switch -- [my type] { localized {set char o; set style "color: green"} us_only {set char *; set style "background-color: yellow; color: red;"} missing {set char @; set style "background-color: red; color: white;"} @@ -238,8 +247,8 @@ Localizer instproc render {} { html::a -title [my key] -href [my url] { set path /resources/acs-templating/xinha-nightly/plugins/ - switch [my type] { - localized {set img ImageManager/img/btn_ok.gif} + switch -- [my type] { + localized {set img ImageManager/img/btn_ok.gif} us_only {set img Filter/img/ed_filter.gif} missing {set img LangMarks/img/en.gif} } @@ -359,8 +368,8 @@ Table instproc write_csv {} { set output "" set line [list] - my msg columns=[[self]::__columns children] foreach column [[self]::__columns children] { + if {[$column exists no_csv]} continue set label [$column label] if {[regexp {^#(.*)#$} $label _ message_key]} { set label [_ $message_key] @@ -372,6 +381,7 @@ foreach row [my children] { set line [list] foreach column [[self]::__columns children] { + if {[$column exists no_csv]} continue set value [string map {\" \\\"} [$row set [$column set name]]] lappend line \"$value\" } @@ -414,7 +424,7 @@ Class Field \ -superclass ::xo::OrderedComposite::Child \ - -parameter {label {html {}} {orderby ""} name {richtext false}} \ + -parameter {label {html {}} {orderby ""} name {richtext false} no_csv} \ -instproc init {} { my set name [namespace tail [self]] } \ @@ -837,8 +847,12 @@ # templating and CSS # Class create Page - Page proc requireCSS name {set ::_xo_need_css($name) 1} - Page proc requireStyle s {set ::_xo_need_style($s) 1} + Page proc requireCSS {{-order 1} name} { + set ::_xo_need_css($name) [expr {[array size ::_xo_need_css]+1000*$order}] + } + Page proc requireStyle {{-order 1} s} { + set ::_xo_need_style($s) [expr {[array size ::_xo_need_style]+1000*$order}] + } Page proc requireJS name { if {![info exists ::_xo_need_js($name)]} {lappend ::_xo_js_order $name} set ::_xo_need_js($name) 1 @@ -858,15 +872,26 @@ } return [list] } + Page proc sort_keys_by_value {{-comparison integer} {-direction increasing} pairs} { + set result [list] + set a [list] + foreach {key value} $pairs { + lappend a [list $key $value] + } + foreach pair [lsort -index 1 -$comparison -$direction $a] { + lappend result [lindex $pair 0] + } + return $result + } Page proc header_stuff {} { set result "" foreach link [array names ::_xo_need_link] { append result "\n" } - foreach style [array names ::_xo_need_style] { + foreach style [my sort_keys_by_value [array get ::_xo_need_style]] { append result "\n" } - foreach file [array names ::_xo_need_css] { + foreach file [my sort_keys_by_value [array get ::_xo_need_css]] { append result "\n" } if {[info exists ::_xo_js_order]} {