Show the logs in show_ticket_log

--HG--
branch : quitta-gsoc-2013
This commit is contained in:
Quitta 2013-07-13 03:46:15 +02:00
parent a8ee2f46f6
commit c7e58da11f
3 changed files with 70 additions and 16 deletions

View file

@ -22,6 +22,28 @@ class Ticket_Log{
////////////////////////////////////////////Functions////////////////////////////////////////////////////
//return all logs that are related to a ticket
public static function getLogsOfTicket( $ticket_id) {
$dbl = new DBLayer("lib");
$statement = $dbl->execute("SELECT * FROM ticket_log INNER JOIN ticket_user ON ticket_log.Author = ticket_user.TUserId and ticket_log.Ticket=:id ORDER BY ticket_log.TLogId DESC", array('id' => $ticket_id));
$row = $statement->fetchAll();
$result = Array();
foreach($row as $log){
$instanceAuthor = Ticket_User::constr_TUserId($log['Author']);
$instanceAuthor->setExternId($log['ExternId']);
$instanceAuthor->setPermission($log['Permission']);
$instanceLog = new self();
$instanceLog->setTLogId($log['TLogId']);
$instanceLog->setTimestamp($log['Timestamp']);
$instanceLog->setAuthor($instanceAuthor);
$instanceLog->setTicket($ticket_id);
$instanceLog->setQuery($log['Query']);
$result[] = $instanceLog;
}
return $result;
}
//Creates a log entry
public static function createLogEntry( $ticket_id, $author_id, $action, $arg = -1) {
@ -110,13 +132,13 @@ class Ticket_Log{
return $this->ticket;
}
public function getAcion(){
$decodedQuery = json_decode($this->ticket);
public function getAction(){
$decodedQuery = json_decode($this->query);
return $decodedQuery[0];
}
public function getArgument(){
$decodedQuery = json_decode($this->ticket);
$decodedQuery = json_decode($this->query);
return $decodedQuery[1];
}

View file

@ -1,6 +1,38 @@
<?php
function show_ticket_log(){
//if logged in
if(WebUsers::isLoggedIn() && isset($_GET['id'])){
$result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
$target_ticket = new Ticket();
$target_ticket->load_With_TId($result['ticket_id']);
if(($target_ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || WebUsers::isAdmin() ){
$result['ticket_title'] = $target_ticket->getTitle();
$ticket_logs = Ticket_Log::getLogsOfTicket( $result['ticket_id']);
$result['ticket_logs'] = Gui_Elements::make_table($ticket_logs, Array("getTLogId","getTimestamp","getAuthor()->getExternId","getAction","getArgument()"), Array("tLogId","timestamp","authorExtern","action","argument"));
$i = 0;
foreach( $result['ticket_logs'] as $log){
$result['ticket_logs'][$i]['author'] = WebUsers::getUsername($log['authorExtern']);
$i++;
}
if(WebUsers::isAdmin()){
$result['isAdmin'] = "TRUE";
}
return $result;
}else{
//ERROR: No access!
$_SESSION['error_code'] = "403";
header("Location: index.php?page=error");
exit;
}
}else{
//ERROR: not logged in!
header("Location: index.php");
exit;
}
}

View file

@ -2,7 +2,7 @@
<div class="row-fluid sortable ui-sortable">
<div class="box span12">
<div class="box-header well" data-original-title="">
<h2><i class="icon-tag"></i> Tickets of {$target_name}</h2>
<h2><i class="icon-tag"></i> Log of Ticket #{$ticket_id}</h2>
<div class="box-icon">
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
@ -10,26 +10,26 @@
</div>
<div class="box-content">
<div class="row-fluid">
<legend>Tickets</legend>
<legend>Title: <a href="index.php?page=show_ticket&id={$ticket_id}">{$ticket_title}</a></legend>
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Timestamp</th>
<th>Category</th>
<th>Status</th>
<th>User</th>
<th>Action</th>
<th>Argument</th>
</tr>
</thead>
<tbody>
{foreach from=$ticketlist item=ticket}
{foreach from=$ticket_logs item=log}
<tr>
<td>{$ticket.tId}</td>
<td><a href ="index.php?page=show_ticket&id={$ticket.tId}">{$ticket.title}</a></td>
<td class="center"><i>{$ticket.timestamp}</i></td>
<td class="center">{$ticket.category}</td>
<td>{$log.tLogId}</td>
<td>{$log.timestamp}</td>
<td>{$log.author}</td>
<td>{$log.action}</td>
<td>{$log.argument}</td>
<td class="center"><span class="label {if $ticket.status eq 0}label-success{else if $ticket.status eq 1}label-warning{else if $ticket.status eq 2}label-important{/if}">{if $ticket.status eq 0} <i class="icon-exclamation-sign icon-white"></i>{/if} {$ticket.statusText}</span></td>
</tr>
{/foreach}