Преглед на файлове

Added a account filter option for the audit list.

Adam Day преди 9 години
родител
ревизия
b2c2deb013

+ 6 - 4
application/controllers/auditController.php

@@ -12,7 +12,7 @@ class auditController extends Staple_Controller
         }
     }
 
-    public function index()
+    public function index($currentUser = null)
     {
         if(array_key_exists('items',$_GET))
         {
@@ -37,11 +37,13 @@ class auditController extends Staple_Controller
             $page = 1;
         }
 
-        $audit = new auditModel();
+        $accounts = new userModel();
+        $this->view->accounts = $accounts->listAll($currentUser);
+        $this->view->currentUser = $currentUser;
 
-        $auditLog = $audit->getAll($page,$items);
+        $audit = new auditModel();
+        $auditLog = $audit->getAll($currentUser,$page,$items);
         $this->view->audit = $auditLog;
-
         $this->view->pager = $audit->getPager();
     }
 }

+ 40 - 0
application/forms/auditUserSearchForm.php

@@ -0,0 +1,40 @@
+<?php
+
+class auditUserSearchForm extends Staple_Form
+{
+    public function _start()
+    {
+        //$this->setLayout('accountFormLayout');
+
+        $this->setName('auditUserSearch')
+            ->setAction($this->link(array('audit')));
+
+        $users = new Staple_Form_FoundationSelectElement('users','Limit to user');
+        $users->setRequired()
+            ->addOption('','Select an account')
+            ->addOptionsArray($this->accounts())
+            ->addValidator(new Staple_Form_Validate_InArray($this->accounts()));
+
+        $submit = new Staple_Form_FoundationSubmitElement('submit','Submit');
+        $submit->addClass('button expand');
+
+        $this->addField($users, $submit);
+    }
+
+    public function accounts()
+    {
+        $accounts = new userModel();
+
+        $data = array();
+
+        foreach($accounts->listAll() as $user)
+        {
+            $data[$user['id']] = $user['lastName'].", ".$user['firstName'];
+        }
+
+        return $data;
+    }
+
+}
+
+?>

+ 22 - 5
application/models/auditModel.php

@@ -118,12 +118,20 @@ class auditModel extends Staple_Model
         }
     }
 
-    function getAll($page,$items)
+    function getAll($uid = null,$page,$items)
     {
         $pager = new Staple_Pager();
 
         //Get total rows
-        $sql = "SELECT COUNT(id) as count FROM audit";
+        if($uid == null)
+        {
+            $sql = "SELECT COUNT(id) as count FROM audit";
+        }
+        else
+        {
+            $sql = "SELECT COUNT(id) as count FROM audit WHERE userId = '".$this->db->real_escape_string($uid)."'";
+        }
+
         $result = $this->db->query($sql)->fetch_assoc();
         $total = $result['count'];
 
@@ -131,9 +139,18 @@ class auditModel extends Staple_Model
         $pager->setItemsPerPage($items);
         $pager->setPage($page);
 
-        $sql = "
-            SELECT * FROM audit WHERE 1 ORDER BY timestamp ASC LIMIT ".$pager->getStartingItem().", ".$pager->getItemsPerPage()."
-        ";
+        if($uid == null)
+        {
+            $sql = "
+              SELECT * FROM audit ORDER BY timestamp ASC LIMIT ".$pager->getStartingItem().", ".$pager->getItemsPerPage()."
+            ";
+        }
+        else
+        {
+            $sql = "
+                SELECT * FROM audit WHERE userId = '".$this->db->real_escape_string($uid)."' ORDER BY timestamp ASC LIMIT ".$pager->getStartingItem().", ".$pager->getItemsPerPage()."
+            ";
+        }
 
         $this->pager = $pager;
 

+ 15 - 0
application/models/userModel.php

@@ -191,5 +191,20 @@
 			$result = $query->fetch_assoc();
 			return $result;
 		}
+
+		function listAll()
+		{
+			$sql = "SELECT id, username, firstName, lastName, authLevel, batchId, supervisorId FROM accounts ORDER BY lastName ASC, firstName ASC";
+			if($this->db->query($sql)->num_rows > 0)
+			{
+				$query = $this->db->query($sql);
+				while($result = $query->fetch_assoc())
+				{
+					$data[] = $result;
+				}
+				return $data;
+			}
+
+		}
 	}
 ?>

+ 35 - 2
application/views/audit/index.phtml

@@ -4,9 +4,42 @@
             <h1><i class="fa fa-list-alt"></i> Audit Log</h1>
         </div>
     </div>
-
     <div class="row">
-        <div class="small-12 columns">
+        <div class="small-3 columns">
+            <h3><i class="fa fa-filter"></i> Filter Accounts</h3>
+            <ul class="side-nav">
+                <?php
+
+                    if($this->currentUser == null)
+                    {
+                        echo "<li class='active'><a href=\"".$this->link(array('audit'))."\">List All Logs</a></li>";
+                    }
+                    else
+                    {
+                        echo "<li><a href=\"".$this->link(array('audit'))."\">List All Logs</a></li>";
+                    }
+
+                ?>
+
+
+            <?php
+
+                foreach($this->accounts as $user)
+                {
+                    if($user['id'] == $this->currentUser)
+                    {
+                        echo "<li class='active'><a class='' href='".$this->link(array("audit",$user['id']))."'>".$user['lastName'].", ".$user['firstName']."</a></li>";
+                    }
+                    else
+                    {
+                        echo "<li><a class='' href='".$this->link(array("audit",$user['id']))."'>".$user['lastName'].", ".$user['firstName']."</a></li>";
+                    }
+                }
+
+            ?>
+            </ul>
+        </div>
+        <div class="small-9 columns">
             <?php
 
             if(count($this->audit) > 0)