Index: openacs-4/packages/acs-lang/www/admin/localized-message-new.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/localized-message-new.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-lang/www/admin/localized-message-new.tcl 10 Jan 2007 21:22:04 -0000 1.9 +++ openacs-4/packages/acs-lang/www/admin/localized-message-new.tcl 13 Aug 2007 11:13:46 -0000 1.10 @@ -5,43 +5,59 @@ @author Bruno Mattarollo @author Christian Hvid + @author Christian Eva ( Error-handling, return / loop / cancel @creation-date 15 April 2002 @cvs-id $Id$ } { locale package_key {message_key ""} - {return_url {[export_vars -base message-list { locale package_key }]}} + {return_url {}} } +# cjeva: changed the way the return va is handled, so that it can be called from +# other parts of oacs and return there. So if it is called with a message-key, it will +# not display the two buttons. + +set default_return [export_vars -base message-list { locale package_key }] + # We rename to avoid conflict in queries set current_locale $locale set default_locale en_US -set locale_label [lang::util::get_label $current_locale] -set default_locale_label [lang::util::get_label $default_locale] +set locale_label [ad_locale_get_label $current_locale] +set default_locale_label [ad_locale_get_label $default_locale] set page_title "Create New Message" set context [list [list "package-list?[export_vars { locale }]" $locale_label] \ [list "message-list?[export_vars { locale package_key show }]" $package_key] \ $page_title] +set next_url [export_vars -base [ad_conn url] { locale package_key return_url}] - # We check that this request is coming for the system wide default # locale. If not, we can't allow the creation of a new localized # message. -if { $current_locale ne $default_locale } { +if { ![string equal $current_locale $default_locale] } { ad_return_error "Can only create messages in the default locale" "Can only create messages in the default locale" ad_script_abort } -form create message_new +set Lbutt [list [list Insert ok]] +if {![string length $return_url]} { + lappend Lbutt [list Return cancel] +} else { + set next_url $return_url +} + +form create message_new \ + -edit_buttons $Lbutt + element create message_new package_key_display -label "Package" -datatype text \ -widget inform -value $package_key @@ -58,13 +74,14 @@ # processing of the form element create message_new locale -label "locale" -datatype text -widget hidden +set focus message_new.message_key if { [form is_request message_new] } { element set_value message_new package_key $package_key element set_value message_new locale $current_locale element set_value message_new message_key $message_key element set_value message_new return_url $return_url - if { $message_key eq "" } { + if { [empty_string_p $message_key] } { set focus message_new.message_key } else { set focus message_new.message @@ -75,6 +92,17 @@ # We are not getting a request, so it's a post. Get and validate # the values + set button [form get_button message_new] + if {[string match cancel $button]} { + # go back + if {![string length $return_url]} { + + set return_url $default_return + } + ad_returnredirect $return_url + ad_script_abort + } + form get_values message_new # We have to check the format of the key submitted by the user, @@ -103,14 +131,16 @@ # We use the acs-lang registration of a translation. Simple, eh? - lang::message::register $locale $package_key $message_key $message + set err [catch {lang::message::register $locale $package_key $message_key $message} err_mess] + if { $err } { + util_user_message -message $err_mess + element set_error message_new package_key_display \ + $err_mess + } else { + + set escaped_locale [ns_urlencode $locale] - set escaped_locale [ns_urlencode $locale] - - forward $return_url - + ##forward $return_url + forward $next_url + } } - -set focus "" - -ad_return_template \ No newline at end of file