diff options
-rw-r--r-- | Bugzilla/Config/Common.pm | 11 | ||||
-rw-r--r-- | Bugzilla/Config/Core.pm | 7 | ||||
-rw-r--r-- | Bugzilla/Template.pm | 5 | ||||
-rw-r--r-- | Bugzilla/Util.pm | 20 | ||||
-rwxr-xr-x | Bugzilla/WebService/Bugzilla.pm | 4 | ||||
-rwxr-xr-x | buglist.cgi | 19 | ||||
-rw-r--r-- | docs/en/xml/administration.xml | 12 | ||||
-rwxr-xr-x | editwhines.cgi | 1 | ||||
-rwxr-xr-x | importxml.pl | 3 | ||||
-rw-r--r-- | template/en/default/admin/params/core.html.tmpl | 4 | ||||
-rw-r--r-- | template/en/default/bug/summarize-time.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/list/list.atom.tmpl | 9 | ||||
-rw-r--r-- | template/en/default/list/list.csv.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/list/list.ics.tmpl | 6 | ||||
-rw-r--r-- | template/en/default/whine/schedule.html.tmpl | 6 |
15 files changed, 32 insertions, 80 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) }; diff --git a/buglist.cgi b/buglist.cgi index 3baeee291..6619fdd65 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -204,18 +204,17 @@ foreach my $chart (@charts) { # Utilities ################################################################################ -local our @weekday= qw( Sun Mon Tue Wed Thu Fri Sat ); sub DiffDate { my ($datestr) = @_; my $date = str2time($datestr); my $age = time() - $date; - my ($s,$m,$h,$d,$mo,$y,$wd)= localtime $date; + if( $age < 18*60*60 ) { - $date = sprintf "%02d:%02d:%02d", $h,$m,$s; + $date = format_time($datestr, '%H:%M:%S'); } elsif( $age < 6*24*60*60 ) { - $date = sprintf "%s %02d:%02d", $weekday[$wd],$h,$m; + $date = format_time($datestr, '%a %H:%M'); } else { - $date = sprintf "%04d-%02d-%02d", 1900+$y,$mo+1,$d; + $date = format_time($datestr, '%Y-%m-%d'); } return $date; } @@ -1077,16 +1076,12 @@ while (my @row = $buglist_sth->fetchrow_array()) { $bug->{'changeddate'} =~ s/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/$1-$2-$3 $4:$5:$6/; - # Put in the change date as a time, so that the template date plugin - # can format the date in any way needed by the template. ICS and Atom - # have specific, and different, date and time formatting. - $bug->{'changedtime'} = str2time($bug->{'changeddate'}, Bugzilla->params->{'timezone'}); - $bug->{'changeddate'} = DiffDate($bug->{'changeddate'}); + $bug->{'changedtime'} = $bug->{'changeddate'}; # for iCalendar and Atom + $bug->{'changeddate'} = DiffDate($bug->{'changeddate'}); } if ($bug->{'opendate'}) { - # Put in the open date as a time for the template date plugin. - $bug->{'opentime'} = str2time($bug->{'opendate'}, Bugzilla->params->{'timezone'}); + $bug->{'opentime'} = $bug->{'opendate'}; # for iCalendar $bug->{'opendate'} = DiffDate($bug->{'opendate'}); } diff --git a/docs/en/xml/administration.xml b/docs/en/xml/administration.xml index 2ed037609..77f02c0f6 100644 --- a/docs/en/xml/administration.xml +++ b/docs/en/xml/administration.xml @@ -147,18 +147,6 @@ <varlistentry> <term> - timezone - </term> - <listitem> - <para> - Timezone of server. The timezone is displayed with timestamps. If - this parameter is left blank, the timezone is not displayed. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> utf8 </term> <listitem> diff --git a/editwhines.cgi b/editwhines.cgi index 922fe721d..06717fe2c 100755 --- a/editwhines.cgi +++ b/editwhines.cgi @@ -426,6 +426,7 @@ while (my ($query) = $sth->fetchrow_array) { push @{$vars->{'available_queries'}}, $query; } $vars->{'token'} = issue_session_token('edit_whine'); +$vars->{'local_timezone'} = Bugzilla->local_timezone->short_name_for_datetime(DateTime->now()); $template->process("whine/schedule.html.tmpl", $vars) || ThrowTemplateError($template->error()); diff --git a/importxml.pl b/importxml.pl index 6b0c043b4..d2ff9cc67 100755 --- a/importxml.pl +++ b/importxml.pl @@ -571,8 +571,7 @@ sub process_bug { my $comments; $comments .= "\n\n--- Bug imported by $exporter_login "; - $comments .= time2str( "%Y-%m-%d %H:%M", time ) . " "; - $comments .= $params->{'timezone'}; + $comments .= format_time(localtime(time()), '%Y-%m-%d %H:%M %Z') . " "; $comments .= " ---\n\n"; $comments .= "This bug was previously known as _bug_ $bug_fields{'bug_id'} at "; $comments .= $urlbase . "show_bug.cgi?id=" . $bug_fields{'bug_id'} . "\n"; diff --git a/template/en/default/admin/params/core.html.tmpl b/template/en/default/admin/params/core.html.tmpl index ae1d995fb..d66c4a51b 100644 --- a/template/en/default/admin/params/core.html.tmpl +++ b/template/en/default/admin/params/core.html.tmpl @@ -60,10 +60,6 @@ "all sites served by this web server or virtual host to read " _ "$terms.Bugzilla cookies.", - timezone => "The timezone that your database server lives in, " _ - "such as UTC, PDT or JST. If set to '', " _ - "then the timezone will not be displayed with the timestamps.", - utf8 => "Use UTF-8 (Unicode) encoding for all text in ${terms.Bugzilla}. New " _ "installations should set this to true to avoid character encoding " _ "problems. <strong>Existing databases should set this to true " _ diff --git a/template/en/default/bug/summarize-time.html.tmpl b/template/en/default/bug/summarize-time.html.tmpl index b8bd0737e..14ae68da2 100644 --- a/template/en/default/bug/summarize-time.html.tmpl +++ b/template/en/default/bug/summarize-time.html.tmpl @@ -14,8 +14,6 @@ # Frédéric Buclin <LpSolit@gmail.com> #%] -[% USE date %] - [% PROCESS "global/field-descs.none.tmpl" %] [% title = "Time Summary " %] diff --git a/template/en/default/list/list.atom.tmpl b/template/en/default/list/list.atom.tmpl index bfebbb8dd..5086a044c 100644 --- a/template/en/default/list/list.atom.tmpl +++ b/template/en/default/list/list.atom.tmpl @@ -24,7 +24,6 @@ #%] [% PROCESS global/variables.none.tmpl %] -[% USE date %] [% DEFAULT title = "$terms.Bugzilla $terms.Bugs" %] @@ -37,9 +36,8 @@ <link rel="self" type="application/atom+xml" href="[% urlbase FILTER html %]buglist.cgi? [%- urlquerypart FILTER xml %]"/> - <updated>[% date.format(format=>"%Y-%m-%dT%H:%M:%SZ", - time=>bugs.nsort('changedtime').last.changedtime, - gmt=>1) FILTER xml %]</updated> + <updated>[% bugs.nsort('changedtime').last.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") + FILTER xml %]</updated> <id>[% urlbase FILTER html %]buglist.cgi?[% urlquerypart FILTER xml %]</id> [% FOREACH bug = bugs %] @@ -52,8 +50,7 @@ <author> <name>[% bug.reporter_realname FILTER xml %]</name> </author> - <updated>[% date.format(format=>"%Y-%m-%dT%H:%M:%SZ",time=>bug.changedtime, - gmt=>1) FILTER xml %]</updated> + <updated>[% bug.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") FILTER xml %]</updated> <summary type="html"> [%# Filter out the entire block, so that we don't need to escape the html code out %] [% FILTER xml %] diff --git a/template/en/default/list/list.csv.tmpl b/template/en/default/list/list.csv.tmpl index 9ce1c73f1..1a25b3907 100644 --- a/template/en/default/list/list.csv.tmpl +++ b/template/en/default/list/list.csv.tmpl @@ -20,7 +20,6 @@ #%] [% PROCESS "global/field-descs.none.tmpl" %] -[% USE date %] [% colsepchar = user.settings.csv_colsepchar.value %] @@ -35,7 +34,7 @@ bug_id [% colsepchar %] [% IF column == "opendate" OR column == "changeddate" %] [% rawcolumn = column.replace("date", "time") %] - [% bug.$column = date.format(bug.$rawcolumn, "%Y-%m-%d %H:%M:%S") %] + [% bug.$column = bug.$rawcolumn FILTER time("%Y-%m-%d %H:%M:%S") %] [% ELSIF column == 'bug_status' %] [% bug.$column = get_status(bug.$column) %] [% ELSIF column == 'resolution' %] diff --git a/template/en/default/list/list.ics.tmpl b/template/en/default/list/list.ics.tmpl index f8953d996..d30b0658c 100644 --- a/template/en/default/list/list.ics.tmpl +++ b/template/en/default/list/list.ics.tmpl @@ -31,7 +31,7 @@ BEGIN:VTODO [%+ PROCESS ics_status bug_status = bug.bug_status +%] [%+ PROCESS ics_dtstamp +%] [% IF bug.changeddate %] -[%+ time2str("%Y%m%dT%H%M%SZ", bug.changedtime, "UTC") FILTER ics('LAST-MODIFIED') +%] +[%+ bug.changedtime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('LAST-MODIFIED') +%] [% END %] [% IF bug.percentage_complete %] [%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%] @@ -65,11 +65,11 @@ END:VCALENDAR [% END %] [% BLOCK ics_dtstart %] - [% time2str("%Y%m%dT%H%M%SZ", bug.opentime, "UTC") FILTER ics('DTSTART') %] + [% bug.opentime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTART') %] [% END %] [% BLOCK ics_dtstamp %] - [% time2str("%Y%m%dT%H%M%SZ", currenttime, "UTC") FILTER ics('DTSTAMP') %] + [% currenttime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTAMP') %] [% END %] [% BLOCK ics_status %] diff --git a/template/en/default/whine/schedule.html.tmpl b/template/en/default/whine/schedule.html.tmpl index 8cb120dfa..c60243d42 100644 --- a/template/en/default/whine/schedule.html.tmpl +++ b/template/en/default/whine/schedule.html.tmpl @@ -71,11 +71,7 @@ </p> <p> - [% IF Param("timezone") %] - All times are server local time ([% Param("timezone") FILTER upper %]). - [% ELSE %] - All times are server local time. - [% END %] + All times are server local time ([% local_timezone FILTER html %]). </p> <form method="post" action="editwhines.cgi"> |