159 lines
2.7 KiB
PHP
159 lines
2.7 KiB
PHP
<?php
|
|
/* Icinga Web 2 | (c) 2016 Icinga Development Team | GPLv2+ */
|
|
|
|
namespace Icinga\Web;
|
|
|
|
/**
|
|
* An announcement to be displayed prominently in the web UI
|
|
*/
|
|
class Announcement
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
protected $author;
|
|
|
|
/**
|
|
* @var string
|
|
*/
|
|
protected $message;
|
|
|
|
/**
|
|
* @var int
|
|
*/
|
|
protected $start;
|
|
|
|
/**
|
|
* @var int
|
|
*/
|
|
protected $end;
|
|
|
|
/**
|
|
* Hash of the message
|
|
*
|
|
* @var string|null
|
|
*/
|
|
protected $hash = null;
|
|
|
|
/**
|
|
* Announcement constructor
|
|
*
|
|
* @param array $properties
|
|
*/
|
|
public function __construct(array $properties = array())
|
|
{
|
|
foreach ($properties as $key => $value) {
|
|
$method = 'set' . ucfirst($key);
|
|
if (method_exists($this, $method)) {
|
|
$this->$method($value);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the author of the acknowledged
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getAuthor()
|
|
{
|
|
return $this->author;
|
|
}
|
|
|
|
/**
|
|
* Set the author of the acknowledged
|
|
*
|
|
* @param string $author
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setAuthor($author)
|
|
{
|
|
$this->author = $author;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the message of the acknowledged
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getMessage()
|
|
{
|
|
return $this->message;
|
|
}
|
|
|
|
/**
|
|
* Set the message of the acknowledged
|
|
*
|
|
* @param string $message
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setMessage($message)
|
|
{
|
|
$this->message = $message;
|
|
$this->hash = null;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the start date and time of the acknowledged
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getStart()
|
|
{
|
|
return $this->start;
|
|
}
|
|
|
|
/**
|
|
* Set the start date and time of the acknowledged
|
|
*
|
|
* @param int $start
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setStart($start)
|
|
{
|
|
$this->start = $start;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the end date and time of the acknowledged
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getEnd()
|
|
{
|
|
return $this->end;
|
|
}
|
|
|
|
/**
|
|
* Set the end date and time of the acknowledged
|
|
*
|
|
* @param int $end
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setEnd($end)
|
|
{
|
|
$this->end = $end;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the hash of the acknowledgement
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getHash()
|
|
{
|
|
if ($this->hash === null) {
|
|
$this->hash = md5($this->message);
|
|
}
|
|
return $this->hash;
|
|
}
|
|
}
|