Merge branch 'master' into uat live-2016-04-04 uat-2016-04-04
authorIain Patterson <me@iain.cx>
Mon, 4 Apr 2016 13:24:34 +0000 (09:24 -0400)
committerIain Patterson <me@iain.cx>
Mon, 4 Apr 2016 13:24:34 +0000 (09:24 -0400)
lib/functions.php
lib/order.php

index 424d340..2c0fdea 100644 (file)
   }
 
   function pagination() {
-    $offset = 0;
+    $first_page = 1;
     $per_page = $GLOBALS['default_page_size'];
 
     parse_str($_SERVER['QUERY_STRING'], $params);
-    if (array_key_exists('page', $params)) if (is_numeric($params['page'])) $offset = $params['page'] - 1;
+    if (array_key_exists('page', $params)) if (is_numeric($params['page'])) $first_page = $params['page'];
     if (array_key_exists('size', $params)) if (is_numeric($params['size'])) $per_page = $params['size'];
 
-    return array($offset, $per_page);
+    return array($first_page, $per_page);
   }
 
   function page_link($alt, $n, $cur, $max, $size) {
   function show_pagination($pager, $n = 5) {
     if (! $pager->haveToPaginate()) return;
 
-    list($offset, $per_page) = pagination();
-    $offset++;
-
-    $links = array();
+    list($first_page, $per_page) = pagination();
 
     $pages = ceil($pager->getNbResults() / $per_page);
     $pages++;
 
-    $links[] = page_link('First', 1, $offset, $pages, $per_page);
-    $links[] = page_link('Previous', $offset - 1, $offset, $pages, $per_page);
-    foreach ($pager->getLinks($n) as $link) $links[] = page_link($link, $link, $offset, $pages, $per_page);
-    $links[] = page_link('Next', $offset + 1, $offset, $pages, $per_page);
-    $links[] = page_link('Last', $pages, $offset, $pages, $per_page);
+    $links = array();
+    $links[] = page_link('First', 1, $first_page, $pages, $per_page);
+    $links[] = page_link('Previous', $first_page - 1, $first_page, $pages, $per_page);
+    foreach ($pager->getLinks($n) as $link) $links[] = page_link($link, $link, $first_page, $pages, $per_page);
+    $links[] = page_link('Next', $first_page + 1, $first_page, $pages, $per_page);
+    $links[] = page_link('Last', $pages, $first_page, $pages, $per_page);
 
     echo "<p>Page: ";
     echo implode(' / ', $links);
index 6a242e7..3e3556f 100644 (file)
@@ -42,8 +42,8 @@
     exit;
   }
 
-  function show_orders($offset, $per_page, $requester_ids = null, $beneficiary_ids = null, $state_mask = null) {
-    list($offset, $per_page) = pagination();
+  function show_orders($requester_ids = null, $beneficiary_ids = null, $state_mask = null) {
+    list($first_page, $per_page) = pagination();
     /* XXX: Use Propel methods. */
     if (isset($state_mask)) $order_ids = get_order_ids_by_state($state_mask);
     $q = new OrderQuery;
@@ -52,7 +52,7 @@
     # XXX: Doesn't work.
     #if (isset($state_mask)) $q->useOrderStateQuery()->addSelectQuery($latest_state, 'latestState')->where("order_id=latestState.order_id")->where("state & $state_mask")->endUse();
     if (isset($state_mask)) $q->filterById($order_ids);
-    $orders = $q->orderByDate('desc')->paginate($offset, $per_page);
+    $orders = $q->orderByDate('desc')->orderById('desc')->paginate($first_page, $per_page);
     if (count($orders)) {
       foreach ($orders as $order) {
         echo "<br>\n" . get_order_summary($order) . "<br>\n";
@@ -62,7 +62,7 @@
     else echo " none";
   }
 
-  function show_city_orders($offset, $per_page, $city_name, $city_id = null, $state_mask = null) {
+  function show_city_orders($city_name, $city_id = null, $state_mask = null) {
     if (isset($city_id)) $city = get_city_by_id($city_id);
     else if ($city_name) $city = get_city_by_name($city_name);
     if ($city) {
       foreach ($contacts as $contact) $beneficiary_ids[] = $contact->getId();
 
       echo "<p>Orders in city " . $city->getLink(get_city_displayname($city)) . ":";
-      return show_orders($offset, $per_page, null, $beneficiary_ids, $state_mask);
+      return show_orders(null, $beneficiary_ids, $state_mask);
     }
     else echo "<p>No such city!</p>\n";
   }
 
-  function show_requester_orders($offset, $per_page, $contact_name, $contact_id = null, $state_mask = null) {
+  function show_requester_orders($contact_name, $contact_id = null, $state_mask = null) {
     if (isset($contact_id)) $contact = get_contact_by_id($contact_id);
     else if ($contact_name) $contact = get_contact_by_name($contact_name);
     if ($contact) {
       echo "<p>Orders from referrer " . $contact->getLink() . ":";
-      return show_orders($offset, $per_page, $contact->getId(), null, $state_mask);
+      return show_orders($contact->getId(), null, $state_mask);
     }
     else echo "<p>No such contact!</p>\n";
   }
 
-  function show_beneficiary_orders($offset, $per_page, $contact_name, $contact_id = null, $state_mask = null) {
+  function show_beneficiary_orders($contact_name, $contact_id = null, $state_mask = null) {
     if (isset($contact_id)) $contact = get_contact_by_id($contact_id);
     else if ($contact_name) $contact = get_contact_by_name($contact_name);
     if ($contact) {
       echo "<p>Orders to beneficiary " . $contact->getLink() . ":";
-      return show_orders($offset, $per_page, null, $contact->getId(), $state_mask);
+      return show_orders(null, $contact->getId(), $state_mask);
     }
     else echo "<p>No such contact!</p>\n";
   }
 
-  function show_area_orders($offset, $per_page, $area_name, $area_id = null, $state_mask = null) {
+  function show_area_orders($area_name, $area_id = null, $state_mask = null) {
     if (isset($area_id)) $area = get_area_by_id($area_id);
     else if ($area_name) $area = get_area_by_name($area_name);
     if ($area) {
       foreach ($contacts as $contact) $contact_ids[] = $contact->getId();
 
       echo "<p>Orders in area " . $area->getLink() . ":";
-      return show_orders($offset, $per_page, null, $contact_ids, $state_mask);
+      return show_orders(null, $contact_ids, $state_mask);
     }
     else echo "<p>No such area!</p>\n";
   }
           $area = $q->findOneById($area_id);
           $city = get_area_city($area);
           if ($city) $city_id = $city->getId();
-          show_area_orders(0, 10, $parameters[2], $area_id, $state_mask);
+          show_area_orders($parameters[2], $area_id, $state_mask);
         break;
 
         case "city":
           $_POST['city_id'] = $city_id;
           $q = new CityQuery;
           $city = $q->findOneById($city_id);
-          show_city_orders(0, 10, $parameters[2], $city_id, $state_mask);
+          show_city_orders($parameters[2], $city_id, $state_mask);
         break;
       }
     }
           $contact_id = $parameters[3];
           $q = new ContactQuery;
           $contact = $q->findOneById($contact_id);
-          show_requester_orders(0, 10, $parameters[2], $contact_id, $state_mask);
+          show_requester_orders($parameters[2], $contact_id, $state_mask);
         break;
       }
     }
           $contact_id = $parameters[3];
           $q = new ContactQuery;
           $hub = $q->findOneById($contact_id);
-          show_beneficiary_orders(0, 10, $parameters[2], $contact_id, $state_mask);
+          show_beneficiary_orders($parameters[2], $contact_id, $state_mask);
         break;
       }
     }
     }
   }
   else if (isset($id)) show_order($id);
-  else if ($state_mask) show_orders(0, 10, null, null, $state_mask);
+  else if ($state_mask) show_orders(null, null, $state_mask);
 
   show_order_forms($city_id, $state_mask);
   show_add_new_order_form($city_id);