1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
<?php
/*
** Zabbix
** Copyright (C) 2001-2016 Zabbix SIA
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
class CScreenMap extends CScreenBase {
/**
* Process screen.
*
* @return CDiv (screen inside container)
*/
public function get() {
$image = (new CImg('map.php?noedit=1&sysmapid='.$this->screenitem['resourceid'].
'&width='.$this->screenitem['width'].'&height='.$this->screenitem['height'].'&curtime='.time()))
->setId('map_'.$this->screenitem['screenitemid']);
if ($this->mode == SCREEN_MODE_PREVIEW) {
$sysmap = API::Map()->get([
'sysmapids' => $this->screenitem['resourceid'],
'output' => API_OUTPUT_EXTEND,
'selectSelements' => API_OUTPUT_EXTEND,
'selectLinks' => API_OUTPUT_EXTEND,
'expandUrls' => true,
'nopermissions' => true,
'preservekeys' => true
]);
$sysmap = reset($sysmap);
if (array_key_exists('severity_min', $this->screenitem)) {
$sysmap['severity_min'] = $this->screenitem['severity_min'];
}
$image->setSrc($image->getAttribute('src').'&severity_min='.$sysmap['severity_min']);
$action_map = getActionMapBySysmap($sysmap, ['severity_min' => $sysmap['severity_min']]);
$image->setMap($action_map->getName());
$output = [$action_map, $image];
}
elseif ($this->mode == SCREEN_MODE_EDIT) {
$output = [$image, BR(), new CLink(_('Change'), $this->action)];
}
else {
$output = [$image];
}
$this->insertFlickerfreeJs();
$div = (new CDiv($output))
->addClass('map-container')
->addClass('flickerfreescreen')
->setId($this->getScreenId())
->setAttribute('data-timestamp', $this->timestamp)
->addStyle('position: relative;');
return $div;
}
}
|