mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
gitweb: Make JavaScript ability to adjust timezones configurable
Configure JavaScript-based ability to select common timezone for git dates via %feature mechanism, namely 'javascript-timezone' feature. The following settings are configurable: * default timezone (defaults to 'local' i.e. browser timezone); this also can function as a way to disable this ability, by setting it to false-ish value (undef or '') * name of cookie to store user's choice of timezone * class name to mark dates NOTE: This is a bit of abuse of %feature system, which can store only sequence of values, rather than dictionary (hash); usually but not always only a single value is used. Based-on-code-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net> Helped-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
2ae8da2552
commit
2e987f9240
@ -480,6 +480,18 @@ our %feature = (
|
|||||||
'override' => 0,
|
'override' => 0,
|
||||||
'default' => [0]},
|
'default' => [0]},
|
||||||
|
|
||||||
|
# Enable and configure ability to change common timezone for dates
|
||||||
|
# in gitweb output via JavaScript. Enabled by default.
|
||||||
|
# Project specific override is not supported.
|
||||||
|
'javascript-timezone' => {
|
||||||
|
'override' => 0,
|
||||||
|
'default' => [
|
||||||
|
'local', # default timezone: 'utc', 'local', or '(-|+)HHMM' format,
|
||||||
|
# or undef to turn off this feature
|
||||||
|
'gitweb_tz', # name of cookie where to store selected timezone
|
||||||
|
'datetime', # CSS class used to mark up dates for manipulation
|
||||||
|
]},
|
||||||
|
|
||||||
# Syntax highlighting support. This is based on Daniel Svensson's
|
# Syntax highlighting support. This is based on Daniel Svensson's
|
||||||
# and Sham Chukoury's work in gitweb-xmms2.git.
|
# and Sham Chukoury's work in gitweb-xmms2.git.
|
||||||
# It requires the 'highlight' program present in $PATH,
|
# It requires the 'highlight' program present in $PATH,
|
||||||
@ -3733,14 +3745,19 @@ sub git_footer_html {
|
|||||||
qq! "!. href() .qq!");\n!.
|
qq! "!. href() .qq!");\n!.
|
||||||
qq!</script>\n!;
|
qq!</script>\n!;
|
||||||
} else {
|
} else {
|
||||||
|
my ($jstimezone, $tz_cookie, $datetime_class) =
|
||||||
|
gitweb_get_feature('javascript-timezone');
|
||||||
|
|
||||||
print qq!<script type="text/javascript">\n!.
|
print qq!<script type="text/javascript">\n!.
|
||||||
qq!window.onload = function () {\n!.
|
qq!window.onload = function () {\n!;
|
||||||
(gitweb_check_feature('javascript-actions') ?
|
if (gitweb_check_feature('javascript-actions')) {
|
||||||
qq! fixLinks();\n! : '').
|
print qq! fixLinks();\n!;
|
||||||
# last parameter to onloadTZSetup must be CSS class used by format_timestamp_html
|
}
|
||||||
qq! var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };\n!. # in days
|
if ($jstimezone && $tz_cookie && $datetime_class) {
|
||||||
qq! onloadTZSetup('local', tz_cookie, 'datetime');\n!.
|
print qq! var tz_cookie = { name: '$tz_cookie', expires: 14, path: '/' };\n!. # in days
|
||||||
qq!};\n!.
|
qq! onloadTZSetup('$jstimezone', tz_cookie, '$datetime_class');\n!;
|
||||||
|
}
|
||||||
|
print qq!};\n!.
|
||||||
qq!</script>\n!;
|
qq!</script>\n!;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3946,7 +3963,13 @@ sub git_print_section {
|
|||||||
|
|
||||||
sub format_timestamp_html {
|
sub format_timestamp_html {
|
||||||
my $date = shift;
|
my $date = shift;
|
||||||
my $strtime = '<span class="datetime">'.$date->{'rfc2822'}.'</span>';
|
my $strtime = $date->{'rfc2822'};
|
||||||
|
|
||||||
|
my (undef, undef, $datetime_class) =
|
||||||
|
gitweb_get_feature('javascript-timezone');
|
||||||
|
if ($datetime_class) {
|
||||||
|
$strtime = qq!<span class="$datetime_class">$strtime</span>!;
|
||||||
|
}
|
||||||
|
|
||||||
my $localtime_format = '(%02d:%02d %s)';
|
my $localtime_format = '(%02d:%02d %s)';
|
||||||
if ($date->{'hour_local'} < 6) {
|
if ($date->{'hour_local'} < 6) {
|
||||||
|
Loading…
Reference in New Issue
Block a user