mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-27 07:44:04 +02:00
parent
219b11789b
commit
6c7f1e5466
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
namespace Icinga\Web\Widget\Dashboard;
|
namespace Icinga\Web\Widget\Dashboard;
|
||||||
|
|
||||||
|
use Icinga\Web\Session;
|
||||||
use Icinga\Web\Url;
|
use Icinga\Web\Url;
|
||||||
use Icinga\Data\ConfigObject;
|
use Icinga\Data\ConfigObject;
|
||||||
use Icinga\Exception\IcingaException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A dashboard pane dashlet
|
* A dashboard pane dashlet
|
||||||
@ -57,18 +57,15 @@ class Dashlet extends UserWidget
|
|||||||
*/
|
*/
|
||||||
private $template =<<<'EOD'
|
private $template =<<<'EOD'
|
||||||
|
|
||||||
<div class="container" data-icinga-url="{URL}">
|
<div class="container" data-icinga-url="{URL}" data-url-hash="{URL_HASH}">
|
||||||
<h1><a href="{FULL_URL}" aria-label="{TOOLTIP}" title="{TOOLTIP}" data-base-target="col1">{TITLE}</a></h1>
|
<h1><a
|
||||||
|
href="{FULL_URL}"
|
||||||
|
aria-label="{TOOLTIP}"
|
||||||
|
title="{TOOLTIP}"
|
||||||
|
data-url-hash="{FULL_URL_HASH}"
|
||||||
|
data-base-target="col1"
|
||||||
|
>{TITLE}</a></h1>
|
||||||
<p class="progress-label">{PROGRESS_LABEL}<span>.</span><span>.</span><span>.</span></p>
|
<p class="progress-label">{PROGRESS_LABEL}<span>.</span><span>.</span><span>.</span></p>
|
||||||
<noscript>
|
|
||||||
<div class="iframe-container">
|
|
||||||
<iframe
|
|
||||||
src="{IFRAME_URL}"
|
|
||||||
frameborder="no"
|
|
||||||
title="{TITLE_PREFIX}{TITLE}">
|
|
||||||
</iframe>
|
|
||||||
</div>
|
|
||||||
</noscript>
|
|
||||||
</div>
|
</div>
|
||||||
EOD;
|
EOD;
|
||||||
|
|
||||||
@ -250,13 +247,22 @@ EOD;
|
|||||||
|
|
||||||
$url = $this->getUrl();
|
$url = $this->getUrl();
|
||||||
$url->setParam('showCompact', true);
|
$url->setParam('showCompact', true);
|
||||||
$iframeUrl = clone $url;
|
$fullUrl = $url->getUrlWithout(['showCompact', 'limit', 'view']);
|
||||||
$iframeUrl->setParam('isIframe');
|
|
||||||
|
$urlHash = '';
|
||||||
|
$fullUrlHash = '';
|
||||||
|
if ($url->getPath() === 'iframe') {
|
||||||
|
$urlHash = hash('sha256', Url::fromPath($url->getParam('url'))->getAbsoluteUrl()
|
||||||
|
. Session::getSession()->getId());
|
||||||
|
$fullUrlHash = hash('sha256', Url::fromPath($fullUrl->getParam('url'))->getAbsoluteUrl()
|
||||||
|
. Session::getSession()->getId());
|
||||||
|
}
|
||||||
|
|
||||||
$searchTokens = array(
|
$searchTokens = array(
|
||||||
'{URL}',
|
'{URL}',
|
||||||
'{IFRAME_URL}',
|
'{URL_HASH}',
|
||||||
'{FULL_URL}',
|
'{FULL_URL}',
|
||||||
|
'{FULL_URL_HASH}',
|
||||||
'{TOOLTIP}',
|
'{TOOLTIP}',
|
||||||
'{TITLE}',
|
'{TITLE}',
|
||||||
'{TITLE_PREFIX}',
|
'{TITLE_PREFIX}',
|
||||||
@ -265,8 +271,9 @@ EOD;
|
|||||||
|
|
||||||
$replaceTokens = array(
|
$replaceTokens = array(
|
||||||
$url,
|
$url,
|
||||||
$iframeUrl,
|
$urlHash,
|
||||||
$url->getUrlWithout(['showCompact', 'limit', 'view']),
|
$fullUrl,
|
||||||
|
$fullUrlHash,
|
||||||
sprintf($view->translate('Show %s', 'dashboard.dashlet.tooltip'), $view->escape($this->getTitle())),
|
sprintf($view->translate('Show %s', 'dashboard.dashlet.tooltip'), $view->escape($this->getTitle())),
|
||||||
$view->escape($this->getTitle()),
|
$view->escape($this->getTitle()),
|
||||||
$view->translate('Dashlet') . ': ',
|
$view->translate('Dashlet') . ': ',
|
||||||
|
@ -170,8 +170,22 @@
|
|||||||
var $dashlet = $(this);
|
var $dashlet = $(this);
|
||||||
var url = $dashlet.data('icingaUrl');
|
var url = $dashlet.data('icingaUrl');
|
||||||
if (typeof url !== 'undefined') {
|
if (typeof url !== 'undefined') {
|
||||||
|
const urlHash = this.dataset.urlHash;
|
||||||
|
if (urlHash) {
|
||||||
|
_this.icinga.loader.loadUrl(
|
||||||
|
url,
|
||||||
|
$dashlet,
|
||||||
|
undefined,
|
||||||
|
undefined,
|
||||||
|
undefined,
|
||||||
|
true,
|
||||||
|
undefined,
|
||||||
|
{ "X-Icinga-URLHash": urlHash }
|
||||||
|
);
|
||||||
|
} else {
|
||||||
_this.icinga.loader.loadUrl(url, $dashlet).autorefresh = true;
|
_this.icinga.loader.loadUrl(url, $dashlet).autorefresh = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user