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";
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 ($role & $GLOBALS['ROLE_BENEFICIARY']) {
+ printf(" <a class=\"small\" href=\"/order/to/beneficiary/%s/%d\">Orders</a>", urlencode($contact->getDisplayname()), $contact->getId());
+ if (get_contact_area($contact)) printf(" <a class=\"small\" href=\"/order/place/for/beneficiary/%s/%d\">Place</a>", urlencode($contact->getDisplayname()), $contact->getId());
+ }
if (check_admin(1)) {
echo " " . $contact->getDeleteLink();
}
$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) {
return show_role_form($role, $GLOBALS['contact_roles']);
}
- function show_contact_form($contact = null) {
- global $contact_roles;
+ function show_contact_form($contact = null, $new = false) {
+ global $contact_roles, $parcel_sizes, $parcel_contents;
if (! $contact) $contact = new Contact;
echo " <td>"; show_contact_role_form($contact->getRole()); echo "</td>\n";
echo "</tr>\n";
+ /* Date added. */
+ if (! $new) {
+ echo "<tr>\n";
+ echo " <td>Registered</td>\n";
+ echo " <td>" . $contact->getAdded() . "</td>\n";
+ echo "</tr>\n";
+ }
+
/* Forename. */
echo "<tr>\n";
echo " <td>Forename</td>\n";
}
echo " </select></td>\n";
echo "</tr>\n";
+
+ /* Parcel type. */
+ echo "<tr>\n";
+ echo " <td>Family unit</td>\n";
+ echo " <td><select name=\"parcel_size\">\n";
+ $mask = 1 << count($parcel_sizes);
+ for ($i = 0; $i < count($parcel_sizes); $i++) {
+ option("parcel_size", 1 << $i, $parcel_sizes[$i], $contact->getParcel() % $mask);
+ }
+ echo "</select></td>\n";
+ echo "</tr>\n";
+
+ /* Parcel contents. */
+ echo "<tr>\n";
+ echo " <td>Dietary requirements</td>\n";
+ echo " <td>";
+ for ($i = count($parcel_sizes); $i < count($parcel_contents); $i++) {
+ if (1 << $i == $GLOBALS['PARCEL_TOILETRY']) continue;
+ echo " <input type=\"checkbox\" name=\"parcel_$i\"";
+ if ($contact->getParcel() & (1 << $i)) echo " checked";
+ echo ">$parcel_contents[$i]\n";
+ }
+ echo "</td>\n";
+ echo "</tr>\n";
+
+ /* Notes. */
+ echo "<tr>\n";
+ echo " <td>Notes</td>\n";
+ echo " <td><textarea name=\"notes\">" . $contact->getNotes() . "</textarea></td>\n";
+ echo "</tr>\n";
}
function show_new_contact_form($city_id = null) {
echo "<p>Add a new contact:</p>\n";
echo "<table>\n";
- show_contact_form($contact);
+ show_contact_form($contact, true);
echo "<tr>\n";
echo " <td colspan=2>"; submit("add_contact", "Add"); echo "</td></tr>\n";
}
function update_contact(&$contact, $area_id, $new = false) {
- global $contact_roles;
+ global $contact_roles, $parcel_sizes, $parcel_contents;
$role = 0;
for ($i = 0; $i < count($contact_roles); $i++) {
}
/* Get address. */
+ $area_id = $_POST['area_id'];
$line = $_POST['address'];
$postcode = $_POST['postcode'];
$q = new AddressQuery;
$telephone1 = $_POST['telephone1'];
$telephone2 = $_POST['telephone2'];
$email = $_POST['email'];
+ $parcel = $_POST['parcel_size'];
+ for ($i = count($parcel_sizes); $i < count($parcel_contents); $i++) {
+ if ($_POST['parcel_' . $i] == "on") $parcel |= (1 << $i);
+ }
+ $notes = $_POST['notes'];
$contact->setRole($role);
$contact->setForename($forename);
$contact->setTelephone1($telephone1);
$contact->setTelephone2($telephone2);
$contact->setEmail($email);
+ $contact->setParcel($parcel);
+ $contact->setNotes($notes);
$contact->setAddressId($address->getId());
try {
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>";