X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=machines.cgi;h=b7cc9d0449a94dcf265d498b7c7256fb7cfae9d5;hb=b6d2744f934a1a6349be7a7ade1b4831e6eab2bd;hp=34d622a9536db5860e2f313aef53d5181e50a0a9;hpb=43878ea9452342f57b453ae2098100de2089517d;p=mirror%2Fuserdir-ldap-cgi.git
diff --git a/machines.cgi b/machines.cgi
index 34d622a..b7cc9d0 100755
--- a/machines.cgi
+++ b/machines.cgi
@@ -83,6 +83,28 @@ sub sshfingerprint {
return $hrfpr;
}
+sub wiki_link($) {
+ my ($in) = @_;
+ $in =~ s#\[\[(.*?)\|(.*?)\]\]#$2#g;
+ $in =~ s#\[\[(.*?)\]\]#$1#g;
+ return $in;
+}
+
+sub item_uplist($) {
+ my ($items) = @_;
+ my $out = undef;
+
+ if (scalar @$items >= 1) {
+ $out = "
".
+ join("", map {
+ "- ".wiki_link($_)."
\n";
+ } sort {my $A=$a; my $B=$b; $A =~ s/[\[\]]//g; $B =~ s/[\[\]]//g; $A cmp $B} @{$items}
+ ).
+ "
";
+ }
+ return $out;
+}
+
$SIG{__DIE__} = \&DieHandler;
my $query = new CGI;
@@ -92,6 +114,7 @@ my $sortorder = lc($query->param('sortorder')) || "asc";
&Util::HTMLSendHeader;
$ldap = Net::LDAP->new($config{ldaphost}) || &Util::HTMLError($!);
+&Util::UpgradeConnection($ldap) unless $config{usessl} eq 'False';
$mesg;
$ldap->bind;
@@ -134,24 +157,11 @@ foreach $dn (sort {$entries->{$a}->{host}->[0] cmp $entries->{$b}->{host}->[0]}
$output{sshrsahostfprint} .= sshfingerprint($key) . "
";
}
- # URL
- my ($sponsor, $url) = undef;
- $output{sponsor} = undef;
- foreach $sponsor (@{$data->{sponsor}}) {
- $sponsor =~ m#((http|ftp)://\S+)#i;
- $url = $1;
- $sponsor =~ s/\s*$url\s*//;
- $output{sponsor} .= "
" if ($output{sponsor});
- if ($url) {
- $output{sponsor} .= sprintf("%s", $url, $sponsor);
- } else {
- $output{sponsor} .= $sponsor;
- }
- }
+ my $sponsor = item_uplist($data->{sponsor});
+ $output{sponsor} = $sponsor if defined $sponsor;
+ my $purpose = item_uplist($data->{purpose});
+ $output{purpose} = $purpose if defined $purpose;
- #Reformat purposes to be pleasing for the human eye:
- $output{purpose} = join(",", @{$data->{purpose}});
-
$selected = " selected ";
}
@@ -197,9 +207,9 @@ if ($output{havehostdata}) {
my @sorted;
if ($sortorder eq "asc") {
- @sorted = sort {$summary{$a}->{$sortby} cmp $summary{$b}->{$sortby}} keys(%summary);
+ @sorted = sort {($summary{$a}->{$sortby} cmp $summary{$b}->{$sortby}) || ($summary{$a}->{'host'} cmp $summary{$b}->{'host'})} keys(%summary)
} else {
- @sorted = sort {$summary{$b}->{$sortby} cmp $summary{$a}->{$sortby}} keys(%summary);
+ @sorted = sort {($summary{$b}->{$sortby} cmp $summary{$a}->{$sortby}) || ($summary{$a}->{'host'} cmp $summary{$b}->{'host'})} keys(%summary)
}
foreach $host (@sorted) {
$hostdetails .= "";