Index: openacs-4/packages/acs-lang/www/change-locale-include.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/change-locale-include.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-lang/www/change-locale-include.tcl 8 Aug 2003 12:21:28 -0000 1.7 +++ openacs-4/packages/acs-lang/www/change-locale-include.tcl 18 Aug 2003 10:32:53 -0000 1.8 @@ -13,6 +13,18 @@ set return_url [ns_set iget [ns_conn headers] referer] } +# +# LARS: +# I'm thinking the UI here needs to be different. +# +# Your locale preference and your timezone is going to be set through 'Your Account" +# The package-specific locale setting should be set through a page in dotlrn/acs-subsite +# +# This page should only be accessed through "Your Account" +# +# There's no reason to offer an option of 'default' preferred locale. +# + # Create a list of lists containing the possible locale choiches set list_of_locales [db_list_of_lists locale_loop { select label, locale from enabled_locales order by label }] @@ -30,16 +42,19 @@ set package_id [element get_value locale package_id_info] } -element create locale site_wide_explain -datatype text -widget inform -label " " \ +# are we selecting package level locale as well? +set package_level_locales_p [expr [lang::system::use_package_level_locales_p] && ![empty_string_p $package_id] && [ad_conn user_id] != 0] + +if { $package_level_locales_p } { + element create locale site_wide_explain -datatype text -widget inform -label " " \ -value "Your locale setting for the whole site." +} element create locale site_wide_locale -datatype text -widget select -optional \ - -label "Site-wide Locale" \ - -options $list_of_locales + -label "Your Preferred Locale" \ + -options $list_of_locales -# are we selecting package level locale as well? - -if { ($package_id != "") && ([ad_conn user_id] != 0) } { +if { $package_level_locales_p } { element create locale package_level_explain -datatype text -widget inform -label " " \ -value "Your locale setting for [apm_instance_name_from_id $package_id]. If set, this will override the site-wide setting in this particular application." @@ -49,19 +64,15 @@ } if { [lang::system::timezone_support_p] } { - set timezone_options [list] - foreach entry [lc_list_all_timezones] { - set tz [lindex $entry 0] - lappend timezone_options [list $entry $tz] - } + set timezone_options [db_list_of_lists all_timezones {}] element create locale timezone -datatype text -widget select -optional \ -label "Your Timezone" \ -options $timezone_options } if { [form is_request locale] } { - if { ($package_id != "") && ([ad_conn user_id] != 0) } { + if { $package_level_locales_p } { element set_properties locale package_level_locale -value [lang::user::package_level_locale $package_id] } element set_properties locale site_wide_locale -value [lang::user::site_wide_locale] @@ -74,8 +85,8 @@ if { [form is_valid locale] } { set site_wide_locale [element get_value locale site_wide_locale] - lang::user::set_locale -site_wide $site_wide_locale - if { ($package_id != "") && ([ad_conn user_id] != 0) } { + lang::user::set_locale $site_wide_locale + if { $package_level_locales_p } { set package_level_locale [element get_value locale package_level_locale] lang::user::set_locale -package_id $package_id $package_level_locale }