216 |
|
|
217 |
my $max_path_len = 0; |
my $max_path_len = 0; |
218 |
my $path_count; |
my $path_count; |
219 |
|
my $stats; |
220 |
|
|
221 |
$self->iterator( sub { |
$self->iterator( sub { |
222 |
my $e = shift; |
my $e = shift; |
249 |
|
|
250 |
$max_path_len = length $path if length $path > $max_path_len; |
$max_path_len = length $path if length $path > $max_path_len; |
251 |
$path_count->{$path}++; |
$path_count->{$path}++; |
252 |
|
|
253 |
|
if ( my $added = $e->{diff_paths}->{$path}->{added} ) { |
254 |
|
$stats->{total_added} += $added; |
255 |
|
} |
256 |
|
|
257 |
|
if ( my $removed = $e->{diff_paths}->{$path}->{removed} ) { |
258 |
|
$stats->{total_removed} += $removed; |
259 |
|
} |
260 |
} |
} |
261 |
|
|
262 |
my $diff = $self->html_diff( $e->{diff} ) if $e->{diff}; |
my $diff = $self->html_diff( $e->{diff} ) if $e->{diff}; |
263 |
|
|
264 |
$html .= $self->dump( $e->{diff_paths} ); |
$self->add_css(qq| |
265 |
|
.diff-lines { |
266 |
|
margin-left: 1em; |
267 |
|
float: right; |
268 |
|
} |
269 |
|
|); |
270 |
|
|
271 |
$html .= qq| |
$html .= qq| |
272 |
<div class="commit"> |
<div class="commit"> |
279 |
map { |
map { |
280 |
my $path = $_; |
my $path = $_; |
281 |
$path =~ s{<[^>]+>}{}g; |
$path =~ s{<[^>]+>}{}g; |
282 |
qq|<a href="?repository=$repository;path=$path" title="$path ##">$_</a>| |
my $diff = ''; |
283 |
|
if ( $diff = $e->{diff_paths}->{$path} ) { |
284 |
|
$diff |
285 |
|
= qq|<span class="diff-lines">| |
286 |
|
. join(" ", |
287 |
|
map { |
288 |
|
my $v = $diff->{$_}; |
289 |
|
s[added][+$v]; |
290 |
|
s[removed][-$v]; |
291 |
|
$_; |
292 |
|
} keys %$diff |
293 |
|
) |
294 |
|
. qq|</span>| |
295 |
|
; |
296 |
|
warn "DIFF $diff"; |
297 |
|
} |
298 |
|
|
299 |
|
qq|$diff<a href="?repository=$repository;path=$path" title="$path ##">$_</a>| |
300 |
} @files |
} @files |
301 |
) |
) |
302 |
. qq| |
. qq| |
308 |
|
|
309 |
}); |
}); |
310 |
|
|
311 |
|
$max_path_len += |
312 |
|
length( $stats->{total_added} ) |
313 |
|
+ length( $stats->{total_removed} ) |
314 |
|
; |
315 |
|
|
316 |
|
$max_path_len += int( $max_path_len / 10 ); # we are using ex, so we add 10% |
317 |
|
|
318 |
$self->add_css(qq| |
$self->add_css(qq| |
319 |
.files { |
.files { |
320 |
width: ${max_path_len}ex; |
width: ${max_path_len}ex; |
323 |
|
|
324 |
$html =~ s[title="(\S+) ##"]['title="' . $path_count->{$1} . '"']gse; |
$html =~ s[title="(\S+) ##"]['title="' . $path_count->{$1} . '"']gse; |
325 |
|
|
326 |
|
$html .= $self->dump( 'stats', $stats ); |
327 |
|
|
328 |
return $html; |
return $html; |
329 |
} |
} |
330 |
|
|
346 |
my ($action,$path) = ($p->{'action'},$p->{'content'}); |
my ($action,$path) = ($p->{'action'},$p->{'content'}); |
347 |
my $weight = ''; |
my $weight = ''; |
348 |
if ( my $s = $e->{diff_paths}->{$path} ) { |
if ( my $s = $e->{diff_paths}->{$path} ) { |
|
|
|
|
warn $self->dump( $s ); |
|
349 |
$weight = $s->{removed} if defined $s->{removed}; |
$weight = $s->{removed} if defined $s->{removed}; |
350 |
$weight += $s->{added} * 2 if defined $s->{added}; |
$weight += $s->{added} * 2 if defined $s->{added}; |
351 |
$weight = qq| weight="$weight" |; |
$weight = qq| weight="$weight" |; |