[Da-tools-commits] ./da-tools/userdir-ldap-cgi-common r90: make summaryattrs sortable

Martin Zobel-Helas zobel at debian.org
Sun May 18 15:35:27 UTC 2008


------------------------------------------------------------
revno: 90
committer: Martin Zobel-Helas <zobel at debian.org>
branch nick: userdir-ldap-cgi-common
timestamp: Sun 2008-05-18 17:35:27 +0200
message:
  make summaryattrs sortable
modified:
  machines.cgi
-------------- next part --------------
=== modified file 'machines.cgi'
--- a/machines.cgi	2008-03-14 20:17:51 +0000
+++ b/machines.cgi	2008-05-18 15:35:27 +0000
@@ -4,6 +4,7 @@
 # (c) 1999 Randolph Chung. Licensed under the GPL. <tausq at debian.org>
 # (c) 2004 Martin Schulze. Licensed under the GPL. <joey at debian.org>
 # (c) 2006 Ryan Murray. Licensed under the GPL. <rmurray at debian.org>
+# (c) 2008 Martin Zobel-Helas. Licensed under the GPL. <zobel at debian.org>
 
 use lib '.';
 use strict vars;
@@ -86,6 +87,8 @@
 
 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 @@
   $hostdetails = "<h1>Summary</h1>\n";
   $hostdetails .= "<table border=\"1\" width=\"90%\">\n<tr>";
   foreach $key (@summaryorder) {
-    $hostdetails .= "<th>$summaryattrs{$key}</th>";
+    if ($sortby ne $key) {
+      $hostdetails .= "<th><a href=\"machines.cgi?sortby=$key&sortorder=asc\">$summaryattrs{$key}</a></th>";
+    } else {
+      if ($sortorder ne "dsc") {
+        $hostdetails .= "<th><a href=\"machines.cgi?sortby=$key&sortorder=dsc\">$summaryattrs{$key}</a></th>";
+      } else {
+        $hostdetails .= "<th><a href=\"machines.cgi?sortby=$key&sortorder=asc\">$summaryattrs{$key}</a></th>";
+      }
+    }
   }
   $hostdetails .= "</tr>\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 .= "<tr>";
     foreach $key (@summaryorder) {
       $hostdetails .= "<td>$summary{$host}{$key}&nbsp;</td>";



More information about the Da-tools-commits mailing list