Fix pagination. Trim paging requests. Fix paging bug.
authorLaury GvR <laury@gaslightmedia.com>
Fri, 8 Mar 2019 22:53:53 +0000 (17:53 -0500)
committerLaury GvR <laury@gaslightmedia.com>
Fri, 8 Mar 2019 22:53:53 +0000 (17:53 -0500)
- Fix rare issue where pagination request would interpret a
  newline; trimming this request from here on.
- Add check to see whether the nth member the next page is slated
  to start at exceeds the maximum number of members, and if so,
  disable the 'next' button.
- Functional pagination; more concise code relying on classes.
- Add newlines to pagination file for readability

models/admin/manageDashboard/members.php
views/admin/manageDashboard/adminSearch/pagination.html
views/admin/manageDashboard/index.html

index e6950a1..2ef5a8a 100644 (file)
@@ -169,7 +169,7 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
         $prevStart          = false;
         $nextStart          = false;
         $start              = 1;
-        $limit              = 20;        // Set to the number of listings per page
+        $limit              = 10;        // Set to the number of listings per page
         $namesList          = false;
         $enable_members     = $this->config['settings']['enable_members'];
         $textSearch         = false;
@@ -356,11 +356,10 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
 
         // Check if we're doing paging
         if (isset($_REQUEST['pageSelect'])) {
-
+            
             // If request is for Next
-            if ($_REQUEST['pageSelect'][0] == 'N') {
+            if (trim($_REQUEST['pageSelect'])[0] == 'N') {
                 $newStart = $_REQUEST['nextStart'] - 0;
-                // $this->write_log("\nNEW START:". $newStart);
             // Otherwise it must be Previous
             } else {
                 $newStart = $_REQUEST['prevStart'] - 0;
@@ -379,7 +378,7 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
         $support->write_log($where);
         // Get a current list of members
         $listResult = $this->getSimpleMembersList($where.$alphaWhere, 'name', true, 'id', $start, $limit);
-        $support->write_log($listResult );
+        //$support->write_log($listResult );
         // Get paging results
         $numbDisplayed = $listResult['returned'];
         $lastDisplayed = $listResult['last'];
@@ -393,8 +392,13 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
         }
         if ($listResult['returned'] == $limit) {
             $nextStart = $start + $limit;
-            // $this->write_log("\nYOP");    
+            
+        }
+        if ($nextStart > $memberCount) {
+            $nextStart = false;
         }
+
+        //$this->write_log("\nYOP". $memberCount . " mcL: " . $nextStart);
         // $this->write_log("\nstart: " . $start);
         // $this->write_log("\nlimit: " . $limit);
         // $this->write_log("\nNext start: " . $nextStart);
index 5c6cb22..93bb934 100644 (file)
@@ -1,4 +1,8 @@
 <div class="glm-admin-pagination-buttons">
-    <span class="pagination button button-secondary previous-button glm-button prev-start-button {if !$prevStart}disabled{/if}"{if !$prevStart} disabled{/if}>Previous {$limit} {$terms.term_member_plur_cap}</span>
-    <span class="pagination button button-secondary next-button glm-button next-start-button {if !$nextStart}disabled{/if}"{if !$nextStart} disabled{/if}>Next {$limit} {$terms.term_member_plur_cap}</span>
+    <span class="pagination button button-secondary previous-button glm-button prev-start-button {if !$prevStart}disabled{/if}">
+        Previous {$limit} {$terms.term_member_plur_cap}
+    </span>
+    <span class="pagination button button-secondary next-button glm-button next-start-button {if !$nextStart}disabled{/if}">
+        Next {$limit} {$terms.term_member_plur_cap}
+    </span>
 </div>
\ No newline at end of file
index bed8870..1660398 100644 (file)
 
         // console.log( $("#nextStart").attr("nextStart"));
         $(document).on("click", ".pagination", function(e){
-            if (!$(this).attr("disabled")) {
+            if (!$(this).hasClass("disabled")) {
                 listData.pageSelect = $(this).text();
                 listData.prevStart = $("#pagination-data").attr("data-prevStart");
                 listData.nextStart = $("#pagination-data").attr("data-nextStart");
                     $("#glm-admin-search-overlay").fadeOut('slow'), 
                     function(data) {
                         $("#member-results-container").html(data.searchData);
-                        console.log(data.searchData);
 
                         var newPrevStart = $("#pagination-data").attr("data-prevStart");
-                        console.log("Newprevstart: " + newPrevStart);
-                        if (newPrevStart) {
-                            $(".pagination.previous-button").removeAttr("disabled");
-                        } else {
-                            $(".pagination.previous-button").attr("disabled", "disabled");
-                        }
+                        $(".pagination.previous-button").toggleClass("disabled", newPrevStart);
 
                         var newNextStart = $("#pagination-data").attr("data-nextStart");
-                        console.log("Newnextstart: " + newNextStart);
-                        if (newNextStart) {
-                            $(".pagination.next-button").removeAttr("disabled");
-                        } else {
-                            $(".pagination.next-button").attr("disabled", "disabled");
-                        }
+                        $(".pagination.next-button").toggleClass("disabled", newNextStart);
                     },
                     function(error) {
                         console.log(error);