From: Martin Zobel-Helas Date: Sun, 18 May 2008 15:35:27 +0000 (+0200) Subject: make summaryattrs sortable X-Git-Tag: release-0.3.33~69^2~2 X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap-cgi.git;a=commitdiff_plain;h=43878ea9452342f57b453ae2098100de2089517d make summaryattrs sortable --- diff --git a/machines.cgi b/machines.cgi index 8fe4bfa..34d622a 100755 --- a/machines.cgi +++ b/machines.cgi @@ -4,6 +4,7 @@ # (c) 1999 Randolph Chung. Licensed under the GPL. # (c) 2004 Martin Schulze. Licensed under the GPL. # (c) 2006 Ryan Murray. Licensed under the GPL. +# (c) 2008 Martin Zobel-Helas. Licensed under the GPL. use lib '.'; use strict vars; @@ -86,6 +87,8 @@ $SIG{__DIE__} = \&DieHandler; my $query = new CGI; my $host = lc($query->param('host')); +my $sortby = lc($query->param('sortby')) || "host"; +my $sortorder = lc($query->param('sortorder')) || "asc"; &Util::HTMLSendHeader; $ldap = Net::LDAP->new($config{ldaphost}) || &Util::HTMLError($!); @@ -180,11 +183,25 @@ if ($output{havehostdata}) { $hostdetails = "

Summary

\n"; $hostdetails .= "\n"; foreach $key (@summaryorder) { - $hostdetails .= ""; + if ($sortby ne $key) { + $hostdetails .= ""; + } else { + if ($sortorder ne "dsc") { + $hostdetails .= ""; + } else { + $hostdetails .= ""; + } + } } $hostdetails .= "\n"; - foreach $host (sort(keys(%summary))) { + my @sorted; + if ($sortorder eq "asc") { + @sorted = sort {$summary{$a}->{$sortby} cmp $summary{$b}->{$sortby}} keys(%summary); + } else { + @sorted = sort {$summary{$b}->{$sortby} cmp $summary{$a}->{$sortby}} keys(%summary); + } + foreach $host (@sorted) { $hostdetails .= ""; foreach $key (@summaryorder) { $hostdetails .= "";
$summaryattrs{$key}$summaryattrs{$key}$summaryattrs{$key}$summaryattrs{$key}
$summary{$host}{$key}