diff --git a/fhem/FHEM/98_Installer.pm b/fhem/FHEM/98_Installer.pm
index 087bed0ea..383ee91ba 100644
--- a/fhem/FHEM/98_Installer.pm
+++ b/fhem/FHEM/98_Installer.pm
@@ -894,40 +894,41 @@ sub CreateSearchList ($$$) {
my $header = '';
my $footer = '';
if ($html) {
- $header = '';
+ $header =
+ '← back to FHEM Installer';
$footer = '';
}
- my $tableOpen = '';
- my $rowOpen = '';
- my $rowOpenEven = '';
- my $rowOpenOdd = '';
- my $colOpen = '';
- my $colOpenMinWidth = '';
- my $txtOpen = '';
- my $txtClose = '';
- my $colClose = "\t\t\t";
- my $rowClose = '';
- my $tableClose = '';
- my $colorRed = '';
- my $colorGreen = '';
- my $colorClose = '';
+ my $tableOpen = '';
+ my $rowOpen = '';
+ my $rowOpenEven = '';
+ my $rowOpenOdd = '';
+ my $colOpen = '';
+ my $txtOpen = '';
+ my $txtClose = '';
+ my $colClose = "\t\t\t";
+ my $rowClose = '';
+ my $tableClose = '';
+ my $colorRed = '';
+ my $colorGreen = '';
+ my $colorClose = '';
if ($html) {
- $tableOpen = '
';
- $rowOpen = '';
- $rowOpenEven = '
';
- $rowOpenOdd = '
';
- $colOpen = '| ';
- $colOpenMinWidth = ' | ';
- $txtOpen = "";
- $txtClose = "";
- $colClose = ' | ';
- $rowClose = '
';
- $tableClose = '
';
- $colorRed = '';
- $colorGreen = '';
- $colorClose = '';
+ $tableOpen = '';
+ $rowOpen = '';
+ $rowOpenEven = '
';
+ $rowOpenOdd = '
';
+ $colOpen = '| ';
+ $txtOpen = "";
+ $txtClose = "";
+ $colClose = ' | ';
+ $rowClose = '
';
+ $tableClose = '
';
+ $colorRed = '';
+ $colorGreen = '';
+ $colorClose = '';
}
my $space = $html ? ' ' : ' ';
@@ -945,7 +946,6 @@ sub CreateSearchList ($$$) {
: ''
);
- push @ret, 'Search result: ' . $search . '
';
my $found = 0;
# search for matching device
@@ -958,14 +958,10 @@ sub CreateSearchList ($$$) {
if ( $device =~ m/^.*$search.*$/i ) {
unless ($foundDevices) {
- push @ret, 'Devices
' . $lb;
+ push @ret, 'Devices
' . $lb;
push @ret, $tableOpen;
push @ret,
- $colOpenMinWidth
- . $txtOpen
- . 'Device Name'
- . $txtClose
- . $colClose;
+ $colOpen . $txtOpen . 'Device Name' . $txtClose . $colClose;
push @ret,
$colOpen . $txtOpen . 'Device Type' . $txtClose . $colClose;
}
@@ -994,7 +990,7 @@ sub CreateSearchList ($$$) {
. $defs{$device}{TYPE} . ''
if ($html);
- $l .= $colOpenMinWidth . $linkDev . $colClose;
+ $l .= $colOpen . $linkDev . $colClose;
$l .= $colOpen . $linkMod . $colClose;
$l .= $rowClose;
@@ -1011,14 +1007,10 @@ sub CreateSearchList ($$$) {
foreach my $module ( sort { "\L$a" cmp "\L$b" } keys %modules ) {
if ( $module =~ m/^.*$search.*$/i ) {
unless ($foundModules) {
- push @ret, 'Modules
' . $lb;
+ push @ret, 'Modules
' . $lb;
push @ret, $tableOpen;
push @ret,
- $colOpenMinWidth
- . $txtOpen
- . 'Module Name'
- . $txtClose
- . $colClose;
+ $colOpen . $txtOpen . 'Module Name' . $txtClose . $colClose;
push @ret,
$colOpen . $txtOpen . 'Abstract' . $txtClose . $colClose;
}
@@ -1044,7 +1036,7 @@ sub CreateSearchList ($$$) {
. $module . ''
if ($html);
- $l .= $colOpenMinWidth . $link . $colClose;
+ $l .= $colOpen . $link . $colClose;
$l .=
$colOpen . ( $abstract eq 'n/a' ? '' : $abstract ) . $colClose;
@@ -1062,14 +1054,10 @@ sub CreateSearchList ($$$) {
foreach my $package ( sort { "\L$a" cmp "\L$b" } keys %packages ) {
if ( $package =~ m/^.*$search.*$/i ) {
unless ($foundPackages) {
- push @ret, 'Packages
' . $lb;
+ push @ret, 'Packages
' . $lb;
push @ret, $tableOpen;
push @ret,
- $colOpenMinWidth
- . $txtOpen
- . 'Package Name'
- . $txtClose
- . $colClose;
+ $colOpen . $txtOpen . 'Package Name' . $txtClose . $colClose;
push @ret,
$colOpen . $txtOpen . 'Abstract' . $txtClose . $colClose;
}
@@ -1095,7 +1083,7 @@ sub CreateSearchList ($$$) {
. $package . ''
if ($html);
- $l .= $colOpenMinWidth . $link . $colClose;
+ $l .= $colOpen . $link . $colClose;
$l .=
$colOpen . ( $abstract eq 'n/a' ? '' : $abstract ) . $colClose;
@@ -1114,7 +1102,7 @@ sub CreateSearchList ($$$) {
my $keyword ( sort { "\L$a" cmp "\L$b" } keys %FHEM::Meta::keywords )
{
if ( $keyword =~ m/^.*$search.*$/i ) {
- push @ret, 'Keywords
' unless ($foundKeywords);
+ push @ret, 'Keywords
' unless ($foundKeywords);
$found++;
$foundKeywords++;
@@ -1131,8 +1119,7 @@ sub CreateSearchList ($$$) {
push @ret, $tableOpen;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Name' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Name' . $txtClose . $colClose;
push @ret, $colOpen . $txtOpen . 'Type' . $txtClose . $colClose;
@@ -1174,7 +1161,7 @@ sub CreateSearchList ($$$) {
. $item . ''
if ($html);
- $l .= $colOpenMinWidth . $link . $colClose;
+ $l .= $colOpen . $link . $colClose;
$l .= $colOpen . $type . $colClose;
$l .=
$colOpen
@@ -1202,10 +1189,9 @@ sub CreateSearchList ($$$) {
{
if ( $maintainer =~ m/^.*$search.*$/i ) {
unless ($foundMaintainers) {
- push @ret, 'Authors & Maintainers
' . $lb;
+ push @ret, 'Authors & Maintainers
' . $lb;
push @ret, $tableOpen;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Name' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Name' . $txtClose . $colClose;
push @ret,
$colOpen . $txtOpen . 'Modules' . $txtClose . $colClose;
push @ret,
@@ -1263,7 +1249,7 @@ sub CreateSearchList ($$$) {
}
}
- $l .= $colOpenMinWidth . $maintainer . $colClose;
+ $l .= $colOpen . $maintainer . $colClose;
$l .= $colOpen . $mods . $colClose;
$l .= $colOpen . $pkgs . $colClose;
@@ -1289,10 +1275,9 @@ sub CreateSearchList ($$$) {
if ( $dependent =~ m/^.*$search.*$/i ) {
unless ($foundPerl) {
- push @ret, 'Perl packages
' . $lb;
+ push @ret, 'Perl packages
' . $lb;
push @ret, $tableOpen;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Name' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Name' . $txtClose . $colClose;
push @ret,
$colOpen
. $txtOpen
@@ -1340,7 +1325,7 @@ sub CreateSearchList ($$$) {
}
}
- $l .= $colOpenMinWidth . $dependent . $colClose;
+ $l .= $colOpen . $dependent . $colClose;
$l .= $colOpen . $references . $colClose;
$l .= $rowClose;
@@ -1351,6 +1336,69 @@ sub CreateSearchList ($$$) {
}
push @ret, $tableClose if ($foundPerl);
+ if ($found) {
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundPerl . ' '
+ . ( $foundPerl > 1 ? 'Perl modules' : 'Perl module' )
+ . ( $html ? '' : '' )
+ if ($foundPerl);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundMaintainers . ' '
+ . ( $foundMaintainers > 1 ? 'authors' : 'author' )
+ . ( $html ? '' : '' )
+ if ($foundMaintainers);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundKeywords . ' '
+ . ( $foundKeywords > 1 ? 'keywords' : 'keyword' )
+ . ( $html ? '' : '' )
+ if ($foundKeywords);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundPackages . ' '
+ . ( $foundPackages > 1 ? 'packages' : 'package' )
+ . ( $html ? '' : '' )
+ if ($foundPackages);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundModules . ' '
+ . ( $foundModules > 1 ? 'modules' : 'module' )
+ . ( $html ? '' : '' )
+ if ($foundModules);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundDevices . ' '
+ . ( $foundDevices > 1 ? 'devices' : 'device' )
+ . ( $html ? '' : '' )
+ if ($foundDevices);
+ unshift @ret,
+ $found . ' total search ' . ( $found > 1 ? 'results:' : 'result:' );
+ }
+ else {
+ unshift @ret, 'Nothing found';
+ }
+ unshift @ret, 'Search result: ' . $search . '
';
+
return $header . join( "\n", @ret ) . $footer;
}
@@ -1403,40 +1451,41 @@ sub CreateMetadataList ($$$) {
my $header = '';
my $footer = '';
if ($html) {
- $header = '';
+ $header =
+ '← back to FHEM Installer';
$footer = '';
}
- my $tableOpen = '';
- my $rowOpen = '';
- my $rowOpenEven = '';
- my $rowOpenOdd = '';
- my $colOpen = '';
- my $colOpenMinWidth = '';
- my $txtOpen = '';
- my $txtClose = '';
- my $colClose = "\t\t\t";
- my $rowClose = '';
- my $tableClose = '';
- my $colorRed = '';
- my $colorGreen = '';
- my $colorClose = '';
+ my $tableOpen = '';
+ my $rowOpen = '';
+ my $rowOpenEven = '';
+ my $rowOpenOdd = '';
+ my $colOpen = '';
+ my $txtOpen = '';
+ my $txtClose = '';
+ my $colClose = "\t\t\t";
+ my $rowClose = '';
+ my $tableClose = '';
+ my $colorRed = '';
+ my $colorGreen = '';
+ my $colorClose = '';
if ($html) {
- $tableOpen = '';
- $rowOpen = '';
- $rowOpenEven = '
';
- $rowOpenOdd = '
';
- $colOpen = '| ';
- $colOpenMinWidth = ' | ';
- $txtOpen = "";
- $txtClose = "";
- $colClose = ' | ';
- $rowClose = '
';
- $tableClose = '
';
- $colorRed = '';
- $colorGreen = '';
- $colorClose = '';
+ $tableOpen = '';
+ $rowOpen = '';
+ $rowOpenEven = '
';
+ $rowOpenOdd = '
';
+ $colOpen = '| ';
+ $txtOpen = "";
+ $txtClose = "";
+ $colClose = ' | ';
+ $rowClose = '
';
+ $tableClose = '
';
+ $colorRed = '';
+ $colorGreen = '';
+ $colorClose = '';
}
my @mAttrs = qw(
@@ -1566,7 +1615,7 @@ sub CreateMetadataList ($$$) {
my $webname =
AttrVal( $hash->{CL}{SNAME}, 'webname', 'fhem' );
- $l .= $colOpenMinWidth . $txtOpen . $mAttrName . $txtClose . $colClose;
+ $l .= $colOpen . $txtOpen . $mAttrName . $txtClose . $colClose;
# these attributes do not exist under that name in META.json
if ( !defined( $modMeta->{$mAttr} ) ) {
@@ -2194,14 +2243,10 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
push @ret, $tableOpen;
push @ret,
- $colOpenMinWidth
- . $txtOpen
- . 'Importance'
- . $txtClose
- . $colClose;
+ $colOpen . $txtOpen . 'Importance' . $txtClose . $colClose;
push @ret,
- $colOpenMinWidth
+ $colOpen
. $txtOpen
. 'Dependent Modules'
. $txtClose
@@ -2215,8 +2260,8 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
$importance = 'recommended' if ( $mAttr eq 'recommends' );
$importance = 'suggested' if ( $mAttr eq 'suggests' );
- $l .= $colOpenMinWidth . $importance . $colClose;
- $l .= $colOpenMinWidth . $dependents . $colClose;
+ $l .= $colOpen . $importance . $colClose;
+ $l .= $colOpen . $dependents . $colClose;
$l .= $rowClose;
@@ -2267,13 +2312,11 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
push @ret, $tableOpen;
- push @ret, $colOpenMinWidth . $txtOpen . 'Name' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Name' . $txtClose . $colClose;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Importance' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Importance' . $txtClose . $colClose;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Status' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Status' . $txtClose . $colClose;
$linecount = 1;
foreach my $mAttr (@mAttrs) {
@@ -2373,12 +2416,12 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
&& $isFhem );
$l .=
- $colOpenMinWidth
+ $colOpen
. $prereq
. ( $version ne '' ? " ($version)" : '' )
. $colClose;
- $l .= $colOpenMinWidth . $importance . $colClose;
- $l .= $colOpenMinWidth . $installed . $colClose;
+ $l .= $colOpen . $importance . $colClose;
+ $l .= $colOpen . $installed . $colClose;
$l .= $rowClose;
@@ -2414,13 +2457,11 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
push @ret, $tableOpen;
- push @ret, $colOpenMinWidth . $txtOpen . 'Name' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Name' . $txtClose . $colClose;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Importance' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Importance' . $txtClose . $colClose;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Status' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Status' . $txtClose . $colClose;
$linecount = 1;
foreach my $mAttr (@mAttrs) {
@@ -2485,12 +2526,12 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
if ($html);
$l .=
- $colOpenMinWidth
+ $colOpen
. $prereq
. ( $version ne '' ? " ($version)" : '' )
. $colClose;
- $l .= $colOpenMinWidth . $importance . $colClose;
- $l .= $colOpenMinWidth . $installed . $colClose;
+ $l .= $colOpen . $importance . $colClose;
+ $l .= $colOpen . $installed . $colClose;
$l .= $rowClose;
@@ -2516,13 +2557,11 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
push @ret, $tableOpen;
- push @ret, $colOpenMinWidth . $txtOpen . 'Name' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Name' . $txtClose . $colClose;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Importance' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Importance' . $txtClose . $colClose;
- push @ret,
- $colOpenMinWidth . $txtOpen . 'Status' . $txtClose . $colClose;
+ push @ret, $colOpen . $txtOpen . 'Status' . $txtClose . $colClose;
$linecount = 1;
foreach my $mAttr (@mAttrs) {
@@ -2610,12 +2649,12 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/
&& $prereq ne 'perl' );
$l .=
- $colOpenMinWidth
+ $colOpen
. $prereq
. ( $version ne '' ? " ($version)" : '' )
. $colClose;
- $l .= $colOpenMinWidth . $importance . $colClose;
- $l .= $colOpenMinWidth . $installed . $colClose;
+ $l .= $colOpen . $importance . $colClose;
+ $l .= $colOpen . $installed . $colClose;
$l .= $rowClose;
@@ -2815,7 +2854,7 @@ sub __aUniq {
"abstract": "Modul zum Update von FHEM, zur Installation von Drittanbieter FHEM Modulen und der Verwaltung von Systemvoraussetzungen"
}
},
- "version": "v0.2.0",
+ "version": "v0.2.1",
"release_status": "testing",
"author": [
"Julian Pawlowski "