parent
37f58e55d8
commit
a66949162b
|
@ -1,16 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
use Icinga\Module\Monitoring\Object\MonitoredObject;
|
|
||||||
|
|
||||||
// add warning to links that open in new tabs to improve accessibility, as recommended by WCAG20 G201
|
// add warning to links that open in new tabs to improve accessibility, as recommended by WCAG20 G201
|
||||||
$newTabInfo = sprintf('<span class="info-box display-on-hover"> %s </span>', $this->translate('opens in new window'));
|
$newTabInfo = sprintf('<span class="info-box display-on-hover"> %s </span>', $this->translate('opens in new window'));
|
||||||
|
|
||||||
$links = MonitoredObject::parseAttributeUrls($object->action_url);
|
$links = $object->getActionUrls();
|
||||||
foreach ($links as $i => $link) {
|
foreach ($links as $i => $link) {
|
||||||
$links[$i] = sprintf(
|
$links[$i] = sprintf('<a href="%s" target="_blank">%s ' . $newTabInfo . '</a>', $link, 'Action');
|
||||||
'<a href="%s" target="_blank">%s ' . $newTabInfo . '</a>',
|
|
||||||
$this->resolveMacros($object->action_url, $object),
|
|
||||||
'Action'
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($this->actions)) {
|
if (isset($this->actions)) {
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
$notes = trim($object->getNotes());
|
$notes = trim($object->getNotes());
|
||||||
$links = $object->getNotesUrls();
|
$links = $object->getNotesUrls();
|
||||||
?>
|
|
||||||
|
|
||||||
<?php if (! empty($links) || ! empty($notes)): ?>
|
if (! empty($links) || ! empty($notes)): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?= $this->translate('Notes') ?></th>
|
<th><?= $this->translate('Notes') ?></th>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
if (! empty($notes)) {
|
if (! empty($notes)) {
|
||||||
$notes = $this->resolveMacros($notes, $object);
|
|
||||||
echo $notes . '<br>';
|
echo $notes . '<br>';
|
||||||
}
|
}
|
||||||
// add warning to links that open in new tabs to improve accessibility, as recommended by WCAG20 G201
|
// add warning to links that open in new tabs to improve accessibility, as recommended by WCAG20 G201
|
||||||
|
@ -19,8 +17,7 @@ $links = $object->getNotesUrls();
|
||||||
);
|
);
|
||||||
$linkText = '<a href="%s" target="_blank">%s ' . $newTabInfo . '</a>';
|
$linkText = '<a href="%s" target="_blank">%s ' . $newTabInfo . '</a>';
|
||||||
foreach ($links as $i => $link) {
|
foreach ($links as $i => $link) {
|
||||||
$resolved = $this->resolveMacros($link, $object);
|
$links[$i] = sprintf($linkText, $this->escape($link), $this->escape($link));
|
||||||
$links[$i] = sprintf($linkText, $this->escape($resolved), $this->escape($resolved));
|
|
||||||
}
|
}
|
||||||
echo implode('<br>', $links);
|
echo implode('<br>', $links);
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -192,7 +192,9 @@ class Host extends MonitoredObject
|
||||||
|
|
||||||
public function getNotesUrls()
|
public function getNotesUrls()
|
||||||
{
|
{
|
||||||
return MonitoredObject::parseAttributeUrls($this->host_notes_url);
|
return $this->resolveAllStrings(
|
||||||
|
MonitoredObject::parseAttributeUrls($this->host_notes_url)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNotes()
|
public function getNotes()
|
||||||
|
|
|
@ -569,14 +569,14 @@ abstract class MonitoredObject implements Filterable
|
||||||
*
|
*
|
||||||
* @return string The notes as a string
|
* @return string The notes as a string
|
||||||
*/
|
*/
|
||||||
public function getNotes() {}
|
public abstract function getNotes();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all note urls configured for this monitored object
|
* Get all note urls configured for this monitored object
|
||||||
*
|
*
|
||||||
* @return array All note urls as a string
|
* @return array All note urls as a string
|
||||||
*/
|
*/
|
||||||
public function getNotesUrls() {}
|
public abstract function getNotesUrls();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all action urls configured for this monitored object
|
* Get all action urls configured for this monitored object
|
||||||
|
@ -585,7 +585,23 @@ abstract class MonitoredObject implements Filterable
|
||||||
*/
|
*/
|
||||||
public function getActionUrls()
|
public function getActionUrls()
|
||||||
{
|
{
|
||||||
return MonitoredObject::parseAttributeUrls($this->action_url);
|
return $this->resolveAllStrings(
|
||||||
|
MonitoredObject::parseAttributeUrls($this->action_url)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolve macros in all given strings in the current object context
|
||||||
|
*
|
||||||
|
* @param array $strs An array of urls as string
|
||||||
|
* @return type
|
||||||
|
*/
|
||||||
|
protected function resolveAllStrings(array $strs)
|
||||||
|
{
|
||||||
|
foreach ($strs as $i => $str) {
|
||||||
|
$strs[$i] = Macro::resolveMacros($str, $this);
|
||||||
|
}
|
||||||
|
return $strs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -202,7 +202,9 @@ class Service extends MonitoredObject
|
||||||
|
|
||||||
public function getNotesUrls()
|
public function getNotesUrls()
|
||||||
{
|
{
|
||||||
return MonitoredObject::parseAttributeUrls($this->service_notes_url);
|
return $this->resolveAllStrings(
|
||||||
|
MonitoredObject::parseAttributeUrls($this->service_notes_url)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNotes()
|
public function getNotes()
|
||||||
|
|
Loading…
Reference in New Issue