11 |
#with 'Frey::Storage'; |
#with 'Frey::Storage'; |
12 |
|
|
13 |
use XML::Simple; |
use XML::Simple; |
14 |
|
use DateTimeX::Easy; |
15 |
|
|
16 |
has repository => ( |
has repository => ( |
17 |
is => 'rw', |
is => 'rw', |
116 |
} |
} |
117 |
|
|
118 |
our $html = ''; |
our $html = ''; |
119 |
sub html { |
|
120 |
$html .= join("\n", @_); |
$self->add_css(qq| |
121 |
} |
.files { color: #888; } |
122 |
|
.date, .revision { color: #666; } |
123 |
|
.message { padding-bottom: 0.5em; } |
124 |
|
|
125 |
|
ins { color: #8c8 } |
126 |
|
del { color: #c88 } |
127 |
|
|); |
128 |
|
|
129 |
$self->iterator( sub { |
$self->iterator( sub { |
130 |
my $e = shift; |
my $e = shift; |
135 |
$date =~ s/T/ /; |
$date =~ s/T/ /; |
136 |
$date =~ s/\.\d+Z$//; |
$date =~ s/\.\d+Z$//; |
137 |
|
|
138 |
html '<p><tt>'.$date.'</tt> <em>',$e->{'author'},'</em> <tt style="color:#808080">r',$e->{'revision'},'</tt></p>'; |
$html .= qq|<div><span class="date">$date</span> <em>$e->{author}</em> <span class="revision">$e->{revision}</span></div>|; |
139 |
|
|
140 |
|
my $msg = $e->{'msg'}; |
141 |
|
$msg = '' if ref($msg); # FIXME why do I need this, dammit? |
142 |
|
if ( $msg ) { |
143 |
|
$msg = encode( $msg ); |
144 |
|
$msg = qq|<div class="message">$msg</div>|; |
145 |
|
} |
146 |
|
|
147 |
my @files; |
my @files; |
148 |
|
|
153 |
push @files, "<ins>$path</ins>"; |
push @files, "<ins>$path</ins>"; |
154 |
} elsif ($action eq "D") { |
} elsif ($action eq "D") { |
155 |
push @files, "<del>$path</del>"; |
push @files, "<del>$path</del>"; |
156 |
} else{ |
} else { |
157 |
push @files, $path; |
push @files, $path; |
158 |
} |
} |
159 |
} |
} |
160 |
|
|
161 |
html '<blockquote><p><tt style="color:#808080">',join(", ",@files),':</tt> ',encode($e->{'msg'}),'</p></blockquote>'; |
$html .= qq|<blockquote>$msg<div class="files">| . join(", ",@files) . qq|<div></blockquote>|; |
162 |
|
|
163 |
}); |
}); |
164 |
|
|
176 |
my $e = shift; |
my $e = shift; |
177 |
|
|
178 |
my $rev = $e->{'revision'}; |
my $rev = $e->{'revision'}; |
179 |
my $date = $e->{'date'}; |
my $date = DateTimeX::Easy->new( $e->{'date'} )->epoch . '000'; # ms |
180 |
my $author = $e->{'author'}; |
my $author = $e->{'author'}; |
181 |
|
|
182 |
foreach my $p (@{$e->{'paths'}->{'path'}}) { |
foreach my $p (@{$e->{'paths'}->{'path'}}) { |