diff --git a/editsettings.cgi b/editsettings.cgi index 75001c904..8bc5dd4cf 100755 --- a/editsettings.cgi +++ b/editsettings.cgi @@ -1,6 +1,4 @@ #!/usr/bin/perl -wT -# -*- Mode: perl; indent-tabs-mode: nil -*- -# # The contents of this file are subject to the Mozilla Public # License Version 1.1 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of @@ -28,44 +26,50 @@ use Bugzilla::Token; my $template = Bugzilla->template; my $user = Bugzilla->login(LOGIN_REQUIRED); -my $cgi = Bugzilla->cgi; +my $ARGS = Bugzilla->input_params; my $vars = {}; -$user->in_group('tweakparams') - || ThrowUserError("auth_failure", {group => "tweakparams", - action => "modify", - object => "settings"}); +$user->in_group('tweakparams') || ThrowUserError("auth_failure", { + group => "tweakparams", + action => "modify", + object => "settings", +}); -my $action = trim($cgi->param('action') || ''); -my $token = $cgi->param('token'); +my $action = trim($ARGS->{action} || ''); +my $token = $ARGS->{token}; -if ($action eq 'update') { +if ($action eq 'update') +{ check_token_data($token, 'edit_settings'); my $settings = Bugzilla::User::Setting::get_defaults(); my $changed = 0; - - foreach my $name (keys %$settings) { - my $old_enabled = $settings->{$name}->{'is_enabled'}; - my $old_value = $settings->{$name}->{'default_value'}; - my $enabled = defined $cgi->param("${name}-enabled") || 0; - my $value = $cgi->param("${name}"); + foreach my $name (keys %$settings) + { + my $old_enabled = $settings->{$name}->{is_enabled}; + my $old_value = $settings->{$name}->{default_value}; + my $enabled = $ARGS->{$name.'-enabled'} ? 1 : 0; + my $value = $ARGS->{$name}; my $setting = new Bugzilla::User::Setting($name); - $setting->validate_value($value); - - if ($old_enabled != $enabled || $old_value ne $value) { + if ($old_enabled != $enabled || $old_value ne $value) + { Bugzilla::User::Setting::set_default($name, $value, $enabled); $changed = 1; } } - $vars->{'message'} = 'default_settings_updated'; - $vars->{'changes_saved'} = $changed; delete_token($token); + Bugzilla->add_result_message({ + message => 'default_settings_updated', + changes_saved => $changed, + }); + Bugzilla->save_session_data; + print Bugzilla->cgi->redirect('editsettings.cgi'); + exit; } -# Don't use $settings as defaults may have changed. -$vars->{'settings'} = Bugzilla::User::Setting::get_defaults(); -$vars->{'token'} = issue_session_token('edit_settings'); +$vars->{settings} = Bugzilla::User::Setting::get_defaults(); +$vars->{token} = issue_session_token('edit_settings'); $template->process("admin/settings/edit.html.tmpl", $vars) - || ThrowTemplateError($template->error()); + || ThrowTemplateError($template->error()); +exit; diff --git a/template/en/default/admin/settings/edit.html.tmpl b/template/en/default/admin/settings/edit.html.tmpl index 73138b125..12d61c6af 100644 --- a/template/en/default/admin/settings/edit.html.tmpl +++ b/template/en/default/admin/settings/edit.html.tmpl @@ -54,12 +54,10 @@ page, and the Default Value will automatically apply to everyone. Default Value [% FOREACH name = settings.keys.sort %] - [% checkbox_name = name _ '-enabled' %] - diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl index afedc3f87..c26027e51 100644 --- a/template/en/default/global/messages.html.tmpl +++ b/template/en/default/global/messages.html.tmpl @@ -99,6 +99,16 @@
Active values updated.
[% END %] +[% BLOCK msg_default_settings_updated %] +
+ [% IF changes_saved %] + Changes to default preferences have been saved. + [% ELSE %] + No changes made. + [% END %] +
+[% END %] + [% BLOCK msg_control_lists_updated %]

[% t = Bugzilla.get_field(field_id).description | html %] @@ -372,14 +382,6 @@ successfully updated. [% END %] -[% BLOCK msg_default_settings_updated %] - [% IF changes_saved %] - Changes to default preferences have been saved. - [% ELSE %] - No changes made. - [% END %] -[% END %] - [% BLOCK msg_emailold_change_canceled %] [% title = "Cancel Request to Change Email Address" %] The request to change the email address for your account to