Standardise contact and hub display.
authorIain Patterson <me@iain.cx>
Tue, 9 Apr 2013 22:27:17 +0000 (18:27 -0400)
committerIain Patterson <me@iain.cx>
Wed, 10 Apr 2013 10:11:20 +0000 (06:11 -0400)
Contacts and hubs are very similar, having roles, addresses and
entity-specific attributes.  Use similar functions and layout when
showing them both.

lib/contact.php

index 166fd97..ccc932c 100644 (file)
@@ -44,8 +44,9 @@
     exit;
   }
 
-  function show_contact_summary(&$contact) {
-    echo "<br>\nContact " . $contact->getLink();
+  function show_contact_summary(&$contact, $editing = false) {
+    if ($editing) echo "<p>Contact: <span class=\"strong\">" . htmlspecialchars($contact->getDisplayname()) . "</span>";
+    else echo "<br>\nContact " . $contact->getStrongLink();
     $role = $contact->getRole();
     $role_string = get_contact_role_string($contact);
     if ($role_string) echo " $role_string";
@@ -57,6 +58,8 @@
     }
     $area = get_contact_area($contact);
     echo " in " . $area->getLink();
+    $city = get_contact_city($contact);
+    echo ", " . $city->getLink(get_city_displayname($city));
   }
 
   function show_contacts($offset, $per_page, $address_ids) {
     if (! $contact) return;
 
     echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
-    echo "<p>Contact: <span class=\"strong\">" . $contact->getDisplayname() . "</span>";
-    $role = $contact->getRole();
-    $role_string = get_contact_role_string($contact);
-    if ($role_string) echo " $role_string";
-    if ($role & $GLOBALS['ROLE_DONOR']) printf(" <a class=\"small\" href=\"/donation/from/contact/%s/%d\">Donations</a>", urlencode($contact->getDisplayname()), $contact->getId());
-    if ($role & $GLOBALS['ROLE_REQUESTER']) printf(" <a class=\"small\" href=\"/order/from/referrer/%s/%d\">Referred</a>", urlencode($contact->getDisplayname()), $contact->getId());
-    if ($role & $GLOBALS['ROLE_BENEFICIARY']) printf(" <a class=\"small\" href=\"/order/to/beneficiary/%s/%d\">Orders</a>", urlencode($contact->getDisplayname()), $contact->getId());
-    if (check_admin(1)) {
-      echo " " . $contact->getDeleteLink();
-    }
-    $city = get_contact_city($contact);
-    if ($city) echo " in " . $city->getLink(get_city_displayname($city));
+    show_contact_summary($contact, true);
     echo ": ";
     echo "\n</p>";