Bug 35681: Allow for ANSI color in database updates
This patch adds support for colored output in database updates. Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
parent
3929d64084
commit
0612c0402d
|
|
@ -23,6 +23,7 @@ use diagnostics;
|
|||
use C4::InstallAuth qw( get_template_and_user );
|
||||
use CGI qw ( -utf8 );
|
||||
use POSIX;
|
||||
use HTML::FromANSI::Tiny;
|
||||
|
||||
use C4::Context;
|
||||
use C4::Output qw( output_html_with_http_headers );
|
||||
|
|
@ -420,6 +421,7 @@ elsif ( $step && $step == 3 ) {
|
|||
my $fh;
|
||||
open( $fh, "<:encoding(utf-8)", $logfilepath )
|
||||
or die "Cannot open log file $logfilepath: $!";
|
||||
|
||||
my @report = <$fh>;
|
||||
close $fh;
|
||||
if (@report) {
|
||||
|
|
@ -456,6 +458,8 @@ elsif ( $step && $step == 3 ) {
|
|||
my $atomic_update_files = get_atomic_updates;
|
||||
my $atomic_update_report = run_atomic_updates( $atomic_update_files );
|
||||
|
||||
colorize($report);
|
||||
colorize($atomic_update_report);
|
||||
$template->param(
|
||||
success => $report->{success},
|
||||
error => $report->{error},
|
||||
|
|
@ -561,3 +565,21 @@ sub chk_log { #returns a logfile in $dir or - if that failed - in temp dir
|
|||
}
|
||||
return $fn;
|
||||
}
|
||||
|
||||
sub colorize {
|
||||
my ($report) = @_;
|
||||
my $h = HTML::FromANSI::Tiny->new(
|
||||
auto_reverse => 0, background => 'white', foreground => 'black',
|
||||
inline_style => 1, no_plain_tags => 1
|
||||
);
|
||||
|
||||
my @states = ( 'success', 'error' );
|
||||
for my $state (@states) {
|
||||
for my $result ( @{ $report->{$state} } ) {
|
||||
#@{ $result->{output} } = map { s/^\t+//; $h->html($_) } @{ $result->{output} };
|
||||
for my $output ( @{ $result->{output} } ) {
|
||||
$output = $h->html($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@
|
|||
<ul>
|
||||
[% FOR s IN success %]
|
||||
[% FOR o IN s.output %]
|
||||
<li>[% o | html %]</li>
|
||||
<li>[% o | $raw %]</li>
|
||||
[% IF s.output.size > 1 %]
|
||||
[% IF loop.first %]<ul>[% ELSIF loop.last %]</ul>[% END %]
|
||||
[% END %]
|
||||
|
|
@ -395,7 +395,7 @@
|
|||
<ul>
|
||||
[% FOR s IN atomic_updates.success %]
|
||||
[% FOR o IN s.output %]
|
||||
<li>[% o | html %]</li>
|
||||
<li>[% o | $raw %]</li>
|
||||
[% IF s.output.size > 1 %]
|
||||
[% IF loop.first %]<ul>[% ELSIF loop.last %]</ul>[% END %]
|
||||
[% END %]
|
||||
|
|
@ -423,7 +423,7 @@
|
|||
<li class="update_error">
|
||||
[% o | html %]
|
||||
<br/>
|
||||
ERROR: [% e.error | html %]
|
||||
ERROR: [% e.error | $raw %]
|
||||
|
||||
[% IF e.output.size > 1 %]
|
||||
[% IF loop.first %]<ul>[% ELSIF loop.last %]</ul>[% END %]
|
||||
|
|
@ -443,7 +443,7 @@
|
|||
<li class="update_error">
|
||||
[% o | html %]
|
||||
<br/>
|
||||
ERROR: [% e.error | html %]
|
||||
ERROR: [% e.error | $raw %]
|
||||
|
||||
[% IF e.output.size > 1 %]
|
||||
[% IF loop.first %]<ul>[% ELSIF loop.last %]</ul>[% END %]
|
||||
|
|
|
|||
Loading…
Reference in New Issue