Replaced "Posted by" with "Impacted services". Addresses suggestion in Pryx/server-status#69
* Extended Incident class with service_id and services_names.
This commit is contained in:
parent
c75f83c2ef
commit
e41b45e067
|
@ -123,7 +123,7 @@ class Constellation
|
||||||
|
|
||||||
$operator = ($future)?">=":"<=";
|
$operator = ($future)?">=":"<=";
|
||||||
$limit++;
|
$limit++;
|
||||||
$sql = $mysqli->prepare("SELECT *, status.id as status_id FROM status INNER JOIN users ON user_id=users.id WHERE `time` $operator ? AND `end_time` $operator ? OR (`time`<=? AND `end_time` $operator ? ) ORDER BY `time` DESC LIMIT ? OFFSET ?");
|
$sql = $mysqli->prepare("SELECT users.id, status.type, status.title, status.text, status.time, status.end_time, users.username, status.id, status.id as status_id FROM status INNER JOIN users ON user_id=users.id WHERE `time` $operator ? AND `end_time` $operator ? OR (`time`<=? AND `end_time` $operator ? ) ORDER BY `time` DESC LIMIT ? OFFSET ?");
|
||||||
$sql->bind_param("iiiiii",$timestamp, $timestamp, $timestamp, $timestamp, $limit, $offset);
|
$sql->bind_param("iiiiii",$timestamp, $timestamp, $timestamp, $timestamp, $limit, $offset);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
$query = $sql->get_result();
|
$query = $sql->get_result();
|
||||||
|
@ -136,6 +136,18 @@ class Constellation
|
||||||
if ($query->num_rows){
|
if ($query->num_rows){
|
||||||
while(($result = $query->fetch_assoc()) && $limit-- > 0)
|
while(($result = $query->fetch_assoc()) && $limit-- > 0)
|
||||||
{
|
{
|
||||||
|
// Add service id and service names to an array in the Incident class
|
||||||
|
$stmt_service = $mysqli->prepare("SELECT services.id,services.name FROM services
|
||||||
|
INNER JOIN services_status ON services.id = services_status.service_id
|
||||||
|
WHERE services_status.status_id = ?");
|
||||||
|
$stmt_service->bind_param("i", $result['status_id']);
|
||||||
|
$stmt_service->execute();
|
||||||
|
$query_service = $stmt_service->get_result();
|
||||||
|
while($result_service = $query_service->fetch_assoc()) {
|
||||||
|
$result['service_id'][] = $result_service['id'];
|
||||||
|
$result['service_name'][] = $result_service['name'];
|
||||||
|
}
|
||||||
|
|
||||||
$array[] = new Incident($result);
|
$array[] = new Incident($result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,8 @@ class Incident implements JsonSerializable
|
||||||
private $type;
|
private $type;
|
||||||
private $title;
|
private $title;
|
||||||
private $username;
|
private $username;
|
||||||
|
private $service_id;
|
||||||
|
private $service_name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs service from its data.
|
* Constructs service from its data.
|
||||||
|
@ -34,6 +36,8 @@ class Incident implements JsonSerializable
|
||||||
$this->title = $data['title'];
|
$this->title = $data['title'];
|
||||||
$this->text = $data['text'];
|
$this->text = $data['text'];
|
||||||
$this->username = $data['username'];
|
$this->username = $data['username'];
|
||||||
|
$this->service_id = $data['service_id'];
|
||||||
|
$this->service_name = $data['service_name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -168,24 +172,9 @@ class Incident implements JsonSerializable
|
||||||
*/
|
*/
|
||||||
public function render($admin=0){
|
public function render($admin=0){
|
||||||
global $icons;
|
global $icons;
|
||||||
global $classes, $user, $mysqli;
|
global $classes, $user;
|
||||||
$admin = $admin && (($user->get_rank()<=1) || ($user->get_username() == $this->username));
|
$admin = $admin && (($user->get_rank()<=1) || ($user->get_username() == $this->username));
|
||||||
|
|
||||||
// Create id->service_name array
|
|
||||||
$stmt = $mysqli->prepare("SELECT services.id,services.name FROM services INNER JOIN services_status ON services.id = services_status.service_id WHERE services_status.status_id = ?");
|
|
||||||
$stmt->bind_param("i", $this->id);
|
|
||||||
$stmt->execute();
|
|
||||||
$query = $stmt->get_result();
|
|
||||||
|
|
||||||
$array = array();
|
|
||||||
if ($query->num_rows){
|
|
||||||
$timestamp = time();
|
|
||||||
|
|
||||||
while($result = $query->fetch_assoc()) {
|
|
||||||
$array[$result['id']] = $result['name'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<article class="panel panel-<?php echo $classes[$this->type];?>">
|
<article class="panel panel-<?php echo $classes[$this->type];?>">
|
||||||
<div class="panel-heading icon">
|
<div class="panel-heading icon">
|
||||||
|
@ -201,18 +190,13 @@ class Incident implements JsonSerializable
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<?php echo $this->text; ?>
|
<?php echo $this->text; ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-footer panel-info clearfix">
|
<div class="panel-footer clearfix">
|
||||||
<small>
|
<small>
|
||||||
<?php
|
<?php echo _("Impacted service(s): ");
|
||||||
echo _("Impacted service(s): ");
|
foreach ( $this->service_name as $key => $value ) {
|
||||||
foreach ( $array as $key => $value ) {
|
|
||||||
echo '<span class="label label-default">'.$value . '</span> ';
|
echo '<span class="label label-default">'.$value . '</span> ';
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
</small>
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer clearfix">
|
|
||||||
<small><?php echo _("Posted by");?>: <?php echo $this->username;
|
|
||||||
if (isset($this->end_date)){?>
|
if (isset($this->end_date)){?>
|
||||||
<span class="pull-right"><?php echo strtotime($this->end_date)>time()?_("Ending"):_("Ended");?>: <time class="pull-right timeago" datetime="<?php echo $this->end_date; ?>"><?php echo $this->end_date; ?></time></span>
|
<span class="pull-right"><?php echo strtotime($this->end_date)>time()?_("Ending"):_("Ended");?>: <time class="pull-right timeago" datetime="<?php echo $this->end_date; ?>"><?php echo $this->end_date; ?></time></span>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
Loading…
Reference in New Issue