diff --git a/fhem/FHEM/98_Installer.pm b/fhem/FHEM/98_Installer.pm
index bc6c5592b..a75309e5d 100644
--- a/fhem/FHEM/98_Installer.pm
+++ b/fhem/FHEM/98_Installer.pm
@@ -956,14 +956,22 @@ sub CreatePrereqsList {
my $header = '';
my $footer = '';
if ($html) {
- $header = '
';
+ $header = '';
+ $footer = '';
}
- my $tOpen = '';
my $blockOpen = '';
my $tTitleOpen = '';
my $tTitleClose = '';
+ my $tOpen = '';
+ my $tCOpen = '';
+ my $tCClose = '';
+ my $tHOpen = '';
+ my $tHClose = '';
+ my $tBOpen = '';
+ my $tBClose = '';
+ my $tFOpen = '';
+ my $tFClose = '';
my $trOpen = '';
my $trOpenEven = '';
my $trOpenOdd = '';
@@ -973,8 +981,8 @@ sub CreatePrereqsList {
my $tdOpen = '';
my $tdOpen2 = '';
my $tdOpen3 = '';
- my $txtOpen = '';
- my $txtClose = '';
+ my $strongOpen = '';
+ my $strongClose = '';
my $tdClose = "\t\t\t";
my $thClose = "\t\t\t";
my $trClose = '';
@@ -985,28 +993,38 @@ sub CreatePrereqsList {
my $colorClose = '';
if ($html) {
- $blockOpen = '';
+ $blockOpen = '
';
$tTitleOpen = '
';
$tTitleClose = '';
- $tOpen = '
';
+ $tOpen = '';
+ $tCOpen = '';
+ $tCClose = '';
+ $tHOpen = '';
+ $tHClose = '';
+ $tBOpen = '';
+ $tBClose = '';
+ $tFOpen = '';
+ $tFClose = '';
$trOpen = '';
$trOpenEven = '
';
$trOpenOdd = '
';
- $thOpen = '| ';
- $thOpen2 = ' | ';
- $thOpen3 = ' | ';
- $tdOpen = ' | ';
- $tdOpen2 = ' | ';
- $tdOpen3 = ' | ';
- $txtOpen = '';
- $txtClose = '';
+ $thOpen = ' | ';
+ $thOpen2 =
+ ' | ';
+ $thOpen3 =
+ ' | ';
+ $tdOpen = ' | ';
+ $tdOpen2 = ' | ';
+ $tdOpen3 = ' | ';
+ $strongOpen = '';
+ $strongClose = '';
$tdClose = ' | ';
$thClose = '';
$trClose = '
';
$tClose = '
';
$blockClose = '';
- $colorRed = '';
- $colorGreen = '';
+ $colorRed = '';
+ $colorGreen = '';
$colorClose = '';
}
@@ -1135,56 +1153,68 @@ sub CreatePrereqsList {
$l .= $trClose;
if ( $linecount == 1 ) {
- my $descr =
- 'These dependencies '
- . $txtOpen . 'must'
- . $txtClose
- . ' be installed for the listed FHEM modules to work:';
- $descr =
- 'These dependencies are '
- . $txtOpen
- . 'strongly encouraged'
- . $txtClose
- . ' and should be installed for full functionality of the listed FHEM modules, except in resource constrained environments:'
- if ( $importance eq 'Recommended' );
- $descr =
- 'These dependencies are '
- . $txtOpen
- . 'optional'
- . $txtClose
- . ', but are suggested for enhanced operation of the listed FHEM modules:'
- if ( $importance eq 'Suggested' );
-
push @ret,
- ''
+ : ''
+ )
+ . $blockOpen
+ . $tOpen
+ . $tCOpen
. $importance
- . '">'
- . $importance . '
'
- . $lb
- . $descr
- . $lb
- . $lb;
- push @ret, $tOpen . $trOpen;
+ . $tCClose;
+
+ push @ret, $tHOpen . $trOpen;
push @ret, $thOpen . 'Item' . $thClose;
push @ret, $thOpen . 'Type' . $thClose;
push @ret, $thOpen . 'Used by' . $thClose;
- push @ret, $trClose;
+ push @ret, $trClose . $tHClose . $tBOpen;
}
push @ret, $l;
$linecount++;
}
- push @ret, $tClose;
+ push @ret, $tBClose;
+
+ my $descr =
+ 'These dependencies '
+ . $strongOpen . 'must'
+ . $strongClose
+ . ' be installed for the listed FHEM modules to work.';
+ $descr =
+ 'These dependencies are '
+ . $strongOpen
+ . 'strongly encouraged'
+ . $strongClose
+ . ' and should be installed for full functionality of the listed FHEM modules, except in resource constrained environments.'
+ if ( $importance eq 'Recommended' );
+ $descr =
+ 'These dependencies are '
+ . $strongOpen
+ . 'optional'
+ . $strongClose
+ . ', but are suggested for enhanced operation of the listed FHEM modules.'
+ if ( $importance eq 'Suggested' );
+
+ push @ret, $tFOpen . $tdOpen3 . $descr . $tFClose;
+ push @ret, $tClose . $blockClose . $tdClose . $trClose;
}
}
if ($found) {
+ push @ret, $tBClose;
+
if ( defined( $pkgStatus{Perl}{analyzed} ) ) {
push @ret,
- $lb
- . $txtOpen . 'Hint:'
- . $txtClose
+ $tFOpen
+ . $trOpen
+ . $tdOpen
+ . $strongOpen . 'Hint:'
+ . $strongClose
. ' Some of the FHEM modules in use do not provide Perl prerequisites from its metadata.'
. $lb;
@@ -1197,8 +1227,12 @@ sub CreatePrereqsList {
push @ret,
'This check may be incomplete until you install Perl::PrereqScanner::NotQuiteLite for automatic source code analysis.';
}
+
+ push @ret, $tdClose . $trClose . $tFClose;
}
+ unshift @ret, $lb . $lb . $tdClose . $trClose;
+
unshift @ret,
$lb
. $space
@@ -1233,6 +1267,9 @@ sub CreatePrereqsList {
$found
. ' total missing '
. ( $found > 1 ? 'prerequisites:' : 'prerequisite:' );
+
+ unshift @ret, $blockOpen . $blockClose;
+ unshift @ret, $tBOpen . $trOpen . $tdOpen;
}
else {
my @hooray = (
@@ -1241,15 +1278,32 @@ sub CreatePrereqsList {
);
my $x = 0 + int( rand( scalar @hooray + 1 - 0 ) );
unshift @ret,
- ucfirst( $hooray[$x] )
+ $tBOpen
+ . $trOpen
+ . $tdOpen
+ . $lb
+ . ucfirst( $hooray[$x] )
. '! All prerequisites are met.'
- . ( $html ? ' 🥳' : '' );
+ . ( $html ? ' 🥳' : '' )
+ . $lb
+ . $lb
+ . $tdClose
+ . $trClose
+ . $tBClose;
}
+ push @ret, $tClose . $blockClose;
+
unshift @ret,
- ''
+ $blockOpen
+ . $blockClose
+ . ( $html ? '' : '' )
+ . $blockOpen
+ . $tTitleOpen
. ( $mode eq 'live' ? 'Live ' : '' )
- . 'System Prerequisites Check
';
+ . 'System Prerequisites Check'
+ . $tTitleClose
+ . $tOpen;
return $header . join( "\n", @ret ) . $footer;
}
@@ -1267,20 +1321,39 @@ sub CreateSearchList ($$@) {
my $html =
defined( $hash->{CL} ) && $hash->{CL}{TYPE} eq "FHEMWEB" ? 1 : 0;
+ my $FW_CSRF = (
+ defined( $defs{ $hash->{CL}{SNAME} }{CSRFTOKEN} )
+ ? '&fwcsrf=' . $defs{ $hash->{CL}{SNAME} }{CSRFTOKEN}
+ : ''
+ );
+ my $FW_CSRF_input =
+ defined( $defs{ $hash->{CL}{SNAME} }{CSRFTOKEN} )
+ ? ''
+ : '';
+
my $header = '';
my $footer = '';
if ($html) {
$header =
-'';
+ $footer = '