瀏覽代碼

Added pagination to the audit page.

Adam Day 9 年之前
父節點
當前提交
db19ebfb78

+ 26 - 1
application/controllers/auditController.php

@@ -14,10 +14,35 @@ class auditController extends Staple_Controller
 
     public function index()
     {
+        if(array_key_exists('page',$_GET))
+        {
+            $page = $_GET['page'];
+        }
+        else
+        {
+            $page = 1;
+        }
+
+        if(array_key_exists('items',$_GET))
+        {
+            Staple_Registry::set('items',$_GET['items']);
+        }
+
+        if(Staple_Auth::get('items') == null)
+        {
+            $items = 20;
+        }
+        else
+        {
+            $items = Staple_Registry::get('items');
+        }
+
         $audit = new auditModel();
-        $auditLog = $audit->getAll();
 
+        $auditLog = $audit->getAll($page,$items);
         $this->view->audit = $auditLog;
+
+        $this->view->pager = $audit->getPager();
     }
 }
 

+ 32 - 2
application/models/auditModel.php

@@ -8,6 +8,7 @@ class auditModel extends Staple_Model
     private $userId;
     private $group;
     private $item;
+    private $pager;
 
     /**
      * @return mixed
@@ -81,6 +82,22 @@ class auditModel extends Staple_Model
         $this->item = $item;
     }
 
+    /**
+     * @return mixed
+     */
+    public function getPager()
+    {
+        return $this->pager;
+    }
+
+    /**
+     * @param mixed $pager
+     */
+    public function setPager($pager)
+    {
+        $this->pager = $pager;
+    }
+
     function __construct()
     {
         $this->db = Staple_DB::get();
@@ -101,12 +118,25 @@ class auditModel extends Staple_Model
         }
     }
 
-    function getAll()
+    function getAll($page,$items)
     {
+        $pager = new Staple_Pager();
+
+        //Get total rows
+        $sql = "SELECT COUNT(id) as count FROM audit";
+        $result = $this->db->query($sql)->fetch_assoc();
+        $total = $result['count'];
+
+        $pager->setTotal($total);
+        $pager->setItemsPerPage($items);
+        $pager->setPage($page);
+
         $sql = "
-            SELECT * FROM audit WHERE 1 ORDER BY timestamp ASC;
+            SELECT * FROM audit WHERE 1 ORDER BY timestamp ASC LIMIT ".$pager->getStartingItem().", ".$pager->getItemsPerPage()."
         ";
 
+        $this->pager = $pager;
+
         if($this->db->query($sql)->num_rows > 0)
         {
             $query = $this->db->query($sql);

+ 9 - 1
application/views/audit/index.phtml

@@ -41,7 +41,15 @@
                 </table>";
             }
 
+            ?>
+        </div>
+        <div class="small-12 columns">
+            <?php
+
+            echo $this->pager;
+
             ?>
         </div>
     </div>
-</div>
+</div>
+

+ 12 - 12
library/Staple/Pager.class.php

@@ -401,18 +401,18 @@ class Staple_Pager
 		{
 			$action = Staple_Main::getRoute();
 		}
-		$buffer = "<div class=\"staple_pager\">\n<div class=\"staple_pager_pages\">\nPage: ";
+		$buffer = "<div class=\"staple_pager row\">\n<div class=\"staple_pager_pages small-12 medium-11 columns\">\n";
 		$pages = $this->getPages();
 		if(count($pages) > 1)
 		{
 			if($this->getCurrentPage() == 1)
 			{
-				$buffer .= ' &lt;&lt; - &lt; ';
+				$buffer .= '<a class="button tiny secondary disabled"><i class="fa fa-angle-double-left"></i></a> <a class="button tiny secondary disabled"><i class="fa fa-angle-left"></i></a> ';
 			}
 			elseif($this->getCurrentPage() > 1) 
 			{
-				$buffer .= '<a href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>1))).'">&lt;&lt;</a> - ';
-				$buffer .= '<a href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>($this->getCurrentPage()-1)))).'">&lt;</a> ';
+				$buffer .= '<a class="button tiny" href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>1))).'"><i class="fa fa-angle-double-left"></i></a> ';
+				$buffer .= '<a class="button tiny" href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>($this->getCurrentPage()-1)))).'"><i class="fa fa-angle-left"></i></a> ';
 			}
 			if($pages[0] != 1)
 			{
@@ -422,11 +422,11 @@ class Staple_Pager
 			{
 				if($this->getCurrentPage() == $page)
 				{
-					$buffer .= '<span class="currentpage">'.((int)$page).'</span> ';
+					$buffer .= '<span class="currentpage button tiny disabled">'.((int)$page).'</span> ';
 				}
 				else 
 				{
-					$buffer .= '<a href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>(int)$page))).'">'.((int)$page).'</a> ';
+					$buffer .= '<a class="button tiny secondary" href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>(int)$page))).'">'.((int)$page).'</a> ';
 				}
 			}
 			if($pages[count($pages)-1] != $this->getNumberOfPages())
@@ -435,24 +435,24 @@ class Staple_Pager
 			}
 			if($this->getCurrentPage() == $this->getNumberOfPages())
 			{
-				$buffer .= ' &gt; - &gt;&gt; ';
+				$buffer .= '<a class="button tiny secondary disabled"><i class="fa fa-angle-right"></i></a> <a class="button tiny secondary disabled"><i class="fa fa-angle-double-right"></i></a>';
 			}
 			else
 			{
-				$buffer .= '<a href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>($this->getCurrentPage()+1)))).'">&gt;</a> - '; 
-				$buffer .= '<a href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>$this->getNumberOfPages()))).'">&gt;&gt;</a> ';
+				$buffer .= '<a class="button tiny" href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>($this->getCurrentPage()+1)))).'"><i class="fa fa-angle-right"></i></a> ';
+				$buffer .= '<a class="button tiny" href="'.Staple_Link::get($action,array_merge($linkVars,array('page'=>$this->getNumberOfPages()))).'"><i class="fa fa-angle-double-right"></i></a>';
 			}
 		}
 		else 
 		{
-			$buffer .= '<< - < 1 > - >>';
+			$buffer .= '<a class="button tiny secondary disabled"><i class="fa fa-angle-double-left"></i></a> <a class="button tiny secondary disabled"><i class="fa fa-angle-left"></i></a>  <a class="button tiny disabled">1</a> <a class="button tiny secondary disabled"><i class="fa fa-angle-right"></i></a> <a class="button tiny secondary disabled"><i class="fa fa-angle-double-right"></i></a>';
 		}
 		$buffer .= "</div>\n";
 		if($this->getDisplayItemAmountSelector() === true)
 		{
 			
-			$buffer .= "<div class=\"staple_pager_items\">\n";
-			$buffer .= 'Items Per Page: <select onChange="window.location=\''.Staple_Link::get($action,array_merge($linkVars,array('page'=>1)))."&items='+this.value\">\n";
+			$buffer .= "<div class=\"staple_pager_items small-12 medium-1 columns\">\n";
+			$buffer .= '<select onChange="window.location=\''.Staple_Link::get($action,array_merge($linkVars,array('page'=>1)))."&items='+this.value\">\n";
 			foreach($this->getItemAmountSelections() as $value)
 			{
 				$selected = '';

+ 2 - 0
public/timetrackerStyle/scss/_settings.scss

@@ -243,6 +243,8 @@ $primary-color: #315476;
   background-color: #fafafa;
   padding:20px;
 }
+
+
 // We use these to control various global styles
 // $body-bg: $white;
 // $body-font-color: $jet;