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 = ''; - $rowClose = ''; - $tableClose = '
'; - $colOpenMinWidth = ''; - $txtOpen = ""; - $txtClose = ""; - $colClose = '
'; - $colorRed = ''; - $colorGreen = ''; - $colorClose = ''; + $tableOpen = ''; + $rowOpen = ''; + $rowOpenEven = ''; + $rowOpenOdd = ''; + $colOpen = ''; + $rowClose = ''; + $tableClose = '
'; + $txtOpen = ""; + $txtClose = ""; + $colClose = '
'; + $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 = ''; - $rowClose = ''; - $tableClose = '
'; - $colOpenMinWidth = ''; - $txtOpen = ""; - $txtClose = ""; - $colClose = '
'; - $colorRed = ''; - $colorGreen = ''; - $colorClose = ''; + $tableOpen = ''; + $rowOpen = ''; + $rowOpenEven = ''; + $rowOpenOdd = ''; + $colOpen = ''; + $rowClose = ''; + $tableClose = '
'; + $txtOpen = ""; + $txtClose = ""; + $colClose = '
'; + $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 "