X-Git-Url: https://git.chrismorgan.info/gitweb/blobdiff_plain/3cca22ac8cb362e0187b9a609355db662b23f158..15c020263f5c99b3598a48428ad9a7fd4af0c06b:/gitweb.cgi diff --git a/gitweb.cgi b/gitweb.cgi index 1de74b6..1aba48a 100755 --- a/gitweb.cgi +++ b/gitweb.cgi @@ -519,18 +519,6 @@ our %feature = ( 'override' => 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 # and Sham Chukoury's work in gitweb-xmms2.git. # It requires the 'highlight' program present in $PATH, @@ -3594,12 +3582,13 @@ sub parse_commit_text { $co{'age'} = $age; $co{'age_string'} = age_string($age); my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) = gmtime($co{'committer_epoch'}); + $co{'age_string_iso8601'} = sprintf "%4i-%02u-%02i %02u:%02u:%02uZ", 1900 + $year, $mon+1, $mday, $hour, $min, $sec; if ($age > 60*60*24*7*2) { $co{'age_string_date'} = sprintf "%4i-%02u-%02i", 1900 + $year, $mon+1, $mday; - $co{'age_string_age'} = $co{'age_string'}; + $co{'age_string_age'} = "$co{'age_string_iso8601'} ($co{'age_string'})"; } else { $co{'age_string_date'} = $co{'age_string'}; - $co{'age_string_age'} = sprintf "%4i-%02u-%02i", 1900 + $year, $mon+1, $mday; + $co{'age_string_age'} = $co{'age_string_iso8601'}; } return %co; } @@ -4318,20 +4307,13 @@ sub git_footer_html { qq! "!. esc_attr(href()) .qq!");\n!. qq!\n!; } else { - my ($jstimezone, $tz_cookie, $datetime_class) = - gitweb_get_feature('javascript-timezone'); - - if (gitweb_check_feature('javascript-actions') || ($jstimezone && $tz_cookie && $datetime_class)) { + if (gitweb_check_feature('javascript-actions')) { print qq!\n!; print qq!\n!; } @@ -4497,7 +4479,7 @@ sub git_print_header_div { sub format_repo_url { my ($name, $url) = @_; - return "$name$url\n"; + return "$name$url\n"; } # Group output by placing it in a DIV element and adding a header. @@ -4540,20 +4522,8 @@ sub git_print_section { sub format_timestamp_html { my $date = shift; - my $strtime = $date->{'rfc2822'}; - my (undef, undef, $datetime_class) = - gitweb_get_feature('javascript-timezone'); - if ($datetime_class) { - $strtime = qq!$strtime!; - } - - my $localtime_format = '(%02d:%02d %s)'; - $strtime .= ' ' . - sprintf($localtime_format, - $date->{'hour_local'}, $date->{'minute_local'}, $date->{'tz_local'}); - - return $strtime; + return qq!!; } # Outputs the author name and date in long form @@ -4878,11 +4848,11 @@ sub git_difftree_body { my ($difftree, $hash, @parents) = @_; my ($parent) = $parents[0]; my $have_blame = gitweb_check_feature('blame'); - print "
\n"; if ($#{$difftree} > 10) { + print "
\n"; print(($#{$difftree} + 1) . " files changed:\n"); + print "
\n"; } - print "
\n"; print " 1 ? "combined " : "") . @@ -5907,13 +5877,15 @@ sub git_log_body { $from = 0 unless defined $from; $to = $#{$commitlist} if (!defined $to || $#{$commitlist} < $to); + print "
\n"; for (my $i = 0; $i <= $to; $i++) { my %co = %{$commitlist->[$i]}; next if !%co; my $commit = $co{'id'}; my $ref = format_ref_marker($refs, $commit); + print "
\n"; git_print_header_div('commit', - "$co{'age_string'}" . + "" . esc_html($co{'title'}) . $ref, $commit); print "
\n" . @@ -5930,7 +5902,9 @@ sub git_log_body { print "
\n"; git_print_log($co{'comment'}); print "
\n"; + print "
\n"; } + print "
\n"; if ($extra) { print "
\n"; print "$extra\n"; @@ -5958,7 +5932,7 @@ sub git_shortlog_body { } $alternate ^= 1; # git_summary() used print "
\n" . - print "\n" . + print "\n" . format_author_html('td', \%co, 10) . "\n"; } $alternate ^= 1; - print "\n" . + print "\n" . # shortlog: format_author_html('td', \%co, 10) format_author_html('td', \%co, 15, 3) . "\n" . + print "\n" . "\n" . "\n"; } $alternate ^= 1; - print "\n" . + print "\n" . format_author_html('td', \%co, 15, 5) . "
$co{'age_string'}$co{'age_string_date'}"; print format_subject_html($co{'title'}, $co{'title_short'}, href(action=>"commit", hash=>$commit), $ref); @@ -6007,7 +5981,7 @@ sub git_history_body { print "
$co{'age_string_date'}"; # originally git_history used chop_str($co{'title'}, 50) @@ -6337,7 +6311,7 @@ sub git_search_changes { $alternate ^= 1; %co = parse_commit($set{'commit'}); my $author = chop_and_escape_str($co{'author_name'}, 15, 5); - print "$co{'age_string_date'}$author" . $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}), @@ -6471,7 +6445,7 @@ sub git_search_grep_body { print "
$co{'age_string_date'}" . $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}), @@ -6655,51 +6629,66 @@ sub git_summary { print "
\n"; + print("
\n"); + # If XSS prevention is on, we don't include README.html. # TODO: Allow a readme in some safe format. if (!$prevent_xss && -s "$projectroot/$project/README.html") { + print("
\n"); print "
readme
\n" . "
\n"; insert_file("$projectroot/$project/README.html"); print "\n
\n"; # class="readme" + print("
\n"); } # we need to request one more than 16 (0..15) to check if # those 16 are all my @commitlist = $head ? parse_commits($head, 17) : (); if (@commitlist) { + print("
\n"); git_print_header_div('shortlog'); git_shortlog_body(\@commitlist, 0, 15, $refs, $#commitlist <= 15 ? undef : $cgi->a({-href => href(action=>"shortlog")}, "...")); + print("
\n"); } if (@taglist) { + print("
\n"); git_print_header_div('tags'); git_tags_body(\@taglist, 0, 15, $#taglist <= 15 ? undef : $cgi->a({-href => href(action=>"tags")}, "...")); + print("
\n"); } if (@headlist) { + print("
\n"); git_print_header_div('heads'); git_heads_body(\@headlist, $head, 0, 15, $#headlist <= 15 ? undef : $cgi->a({-href => href(action=>"heads")}, "...")); + print("
\n"); } if (%remotedata) { + print("
\n"); git_print_header_div('remotes'); git_remotes_body(\%remotedata, 15, $head); + print("
\n"); } if (@forklist) { + print("
\n"); git_print_header_div('forks'); git_project_list_body(\@forklist, 'age', 0, 15, $#forklist <= 15 ? undef : $cgi->a({-href => href(action=>"forks")}, "..."), 'no_header'); + print("
\n"); } + print("
\n"); git_footer_html(); }