X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=lib%2Farea.php;h=8872a43308975cd3746d48931e909b5a2bd4f35c;hb=446bce55325fc63d0583b838111d387764be498f;hp=720617eccb920a19888f4cbcf3187e24897d78e7;hpb=019bb882834304615564c9f9e1c28ed1d980d8d9;p=readifood.git diff --git a/lib/area.php b/lib/area.php index 720617e..8872a43 100644 --- a/lib/area.php +++ b/lib/area.php @@ -27,10 +27,12 @@ if (count($areas)) { foreach ($areas as $area) { - echo "
\nArea: " . $area->getStrongLink(); - printf(" Contacts", urlencode($area->getName()), $area->getId()); - printf(" Donations", urlencode($area->getName()), $area->getId()); - printf(" Orders", urlencode($area->getName()), $area->getId()); + echo "
\nArea: " . $area->getStrongLink() . "\n"; + $n = urlencode($area->getName()); + $i = $area->getId(); + echo " " . get_small_link("Contacts", "/contact/in/area/%s/%d", $n, $i); + echo " " . get_small_link("Donations", "/donation/in/area/%s/%d", $n, $i); + echo " " . get_small_link("Orders", "/order/in/area/%s/%d", $n, $i); if (check_admin(1)) { echo " " . $area->getDeleteLink(); } @@ -51,15 +53,22 @@ return; } - echo "
\n"; + $candidates = array(); + foreach ($cities as $city) { + if (! count(get_city_areas($city->getId()))) continue; + $candidates[] = $city; + } + if (! count($candidates)) return; + + form("noprint standout"); echo "

Show areas in\n"; echo "\n"; echo "\n"; - echo "

\n"; + end_form(); } function show_new_area_form($city_id = null) { @@ -72,7 +81,7 @@ return; } - echo "
\n"; + form("noprint standout"); echo "

Add a new area \n"; echo "in \n"; echo "\n"; - echo "

\n"; + end_form(); } function add_area($name, $city_id) { @@ -117,24 +126,6 @@ return $area->getId(); } - function delete_city($name) { - if (! check_admin(1, "delete a city")) return; - - $city = get_city_by_name($name); - if (! $city) return false; - - try { - $city->delete(); - } - catch (Exception $e) { - echo "

Error deleting $name!

\n"; - /* XXX: Why? Check for addresses in use... */ - return false; - } - - return true; - } - function show_area_delivery_days_form($days) { global $week; echo "Delivery days:"; @@ -182,8 +173,19 @@ return true; } + function confirm_delete_area($name, $id = null, &$city_id = null) { + if (! check_admin(1, "delete an area")) return; + + if (isset($id)) $area = get_area_by_id($id); + else $area = get_area_by_name($name); + if (! $area) return false; + + echo "

Confirm deletion

\n"; + echo "

You must confirm deletion of area " . $area->getName() . ": " . $area->getDeleteLink(true) . "

\n"; + } + function delete_area($name, $id = null, &$city_id = null) { - if (! check_admin(1, "delete a area")) return; + if (! check_admin(1, "delete an area")) return; if (isset($id)) $area = get_area_by_id($id); else $area = get_area_by_name($name); @@ -209,11 +211,13 @@ $area = get_area_by_name($name); if (! $area) return; - echo "
\n"; + form(); echo "

Area: " . $area->getName() . ""; - printf(" Contacts", urlencode($area->getName()), $area->getId()); - printf(" Donations", urlencode($area->getName()), $area->getId()); - printf(" Orders", urlencode($area->getName()), $area->getId()); + $n = $area->getName(); + $i = $area->getId(); + echo " " . get_small_link("Contacts", "/contact/in/area/%s/%d", $n, $i); + echo " " . get_small_link("Donations", "/donation/in/area/%s/%d", $n, $i); + echo " " . get_small_link("Orders", "/order/in/area/%s/%d", $n, $i); if (check_admin(1)) { echo " " . $area->getDeleteLink(); } @@ -230,7 +234,7 @@ echo "\n"; } echo "

\n"; - echo "
\n"; + end_form(); } /* /area/in/Cambridge/1 */ @@ -248,6 +252,10 @@ if (count($args)) { switch ($args[0]) { case "delete": + confirm_delete_area($name, $id, $city_id); + break; + + case "confirmdelete": delete_area($name, $id, $city_id); break; }