Use wikilink format for sponsors too - requires changing ldap
[mirror/userdir-ldap-cgi.git] / machines.cgi
index c50c4cb..b7cc9d0 100755 (executable)
@@ -83,16 +83,22 @@ sub sshfingerprint {
     return $hrfpr;
 }
 
-sub purposes_uplist($) {
-       my ($purposes) = @_;
+sub wiki_link($) {
+       my ($in) = @_;
+       $in =~ s#\[\[(.*?)\|(.*?)\]\]#<a href="http://$1">$2</a>#g;
+       $in =~ s#\[\[(.*?)\]\]#<a href="http://$1">$1</a>#g;
+       return $in;
+}
+
+sub item_uplist($) {
+       my ($items) = @_;
        my $out = undef;
 
-       if (scalar @$purposes >= 1) {
+       if (scalar @$items >= 1) {
                $out = "<ul>".
                        join("", map { 
-                               s#\[\[(.*?)\]\]#<a href="http://$1">$1</a>#g;
-                               "<li>$_</li>\n";
-                         } sort {my $A=$a; my $B=$b; $A =~ s/[\[\]]//g; $B =~ s/[\[\]]//g; $A cmp $B} @{$data->{purpose}}
+                               "<li>".wiki_link($_)."</li>\n";
+                         } sort {my $A=$a; my $B=$b; $A =~ s/[\[\]]//g; $B =~ s/[\[\]]//g; $A cmp $B} @{$items}
                        ).
                        "</ul>";
        }
@@ -151,22 +157,9 @@ foreach $dn (sort {$entries->{$a}->{host}->[0] cmp $entries->{$b}->{host}->[0]}
       $output{sshrsahostfprint} .= sshfingerprint($key) . "<br>";
     }
     
-    # 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} .= "<br>" if ($output{sponsor});
-      if ($url) {
-        $output{sponsor} .= sprintf("<a href=\"%s\">%s</a>", $url, $sponsor);
-      } else {
-        $output{sponsor} .= $sponsor;
-      }
-    }
-
-    my $purpose = purposes_uplist($data->{purpose});
+    my $sponsor = item_uplist($data->{sponsor});
+    $output{sponsor} = $sponsor if defined $sponsor;
+    my $purpose = item_uplist($data->{purpose});
     $output{purpose} = $purpose if defined $purpose;
 
     $selected = " selected ";