summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2008-08-28 06:26:13 +0200
committerlpsolit%gmail.com <>2008-08-28 06:26:13 +0200
commit55596ef8c29ae876c718946d54de787f32033db0 (patch)
tree5a09a8373f1e9e268f96caf7ee85e8bf2fee59f4 /Bugzilla
parentef56c491a65eed9dfddb2866c5faa59acb69b0ed (diff)
downloadbugzilla-55596ef8c29ae876c718946d54de787f32033db0.tar.gz
bugzilla-55596ef8c29ae876c718946d54de787f32033db0.tar.xz
Bug 399070: Remove the 'timezone' parameter - Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Config/Common.pm11
-rw-r--r--Bugzilla/Config/Core.pm7
-rw-r--r--Bugzilla/Template.pm5
-rw-r--r--Bugzilla/Util.pm20
-rwxr-xr-xBugzilla/WebService/Bugzilla.pm4
5 files changed, 15 insertions, 32 deletions
diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm
index 39fc114d6..d105d9db8 100644
--- a/Bugzilla/Config/Common.pm
+++ b/Bugzilla/Config/Common.pm
@@ -35,7 +35,6 @@ package Bugzilla::Config::Common;
use strict;
use Socket;
-use Time::Zone;
use Bugzilla::Util;
use Bugzilla::Constants;
@@ -49,7 +48,7 @@ use base qw(Exporter);
check_sslbase check_priority check_severity check_platform
check_opsys check_shadowdb check_urlbase check_webdotbase
check_netmask check_user_verify_class check_image_converter
- check_mail_delivery_method check_notification check_timezone check_utf8
+ check_mail_delivery_method check_notification check_utf8
check_bug_status check_smtp_auth
);
@@ -327,14 +326,6 @@ sub check_notification {
return "";
}
-sub check_timezone {
- my $tz = shift;
- unless (defined(tz_offset($tz))) {
- return "must be empty or a legal timezone name, such as PDT or JST";
- }
- return "";
-}
-
sub check_smtp_auth {
my $username = shift;
if ($username) {
diff --git a/Bugzilla/Config/Core.pm b/Bugzilla/Config/Core.pm
index b307dd7f5..6d413b965 100644
--- a/Bugzilla/Config/Core.pm
+++ b/Bugzilla/Config/Core.pm
@@ -88,13 +88,6 @@ sub get_param_list {
},
{
- name => 'timezone',
- type => 't',
- default => '',
- checker => \&check_timezone
- },
-
- {
name => 'utf8',
type => 'b',
default => '0',
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index 76ff9f11d..dbf52a97b 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -45,7 +45,6 @@ use Bugzilla::Template::Parser;
use Cwd qw(abs_path);
use MIME::Base64;
-# for time2str - replace by TT Date plugin??
use Date::Format ();
use File::Basename qw(dirname);
use File::Find;
@@ -605,10 +604,10 @@ sub create {
# Format a time for display (more info in Bugzilla::Util)
time => [ sub {
- my ($context, $format) = @_;
+ my ($context, $format, $timezone) = @_;
return sub {
my $time = shift;
- return format_time($time, $format);
+ return format_time($time, $format, $timezone);
};
},
1
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm
index a8c595a05..9ff810b4f 100644
--- a/Bugzilla/Util.pm
+++ b/Bugzilla/Util.pm
@@ -51,6 +51,7 @@ use Bugzilla::Constants;
use Date::Parse;
use Date::Format;
use DateTime;
+use DateTime::TimeZone;
use Text::Wrap;
# This is from the perlsec page, slightly modified to remove a warning
@@ -397,7 +398,7 @@ sub wrap_hard {
}
sub format_time {
- my ($date, $format) = @_;
+ my ($date, $format, $timezone) = @_;
# If $format is undefined, try to guess the correct date format.
if (!defined($format)) {
@@ -429,8 +430,9 @@ sub format_time {
# Use the timezone specified by the server.
time_zone => Bugzilla->local_timezone});
- # Now display the date using the user's timezone.
- $dt->set_time_zone(Bugzilla->user->timezone);
+ # Now display the date using the given timezone,
+ # or the user's timezone if none is given.
+ $dt->set_time_zone($timezone || Bugzilla->user->timezone);
$date = $dt->strftime($format);
}
else {
@@ -875,15 +877,13 @@ A string.
=item C<format_time($time)>
-Takes a time, converts it to the desired format and appends the timezone
-as defined in editparams.cgi, if desired. This routine will be expanded
-in the future to adjust for user preferences regarding what timezone to
-display times in.
+Takes a time and converts it to the desired format and timezone.
+If no format is given, the routine guesses the correct one and returns
+an empty array if it cannot. If no timezone is given, the user's timezone
+is used, as defined in his preferences.
This routine is mainly called from templates to filter dates, see
-"FILTER time" in Templates.pm. In this case, $format is undefined and
-the routine has to "guess" the date format that was passed to $dbh->sql_date_format().
-
+"FILTER time" in L<Bugzilla::Template>.
=item C<format_time_decimal($time)>
diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm
index af64f4e3a..5196834df 100755
--- a/Bugzilla/WebService/Bugzilla.pm
+++ b/Bugzilla/WebService/Bugzilla.pm
@@ -23,7 +23,7 @@ use base qw(Bugzilla::WebService);
use Bugzilla::Constants;
use Bugzilla::Hook;
-use Time::Zone;
+use DateTime;
# Basic info that is needed before logins
use constant LOGIN_EXEMPT => {
@@ -51,7 +51,7 @@ sub extensions {
sub timezone {
my $self = shift;
- my $offset = tz_offset();
+ my $offset = Bugzilla->local_timezone->offset_for_datetime(DateTime->now());
$offset = (($offset / 60) / 60) * 100;
$offset = sprintf('%+05d', $offset);
return { timezone => $self->type('string', $offset) };