/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $this->dataId = 'graph_full'; $containerId = 'graph_container'; // time control $graphDims = getGraphDims($this->graphid); if ($graphDims['graphtype'] == GRAPH_TYPE_PIE || $graphDims['graphtype'] == GRAPH_TYPE_EXPLODED) { $loadSBox = 0; $src = 'chart6.php'; } else { $loadSBox = 1; $src = 'chart2.php'; } $src .= '?graphid=' . $this->graphid . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow'] . $this->getProfileUrlParams(); $this->timeline['starttime'] = date(TIMESTAMP_FORMAT, get_min_itemclock_by_graphid($this->graphid)); $timeControlData = array('id' => $this->getDataId(), 'containerid' => $containerId, 'src' => $src, 'objDims' => $graphDims, 'loadSBox' => $loadSBox, 'loadImage' => 1, 'dynamic' => 1, 'periodFixed' => CProfile::get($this->profileIdx . '.timelinefixed', 1), 'sliderMaximumTimePeriod' => ZBX_MAX_PERIOD); // output if ($this->mode == SCREEN_MODE_JS) { $timeControlData['dynamic'] = 0; $timeControlData['loadSBox'] = 0; return 'timeControl.addObject("' . $this->getDataId() . '", ' . zbx_jsvalue($this->timeline) . ', ' . zbx_jsvalue($timeControlData) . ')'; } else { if ($this->mode == SCREEN_MODE_SLIDESHOW) { insert_js('timeControl.addObject("' . $this->getDataId() . '", ' . zbx_jsvalue($this->timeline) . ', ' . zbx_jsvalue($timeControlData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $this->getDataId() . '", ' . zbx_jsvalue($this->timeline) . ', ' . zbx_jsvalue($timeControlData) . ');'); } return $this->getOutput(new CDiv(null, 'center', $containerId), true, array('graphid' => $this->graphid)); } }
function jsRedirect($url, $timeout = null) { zbx_flush_post_cookies(); $script = ''; if (is_numeric($timeout)) { $script .= 'setTimeout(\'window.location="' . $url . '"\',' . $timeout * 1000 . ')'; } else { $script .= 'window.location.replace("' . $url . '");'; } insert_js($script); }
/** * @param string $options['id'] * @param string $options['name'] * @param int $options['value'] */ public function __construct(array $options = array()) { parent::__construct('div', 'yes'); $this->attr('id', isset($options['id']) ? $options['id'] : zbx_formatDomId($options['name'])); $this->addClass('jqueryinputset control-severity'); if (!isset($options['value'])) { $options['value'] = TRIGGER_SEVERITY_NOT_CLASSIFIED; } $items = array(); $jsIds = ''; $jsLabels = ''; foreach (getSeverityCaption() as $severity => $caption) { $items[] = new CRadioButton($options['name'], $severity, null, $options['name'] . '_' . $severity, $options['value'] == $severity); $css = getSeverityStyle($severity); $label = new CLabel($caption, $options['name'] . '_' . $severity, $options['name'] . '_label_' . $severity); $label->attr('data-severity', $severity); $label->attr('data-severity-style', $css); if ($options['value'] == $severity) { $label->attr('aria-pressed', 'true'); $label->addClass($css); } else { $label->attr('aria-pressed', 'false'); } $items[] = $label; $jsIds .= ', #' . $options['name'] . '_' . $severity; $jsLabels .= ', #' . $options['name'] . '_label_' . $severity; } if ($jsIds) { $jsIds = substr($jsIds, 2); $jsLabels = substr($jsLabels, 2); } $this->addItem($items); insert_js(' jQuery("' . $jsLabels . '").mouseenter(function() { jQuery("' . $jsLabels . '").each(function() { var obj = jQuery(this); if (obj.attr("aria-pressed") == "false") { obj.removeClass("ui-state-hover " + obj.data("severityStyle")); } }); var obj = jQuery(this); obj.addClass(obj.data("severityStyle")); }) .mouseleave(function() { jQuery("#' . $this->getAttribute('id') . ' [aria-pressed=\\"true\\"]").trigger("mouseenter"); }); jQuery("' . $jsIds . '").change(function() { jQuery("#' . $this->getAttribute('id') . ' [aria-pressed=\\"true\\"]").trigger("mouseenter"); });', true); }
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $this->dataId = 'graph_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $resourceid = !empty($this->screenitem['real_resourceid']) ? $this->screenitem['real_resourceid'] : $this->screenitem['resourceid']; $containerid = 'graph_container_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $graphDims = getGraphDims(); $graphDims['graphHeight'] = $this->screenitem['height']; $graphDims['width'] = $this->screenitem['width']; // get time control $timeControlData = array('id' => $this->getDataId(), 'containerid' => $containerid, 'objDims' => $graphDims, 'loadImage' => 1, 'periodFixed' => CProfile::get('web.screens.timelinefixed', 1), 'sliderMaximumTimePeriod' => ZBX_MAX_PERIOD); // host feature if ($this->screenitem['dynamic'] == SCREEN_DYNAMIC_ITEM && !empty($this->hostid)) { $newitemid = get_same_item_for_host($resourceid, $this->hostid); $resourceid = !empty($newitemid) ? $newitemid : ''; } if ($this->mode == SCREEN_MODE_PREVIEW && !empty($resourceid)) { $this->action = 'history.php?action=' . HISTORY_GRAPH . '&itemids[]=' . $resourceid . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow'] . $this->getProfileUrlParams(); } if ($resourceid && $this->mode != SCREEN_MODE_EDIT) { if ($this->mode == SCREEN_MODE_PREVIEW) { $timeControlData['loadSBox'] = 1; } } $timeControlData['src'] = $resourceid ? 'chart.php?itemids[]=' . $resourceid . '&' . $this->screenitem['url'] . '&width=' . $this->screenitem['width'] . '&height=' . $this->screenitem['height'] : 'chart3.php?'; $timeControlData['src'] .= $this->mode == SCREEN_MODE_EDIT ? '&period=3600&stime=' . date(TIMESTAMP_FORMAT, time()) : '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']; $timeControlData['src'] .= $this->getProfileUrlParams(); // output if ($this->mode == SCREEN_MODE_JS) { return 'timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ')'; } else { if ($this->mode == SCREEN_MODE_SLIDESHOW) { insert_js('timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ');'); } if ($this->mode == SCREEN_MODE_EDIT || $this->mode == SCREEN_MODE_SLIDESHOW) { $item = new CDiv(); } elseif ($this->mode == SCREEN_MODE_PREVIEW) { $item = new CLink(null, 'history.php?action=' . HISTORY_GRAPH . '&itemids[]=' . $resourceid . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']); } $item->setAttribute('id', $containerid); return $this->getOutput($item); } }
/** * show_head * * * * * * */ function show_head($head_content = '', $config = '') { // get default config from database if needed if (empty($config)) { $config = get_settings(); /* $config['site']['meta'] = $config['meta']; unset($config['meta']); $config_site = $config['site']; unset($config); */ } // doctype echo !empty($head_content['doctype']) ? $head_content['doctype'] : declare_doctype($config['site']['doctype']); // html lang echo !empty($head_content['html_lang']) ? $head_content['html_lang'] : declare_html_lang($config['site']['html_lang'], $config['site']['xml_namespaces']); // start head section $title = !empty($config['site']['meta_title']) ? $config['site']['meta_title'] : $config['site']['title']; echo "\n" . '<head> <title>' . $title . '</title>'; // base href echo ' <base href="' . constant('WW_WEB_ROOT') . '" />' . "\n"; // meta tags echo !empty($head_content['meta']) ? $head_content['meta'] : declare_meta($config['meta']); // head links $links_array = isset($config['site']['link']) ? $config['site']['link'] : array(); echo !empty($head_content['links']) ? $head_content['links'] : insert_links($links_array); // favicon echo !empty($head_content['favicon']) ? $head_content['favicon'] : insert_favicon($config['site']['theme']); // css echo !empty($head_content['css']) ? $head_content['css'] : insert_css($config['site']['theme']); // js echo !empty($head_content['js']) ? $head_content['js'] : insert_js($config['site']['theme']); // analytics if (!empty($config['connections']['google_analytics'])) { echo insert_google_analytics($config['connections']['google_analytics']); } // close head section echo "\n" . '</head>'; return; }
function insert_show_color_picker_javascript() { global $SHOW_COLOR_PICKER_SCRIPT_ISERTTED; if ($SHOW_COLOR_PICKER_SCRIPT_ISERTTED) { return; } $SHOW_COLOR_PICKER_SCRIPT_ISERTTED = true; $table = ''; $table .= '<table cellspacing="0" cellpadding="1">'; $table .= '<tr>'; /* gray colors */ foreach (array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'b', 'C', 'D', 'E', 'F') as $c) { $color = $c . $c . $c . $c . $c . $c; $table .= '<td>' . unpack_object(new CColorCell(null, $color, 'set_color(\\\'' . $color . '\\\')')) . '</td>'; } $table .= '</tr>'; /* other colors */ $colors = array(array('r' => 0, 'g' => 0, 'b' => 1), array('r' => 0, 'g' => 1, 'b' => 0), array('r' => 1, 'g' => 0, 'b' => 0), array('r' => 0, 'g' => 1, 'b' => 1), array('r' => 1, 'g' => 0, 'b' => 1), array('r' => 1, 'g' => 1, 'b' => 0)); $brigs = array(array(0 => '0', 1 => '3'), array(0 => '0', 1 => '4'), array(0 => '0', 1 => '5'), array(0 => '0', 1 => '6'), array(0 => '0', 1 => '7'), array(0 => '0', 1 => '8'), array(0 => '0', 1 => '9'), array(0 => '0', 1 => 'A'), array(0 => '0', 1 => 'B'), array(0 => '0', 1 => 'C'), array(0 => '0', 1 => 'D'), array(0 => '0', 1 => 'E'), array(0 => '3', 1 => 'F'), array(0 => '6', 1 => 'F'), array(0 => '9', 1 => 'F'), array(0 => 'C', 1 => 'F')); foreach ($colors as $c) { $table .= '<tr>'; foreach ($brigs as $br) { $r = $br[$c['r']]; $g = $br[$c['g']]; $b = $br[$c['b']]; $color = $r . $r . $g . $g . $b . $b; $table .= '<td>' . unpack_object(new CColorCell(null, $color, 'set_color(\\\'' . $color . '\\\')')) . '</td>'; } $table .= '</tr>'; } $table .= '</table>'; $cancel = '<span onclick="javascript:hide_color_picker();" class="link">' . S_CANCEL . '</span>'; $script = 'var color_picker = null; var curr_lbl = null; var curr_txt = null;' . "\n"; $script .= "var color_table = '" . $table . $cancel . "'\n"; insert_js($script); print '<script type="text/javascript" src="js/color_picker.js"></script>'; zbx_add_post_js('create_color_picker();'); }
define('ZBX_PAGE_NO_MENU', 1); include_once 'include/page_header.php'; // VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields = array('dstfrm' => array(T_ZBX_STR, O_MAND, P_SYS, NOT_EMPTY, null), 'config' => array(T_ZBX_INT, O_OPT, P_SYS, IN('0,1,2,3'), NULL), 'period_id' => array(T_ZBX_INT, O_OPT, null, null, null), 'caption' => array(T_ZBX_STR, O_OPT, null, null, null), 'report_timesince' => array(T_ZBX_INT, O_OPT, null, null, 'isset({save})'), 'report_timetill' => array(T_ZBX_INT, O_OPT, null, null, 'isset({save})'), 'color' => array(T_ZBX_CLR, O_OPT, null, null, 'isset({save})'), 'save' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'form' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form_refresh' => array(T_ZBX_STR, O_OPT, null, null, null)); check_fields($fields); insert_js_function('add_period'); insert_js_function('update_period'); $_REQUEST['caption'] = get_request('caption', ''); if (zbx_empty($_REQUEST['caption']) && isset($_REQUEST['report_timesince']) && isset($_REQUEST['report_timetill'])) { $_REQUEST['caption'] = date(S_DATE_FORMAT_YMDHMS, $_REQUEST['report_timesince']) . ' - ' . date(S_DATE_FORMAT_YMDHMS, $_REQUEST['report_timetill']); } if (isset($_REQUEST['save'])) { if (isset($_REQUEST['period_id'])) { insert_js("update_period('" . $_REQUEST['period_id'] . "','" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['caption'] . "','" . $_REQUEST['report_timesince'] . "','" . $_REQUEST['report_timetill'] . "','" . $_REQUEST['color'] . "');\n"); } else { insert_js("add_period('" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['caption'] . "','" . $_REQUEST['report_timesince'] . "','" . $_REQUEST['report_timetill'] . "','" . $_REQUEST['color'] . "');\n"); } } else { echo SBR; $frmPd = new CFormTable(S_PERIOD); $frmPd->setName('period'); $frmPd->addVar('dstfrm', $_REQUEST['dstfrm']); $config = get_request('config', 1); $caption = get_request('caption', ''); $color = get_request('color', '009900'); $report_timesince = get_request('report_timesince', time() - 86400); $report_timetill = get_request('report_timetill', time()); $frmPd->addVar('config', $config); $frmPd->addVar('report_timesince', $report_timesince); $frmPd->addVar('report_timetill', $report_timetill); if (isset($_REQUEST['period_id'])) {
if (hasRequest('widgetRefresh')) { $screenBuilder = new CScreenBuilder(['screen' => $dbScreen, 'mode' => SCREEN_MODE_PREVIEW, 'profileIdx' => 'web.slides', 'profileIdx2' => $elementId, 'hostid' => getRequest('hostid'), 'period' => getRequest('period'), 'stime' => getRequest('stime')]); CScreenBuilder::insertScreenCleanJs(); echo (new CDiv($screenBuilder->show()))->addClass(ZBX_STYLE_TABLE_FORMS_CONTAINER)->toString(); CScreenBuilder::insertScreenStandardJs(['timeline' => $screenBuilder->timeline, 'profileIdx' => $screenBuilder->profileIdx]); insertPagePostJs(); } // refresh rate if (hasRequest('widgetRefreshRate')) { $widgetRefreshRate = substr(getRequest('widgetRefreshRate'), 1); CProfile::update('web.slides.rf_rate.' . WIDGET_SLIDESHOW, $widgetRefreshRate, PROFILE_TYPE_STR, $elementId); } else { $widgetRefreshRate = CProfile::get('web.slides.rf_rate.' . WIDGET_SLIDESHOW, 1, getRequest('elementid', CProfile::get('web.slides.elementid'))); } $delay = $screen['delay'] > 0 ? $screen['delay'] : $data['screen']['delay']; insert_js('PMasters["slideshows"].dolls["' . WIDGET_SLIDESHOW . '"].frequency(' . CJs::encodeJson($delay * $widgetRefreshRate) . ');' . "\n" . 'PMasters["slideshows"].dolls["' . WIDGET_SLIDESHOW . '"].restartDoll();'); } } // filter state if (hasRequest('favobj') && hasRequest('favid')) { $favouriteObject = getRequest('favobj'); $favouriteId = getRequest('favid'); // saving fixed/dynamic setting to profile if ($favouriteObject === 'timelinefixedperiod') { CProfile::update('web.slides.timelinefixed', $favouriteId, PROFILE_TYPE_INT); } } if ($page['type'] == PAGE_TYPE_JS || $page['type'] == PAGE_TYPE_HTML_BLOCK) { require_once dirname(__FILE__) . '/include/page_footer.php'; exit; }
$dashboardWidget = new CWidget('dashboard_wdgt'); $dashboardWidget->setClass('header'); $dashboardWidget->addHeader(_('PERSONAL DASHBOARD'), array(new CIcon(_s('Configure (Filter %s)', $dashconf['filterEnable'] ? _('Enabled') : _('Disabled')), $dashconf['filterEnable'] ? 'iconconfig_hl' : 'iconconfig', "document.location = 'dashconf.php';"), SPACE, get_icon('fullscreen', array('fullscreen' => $_REQUEST['fullscreen'])))); // js menu arrays $menu = array(); $submenu = array(); make_graph_menu($menu, $submenu); make_sysmap_menu($menu, $submenu); make_screen_menu($menu, $submenu); make_refresh_menu('mainpage', 'hat_syssum', CProfile::get('web.dashboard.rf_rate.hat_syssum', 60), null, $menu, $submenu); make_refresh_menu('mainpage', 'hat_hoststat', CProfile::get('web.dashboard.rf_rate.hat_hoststat', 60), null, $menu, $submenu); make_refresh_menu('mainpage', 'hat_stszbx', CProfile::get('web.dashboard.rf_rate.hat_stszbx', 60), null, $menu, $submenu); make_refresh_menu('mainpage', 'hat_lastiss', CProfile::get('web.dashboard.rf_rate.hat_lastiss', 60), null, $menu, $submenu); make_refresh_menu('mainpage', 'hat_webovr', CProfile::get('web.dashboard.rf_rate.hat_webovr', 60), null, $menu, $submenu); make_refresh_menu('mainpage', 'hat_dscvry', CProfile::get('web.dashboard.rf_rate.hat_dscvry', 60), null, $menu, $submenu); insert_js('var page_menu=' . zbx_jsvalue($menu) . ";\n" . 'var page_submenu=' . zbx_jsvalue($submenu) . ";\n"); /* * Left column */ $leftColumn = array(); // favorite graphs $graph_menu = get_icon('menu', array('menu' => 'graphs')); $fav_grph = new CUIWidget('hat_favgrph', make_favorite_graphs(), CProfile::get('web.dashboard.hats.hat_favgrph.state', 1)); $fav_grph->setHeader(_('Favourite graphs'), array($graph_menu)); $fav_grph->setFooter(new CLink(_('Graphs') . ' »', 'charts.php', 'highlight'), true); $leftColumn[] = $fav_grph; // favorite screens $screen_menu = get_icon('menu', array('menu' => 'screens')); $fav_scr = new CUIWidget('hat_favscr', make_favorite_screens(), CProfile::get('web.dashboard.hats.hat_favscr.state', 1)); $fav_scr->setHeader(_('Favourite screens'), array($screen_menu)); $fav_scr->setFooter(new CLink(_('Screens') . ' »', 'screens.php', 'highlight'), true);
if (isset($rows['items']) && $rows['items'] > 0) { show_messages(false, null, S_ANOTHER_ITEM_SUM); if (isset($_REQUEST['save'])) { unset($_REQUEST['save']); } $_REQUEST['type'] = GRAPH_ITEM_SIMPLE; } } } if (isset($_REQUEST['save']) && !isset($_REQUEST['gid'])) { $script = "add_graph_item('" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['itemid'] . "','" . $_REQUEST['color'] . "'," . $_REQUEST['drawtype'] . "," . $_REQUEST['sortorder'] . "," . $_REQUEST['yaxisside'] . "," . $_REQUEST['calc_fnc'] . "," . $_REQUEST['type'] . "," . $_REQUEST['periods_cnt'] . ");\n"; insert_js($script); } if (isset($_REQUEST['save']) && isset($_REQUEST['gid'])) { $script = "update_graph_item('" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['list_name'] . "','" . $_REQUEST['gid'] . "','" . $_REQUEST['itemid'] . "','" . $_REQUEST['color'] . "'," . $_REQUEST['drawtype'] . "," . $_REQUEST['sortorder'] . "," . $_REQUEST['yaxisside'] . "," . $_REQUEST['calc_fnc'] . "," . $_REQUEST['type'] . "," . $_REQUEST['periods_cnt'] . ");\n"; insert_js($script); } else { echo SBR; $graphid = get_request("graphid", null); $graphtype = get_request("graphtype", GRAPH_TYPE_NORMAL); $gid = get_request("gid", null); $list_name = get_request("list_name", null); $itemid = get_request("itemid", 0); $color = get_request("color", '009900'); $drawtype = get_request("drawtype", 0); $sortorder = get_request("sortorder", 0); $yaxisside = get_request("yaxisside", 1); $calc_fnc = get_request("calc_fnc", 2); $type = get_request("type", 0); $periods_cnt = get_request("periods_cnt", 5); $only_hostid = get_request("only_hostid", null);
<?php require_once 'include/config.inc.php'; require_once 'include/js.inc.php'; require_once 'include/hosts.inc.php'; require_once 'include/items.inc.php'; require_once 'yandexapi.conf.php'; $page["title"] = $ZabbixYaMap['city']; $page['file'] = basename(__FILE__); $page['scripts'] = array('yamaps_functions_shared.js'); $page['type'] = detect_page_type(PAGE_TYPE_HTML); // Detect YandexMaps Language $page['yaLang'] = YaMapLanguage(CWebUser::$data['lang']); include_once 'include/page_header.php'; include 'include/views/js/configuration.yamaps.js.php'; insert_js("\n\tdocument.write('<select id=\"selectgroup\"></select>');\n\tvar h = jQuery(window).height() - 180;\n\tdocument.write('<div id=\"map\" style=\"width:100%; height:' + h + 'px\"></div>');\n"); ?> <!-- Load YandexMaps JS Classes --> <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=<?php echo $page['yaLang']; ?> " type="text/javascript"></script> <?php insert_js("\n ymaps.ready(function() {\n\t\t//console.log('YandexMaps is starting');\n\t\tYaMap = new ZabbixYaMapRW(" . $ZabbixYaMap['latitude'] . ",\n\t\t\t " . $ZabbixYaMap['longitude'] . ",\n\t\t\t " . $ZabbixYaMap['zoom'] . ",\n\t\t\t '" . $ZabbixYaMap['maptype'] . "',\n\t\t\t '" . $ZabbixYaMap['prioproblem'] . "');\n\t\t//console.log(YaMap);\n\t\tYaMap.init();\n });\n"); require_once 'include/page_footer.php'; ?>
$values = array($dstfld1 => $script[$srcfld1], $dstfld2 => $script[$srcfld2]); $js_action = 'javascript: addValues(' . zbx_jsvalue($dstfrm) . ', ' . zbx_jsvalue($values) . '); close_window(); return false;'; } $description->setAttribute('onclick', $js_action . ' jQuery(this).removeAttr("onclick");'); if ($multiselect) { $description = new CCol(array(new CCheckBox('scripts[' . zbx_jsValue($script[$srcfld1]) . ']', null, null, $script['scriptid']), $description)); } if ($script['type'] == ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT) { switch ($script['execute_on']) { case ZBX_SCRIPT_EXECUTE_ON_AGENT: $scriptExecuteOn = _('Agent'); break; case ZBX_SCRIPT_EXECUTE_ON_SERVER: $scriptExecuteOn = _('Server'); break; } } else { $scriptExecuteOn = ''; } $table->addRow(array($description, $scriptExecuteOn, zbx_nl2br(htmlspecialchars($script['command'], ENT_COMPAT, 'UTF-8')))); } if ($multiselect) { $button = new CButton('select', _('Select'), "javascript: addSelectedValues('scripts', " . zbx_jsvalue($reference) . ');'); $table->setFooter(new CCol($button, 'right')); insert_js('var popupReference = ' . zbx_jsvalue($scripts, true) . ';'); } zbx_add_post_js('chkbxRange.pageGoName = "scripts";'); $form->addItem($table); $form->show(); } require_once dirname(__FILE__) . '/include/page_footer.php';
public function preload() { $id = $this->getAttribute('id'); if (empty($id)) { $id = 'img' . uniqid(); $this->setAttribute('id', $id); } insert_js('jQuery(' . CJs::encodeJson($this->toString()) . ').load(function() { var parent = jQuery("#' . $id . 'preloader").parent(); jQuery("#' . $id . 'preloader").remove(); jQuery(parent).append(jQuery(this)); });', true); $this->addClass('preloader'); $this->setAttribute('id', $id . 'preloader'); $this->setAttribute('src', 'styles/themes/' . getUserTheme(CWebUser::$data) . '/images/preloader.gif'); }
/** * Clear page cookies on action. * * @param bool $clear * @param string $id parent id, is used as cookie prefix */ function clearCookies($clear = false, $id = null) { if ($clear) { insert_js('cookie.eraseArray("' . basename($_SERVER['SCRIPT_NAME'], '.php') . ($id ? '_' . $id : '') . '")'); } }
function set_users_jsmenu_array() { $menu_all = array(); $menu_gui_access = array(); $menu_users_status = array(); $res = DBselect('SELECT DISTINCT g.usrgrpid, g.name, g.gui_access, g.users_status' . ' FROM usrgrp g' . ' WHERE ' . DBin_node('g.usrgrpid', get_current_nodeid(false)) . ' ORDER BY g.name'); while ($group = DBfetch($res)) { $group['name'] = htmlspecialchars($group['name']); $gui_access = $group['gui_access']; $users_status = $group['users_status']; unset($group['gui_access']); unset($group['users_status']); $menu_all[] = $group; if ($gui_access != GROUP_GUI_ACCESS_SYSTEM) { $menu_gui_access[] = $group; } if ($users_status == GROUP_STATUS_DISABLED) { $menu_users_status[] = $group; } } insert_js('var menu_usrgrp_all=' . zbx_jsvalue($menu_all) . ";\n" . 'var menu_usrgrp_gui=' . zbx_jsvalue($menu_gui_access) . ";\n" . 'var menu_usrgrp_status=' . zbx_jsvalue($menu_users_status) . ";\n"); }
foreach ($shows as $showid) { $go_result &= delete_slideshow($showid); if (!$go_result) { break; } } $go_result = DBend($go_result); if ($go_result) { unset($_REQUEST['form']); } show_messages($go_result, _('Slide show deleted'), _('Cannot delete slide show')); } if ($_REQUEST['go'] != 'none' && !empty($go_result)) { $url = new CUrl(); $path = $url->getPath(); insert_js('cookie.eraseArray(\'' . $path . '\')'); } /* * Display */ if (isset($_REQUEST['form'])) { $data = array('form' => get_request('form', null), 'form_refresh' => get_request('form_refresh', null), 'slideshowid' => get_request('slideshowid', null), 'name' => get_request('name', ''), 'delay' => get_request('delay', ZBX_ITEM_DELAY_DEFAULT), 'slides' => get_request('slides', array())); if (isset($data['slideshowid']) && !isset($_REQUEST['form_refresh'])) { $data['name'] = $dbSlideshow['name']; $data['delay'] = $dbSlideshow['delay']; // get slides $db_slides = DBselect('SELECT s.* FROM slides s WHERE s.slideshowid=' . $data['slideshowid'] . ' ORDER BY s.step'); while ($slide = DBfetch($db_slides)) { $data['slides'][$slide['step']] = array('slideid' => $slide['slideid'], 'screenid' => $slide['screenid'], 'delay' => $slide['delay']); } }
function insert_js_function($fnct_name) { switch ($fnct_name) { case 'add_item_variable': insert_js('function add_item_variable(s_formname,x_value){ if(add_variable(null, "itemid[]", x_value, s_formname, window.opener.document)){ var o_form; if( !(o_form = window.opener.document.forms[s_formname]) ) throw "Missed form with name ["+s_formname+"]."; var element = o_form.elements["itemid"]; if(element) element.name = "itemid[]"; o_form.submit(); } close_window(); return true; }'); break; case 'add_media': insert_js('function add_media(formname,media,mediatypeid,sendto,period,active,severity){ var form = window.opener.document.forms[formname]; var media_name = (media > -1)?"user_medias["+media+"]":"new_media"; if(!form){ close_window(); return false; } window.opener.create_var(form,media_name+"[mediatypeid]",mediatypeid); window.opener.create_var(form,media_name+"[sendto]",sendto); window.opener.create_var(form,media_name+"[period]",period); window.opener.create_var(form,media_name+"[active]",active); window.opener.create_var(form,media_name+"[severity]",severity); form.submit(); close_window(); return true; }'); break; case 'add_graph_item': insert_js('function add_graph_item(formname,itemid,color,drawtype,sortorder,yaxisside,calc_fnc,type,periods_cnt){ var form = window.opener.document.forms[formname]; if(!form){ close_window(); return false; } window.opener.create_var(form,"new_graph_item[itemid]",itemid); window.opener.create_var(form,"new_graph_item[color]",color); window.opener.create_var(form,"new_graph_item[drawtype]",drawtype); window.opener.create_var(form,"new_graph_item[sortorder]",sortorder); window.opener.create_var(form,"new_graph_item[yaxisside]",yaxisside); window.opener.create_var(form,"new_graph_item[calc_fnc]",calc_fnc); window.opener.create_var(form,"new_graph_item[type]",type); window.opener.create_var(form,"new_graph_item[periods_cnt]",periods_cnt); form.submit(); close_window(); return true; }'); break; case 'update_graph_item': insert_js('function update_graph_item(formname,list_name,gid,itemid,color,drawtype,sortorder,yaxisside,calc_fnc,type,periods_cnt){ var form = window.opener.document.forms[formname]; if(!form){ close_window(); return false; } window.opener.create_var(form,list_name + "[" + gid + "][itemid]",itemid); window.opener.create_var(form,list_name + "[" + gid + "][color]",color); window.opener.create_var(form,list_name + "[" + gid + "][drawtype]",drawtype); window.opener.create_var(form,list_name + "[" + gid + "][sortorder]",sortorder); window.opener.create_var(form,list_name + "[" + gid + "][yaxisside]",yaxisside); window.opener.create_var(form,list_name + "[" + gid + "][calc_fnc]",calc_fnc); window.opener.create_var(form,list_name + "[" + gid + "][type]",type); window.opener.create_var(form,list_name + "[" + gid + "][periods_cnt]",periods_cnt); form.submit(); close_window(); return true; }'); break; case 'add_bitem': insert_js('function add_bitem(formname,caption,itemid,color,calc_fnc,axisside){ var form = window.opener.document.forms[formname]; if(!form){ close_window(); return false; } window.opener.create_var(form,"new_graph_item[caption]",caption); window.opener.create_var(form,"new_graph_item[itemid]",itemid); window.opener.create_var(form,"new_graph_item[color]",color); window.opener.create_var(form,"new_graph_item[calc_fnc]",calc_fnc); window.opener.create_var(form,"new_graph_item[axisside]",axisside); form.submit(); close_window(); return true; }'); break; case 'update_bitem': insert_js('function update_bitem(formname,list_name,gid,caption,itemid,color,calc_fnc,axisside){ var form = window.opener.document.forms[formname]; if(!form){ close_window(); return false; } window.opener.create_var(form,list_name + "[" + gid + "][caption]",caption); window.opener.create_var(form,list_name + "[" + gid + "][itemid]",itemid); window.opener.create_var(form,list_name + "[" + gid + "][color]",color); window.opener.create_var(form,list_name + "[" + gid + "][calc_fnc]",calc_fnc); window.opener.create_var(form,list_name + "[" + gid + "][axisside]",axisside); form.submit(); close_window(); return true; }'); break; case 'add_period': insert_js('function add_period(formname,caption,since,till,color){ var form = window.opener.document.forms[formname]; if(!form){ close_window(); return false; } window.opener.create_var(form,"new_period[caption]",caption); window.opener.create_var(form,"new_period[report_timesince]",since); window.opener.create_var(form,"new_period[report_timetill]",till); window.opener.create_var(form,"new_period[color]",color); form.submit(); close_window(); return true; }'); break; case 'update_period': insert_js('function update_period(pid, formname,caption,since,till,color){ var form = window.opener.document.forms[formname]; if(!form){ close_window(); return false; } window.opener.create_var(form,"periods["+pid+"][caption]",caption); window.opener.create_var(form,"periods["+pid+"][report_timesince]",since); window.opener.create_var(form,"periods["+pid+"][report_timetill]",till); window.opener.create_var(form,"periods["+pid+"][color]",color); form.submit(); close_window(); return true; }'); break; case 'add_selected_values': insert_js(' function add_selected_values(objname, formname, dstfld, dstact, value) { value = typeof(value) != "undefined" ? value : null; dstact = ((typeof(dstact) != "undefined") && dstact) ? dstact : null; var parent_document = window.opener.document; if(!parent_document) return close_window(); if(is_null(value)) { $(objname).getInputs("checkbox").each( function(e){ if(e.checked && e.name != "check"){ add_variable("input", dstfld, e.value, formname, parent_document); } }); } else { add_variable("input", dstfld, value, formname, parent_document); } if(dstact) add_variable("input", dstact, 1, formname, parent_document); parent_document.forms[formname].submit(); close_window(); }'); break; case 'add_value': insert_js(' function add_value(dstfld1, dstfld2, value1, value2) { var parent_document = window.opener.document; if(!parent_document) return close_window(); parent_document.getElementById(dstfld1).value = value1; parent_document.getElementById(dstfld2).value = value2; close_window(); }'); break; case 'check_all': insert_js(' function check_all(objname, value) { $(objname).getInputs("checkbox").each(function(e){ e.checked = value }); }'); break; default: break; } }
$itemsTable->setHeader(array(new CCol(SPACE, null, null, 15), new CCol(SPACE, null, null, 15), new CCol(_('Name'), null, null, $this->data['graphtype'] == GRAPH_TYPE_NORMAL ? 280 : 360), $this->data['graphtype'] == GRAPH_TYPE_PIE || $this->data['graphtype'] == GRAPH_TYPE_EXPLODED ? new CCol(_('Type'), null, null, 80) : null, new CCol(_('Function'), null, null, 80), $this->data['graphtype'] == GRAPH_TYPE_NORMAL ? new CCol(_('Draw style'), 'nowrap', null, 80) : null, $this->data['graphtype'] == GRAPH_TYPE_NORMAL || $this->data['graphtype'] == GRAPH_TYPE_STACKED ? new CCol(_('Y axis side'), 'nowrap', null, 80) : null, new CCol(_('Colour'), null, null, 100), new CCol(_('Action'), null, null, 50))); $addButton = new CButton('add_item', _('Add'), 'return PopUp("popup.php?writeonly=1&multiselect=1&dstfrm=' . $graphForm->getName() . ($this->data['normal_only'] ? '&normal_only=1' : '') . '&srctbl=items&srcfld1=itemid&srcfld2=name&numeric=1" + getOnlyHostParam(), 800, 600);', 'link_menu'); $addPrototypeButton = null; if ($this->data['parent_discoveryid']) { $addPrototypeButton = new CButton('add_protoitem', _('Add prototype'), 'return PopUp("popup.php?writeonly=1&multiselect=1&dstfrm=' . $graphForm->getName() . url_param($this->data['graphtype'], false, 'graphtype') . url_param('parent_discoveryid') . ($this->data['normal_only'] ? '&normal_only=1' : '') . '&srctbl=item_prototypes&srcfld1=itemid&srcfld2=name&numeric=1", 800, 600);', 'link_menu'); } $itemsTable->addRow(new CRow(new CCol(array($addButton, SPACE, SPACE, SPACE, $addPrototypeButton), null, 8), null, 'itemButtonsRow')); foreach ($this->data['items'] as $n => $item) { $name = $item['host'] . NAME_DELIMITER . $item['name_expanded']; if (zbx_empty($item['drawtype'])) { $item['drawtype'] = 0; } if (zbx_empty($item['yaxisside'])) { $item['yaxisside'] = 0; } insert_js('loadItem(' . $n . ', ' . CJs::encodeJson($item['gitemid']) . ', ' . $this->data['graphid'] . ', ' . $item['itemid'] . ', ' . CJs::encodeJson($name) . ', ' . $item['type'] . ', ' . $item['calc_fnc'] . ', ' . $item['drawtype'] . ', ' . $item['yaxisside'] . ', \'' . $item['color'] . '\', ' . $item['flags'] . ');', true); } $graphFormList->addRow(_('Items'), new CDiv($itemsTable, 'objectgroup inlineblock border_dotted ui-corner-all')); // append tabs to form $graphTab = new CTabView(); if (!$this->data['form_refresh']) { $graphTab->setSelected(0); } $graphTab->addTab('graphTab', empty($this->data['parent_discoveryid']) ? _('Graph') : _('Graph prototype'), $graphFormList); /* * Preview tab */ $chartImage = new CImg('chart3.php?period=3600'); $chartImage->preload(); $graphPreviewTable = new CTable(null, 'center maxwidth'); $graphPreviewTable->addRow(new CDiv($chartImage, null, 'previewChar'));
$grouplist = array(); $options = array('nodeids' => $nodeids, 'output' => API_OUTPUT_EXTEND); $groups = CHostGroup::get($options); foreach ($groups as $gnum => $row) { $groups[$gnum]['nodename'] = get_node_name_by_elid($row['groupid'], true, ':') . $row['name']; if ($nodeid == 0) { $groups[$gnum]['name'] = $groups[$gnum]['nodename']; } } order_result($groups, 'name'); foreach ($groups as $gnum => $row) { $grouplist[$count] = array('groupid' => $row['groupid'], 'name' => $row['nodename'], 'permission' => $permission); $table->addRow(new CCol(array(new CCheckBox('groups[' . $count . ']', NULL, NULL, $count), $row['name']))); $count++; } insert_js('var grouplist = ' . zbx_jsvalue($grouplist) . ';'); $button = new CButton('select', S_SELECT, 'add_groups("' . $dstfrm . '")'); $button->setType('button'); $table->setFooter(new CCol($button, 'right')); $form->addItem($table); $form->show(); ?> <script language="JavaScript" type="text/javascript"> <!-- function add_groups(formname) { var parent_document = window.opener.document; if(!parent_document) return close_window(); $('groups').getInputs("checkbox").each( function(box){
} } } if (hasRequest('stepid')) { $followRedirects = getRequest('follow_redirects', HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF); $retrieveMode = getRequest('retrieve_mode', HTTPTEST_STEP_RETRIEVE_MODE_CONTENT); } else { $followRedirects = HTTPTEST_STEP_FOLLOW_REDIRECTS_ON; $retrieveMode = HTTPTEST_STEP_RETRIEVE_MODE_CONTENT; } if ((hasRequest('add') || hasRequest('update')) && $result) { $httpStepForJs = ['stepid' => getRequest('stepid'), 'name' => getRequest('name'), 'timeout' => getRequest('timeout'), 'url' => getRequest('url'), 'posts' => getRequest('posts'), 'variables' => getRequest('variables'), 'required' => getRequest('required'), 'status_codes' => getRequest('status_codes'), 'headers' => getRequest('headers'), 'follow_redirects' => getRequest('follow_redirects', HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF), 'retrieve_mode' => getRequest('retrieve_mode', HTTPTEST_STEP_RETRIEVE_MODE_CONTENT)]; if (!hasRequest('stepid')) { insert_js('add_httpstep(' . CJs::encodeJson(getRequest('dstfrm')) . ',' . CJs::encodeJson($httpStepForJs) . ');' . "\n"); } else { insert_js('update_httpstep(' . CJs::encodeJson(getRequest('dstfrm')) . ',' . CJs::encodeJson(getRequest('list_name')) . ',' . CJs::encodeJson($httpStepForJs) . ');' . "\n"); } } else { $httpPopupForm = (new CForm())->addVar('dstfrm', getRequest('dstfrm'))->addVar('stepid', getRequest('stepid'))->addVar('list_name', getRequest('list_name'))->addVar('templated', getRequest('templated'))->addVar('old_name', getRequest('old_name'))->addVar('steps_names', getRequest('steps_names')); $httpPopupFormList = (new CFormList())->addRow(_('Name'), (new CTextBox('name', getRequest('name', ''), (bool) getRequest('templated'), 64))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow(_('URL'), (new CTextBox('url', getRequest('url', ''), false, null))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow(_('Post'), (new CTextArea('posts', getRequest('posts', '')))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow(_('Variables'), (new CTextArea('variables', getRequest('variables', '')))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow(_('Headers'), (new CTextArea('headers', getRequest('headers', '')))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow(_('Follow redirects'), (new CCheckBox('follow_redirects'))->setChecked($followRedirects == 1))->addRow(_('Retrieve only headers'), (new CCheckBox('retrieve_mode'))->setChecked($retrieveMode == 1))->addRow(_('Timeout'), (new CNumericBox('timeout', getRequest('timeout', 15), 5))->setWidth(ZBX_TEXTAREA_NUMERIC_STANDARD_WIDTH))->addRow(_('Required string'), (new CTextBox('required', getRequest('required', '')))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow(_('Required status codes'), (new CTextBox('status_codes', getRequest('status_codes', '')))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)); // append tabs to form $httpPopupTab = new CTabView(); $httpPopupTab->addTab('scenarioStepTab', _('Step of web scenario'), $httpPopupFormList); // append buttons to form if (hasRequest('stepid')) { $httpPopupTab->setFooter(makeFormFooter(new CSubmit('update', _('Update')), [new CButtonCancel(null, 'close_window();')])); } else { $httpPopupTab->setFooter(makeFormFooter(new CSubmit('add', _('Add')), [new CButtonCancel(null, 'close_window();')])); } $httpPopupForm->addItem($httpPopupTab); $httpPopupWidget->addItem($httpPopupForm);
/** * Clears table rows selection's cookies. * * @param string $id parent id, is used as cookie suffix */ function uncheckTableRows($cookieId = null) { insert_js('cookie.eraseArray("cb_' . basename($_SERVER['SCRIPT_NAME'], '.php') . ($cookieId ? '_' . $cookieId : '') . '")'); }
/** * Rotate table header text vertical. * Cells must be marked with "vertical_rotation" class. */ public function makeVerticalRotation() { if (!defined('IS_VERTICAL_ROTATION_JS_INSERTED')) { define('IS_VERTICAL_ROTATION_JS_INSERTED', true); insert_js('jQuery(function($) { $.fn.makeVerticalRotation = function () { var cellsToRotate = $(".vertical_rotation", this), betterCells = []; // insert spans cellsToRotate.each(function () { var cell = $(this); var text = $("<span>", { text: $.escapeHtml(cell.text()) }); if (IE) { text.css({"font-family": "monospace"}); } cell.text("").append(text); }); // rotate cells cellsToRotate.each(function () { var cell = $(this), span = cell.children(), height = cell.height(), width = span.width(), transform = (width / 2) + "px " + (width / 2) + "px"; var css = { "transform-origin": transform, "-webkit-transform-origin": transform, "-moz-transform-origin": transform, "-o-transform-origin": transform }; if (IE) { css["font-family"] = "monospace"; css["-ms-transform-origin"] = "50% 50%"; } if (IE9) { css["-ms-transform-origin"] = transform; } var divInner = $("<div>", { "class": "vertical_rotation_inner" }) .css(css) .append(span.text()); var div = $("<div>", { height: width, width: height }) .append(divInner); betterCells.push(div); }); cellsToRotate.each(function (i) { $(this).html(betterCells[i]); }); // align text to cell center cellsToRotate.each(function () { var cell = $(this), width = cell.width(); if (width > 30) { cell.children().css({ position: "relative", left: width / 2 - 12 }); } }); }; }); jQuery(document).ready(function() { jQuery(".' . $this->getAttribute('class') . '").makeVerticalRotation(); if (IE8) { jQuery(".vertical_rotation_inner").css({ filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)" }); } else if (IE9) { jQuery(".vertical_rotation_inner").css({ "-ms-transform": "rotate(270deg)" }); } if (!IE9) { jQuery(".vertical_rotation_inner").css({ "writing-mode": "tb-rl" }); } });', true); } }
include_once 'include/page_header.php'; // VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields = array('dstfrm' => array(T_ZBX_STR, O_MAND, P_SYS, NOT_EMPTY, null), 'config' => array(T_ZBX_INT, O_OPT, P_SYS, IN('0,1,2,3'), NULL), 'gid' => array(T_ZBX_INT, O_OPT, P_SYS, BETWEEN(0, 65535), null), 'list_name' => array(T_ZBX_STR, O_OPT, P_SYS, NOT_EMPTY, 'isset({save})&&isset({gid})'), 'caption' => array(T_ZBX_STR, O_OPT, null, null, null), 'itemid' => array(T_ZBX_INT, O_OPT, null, DB_ID . '({}!=0)', 'isset({save})'), 'color' => array(T_ZBX_CLR, O_OPT, null, null, 'isset({save})'), 'calc_fnc' => array(T_ZBX_INT, O_OPT, null, IN('0,1,2,4,7,9'), 'isset({save})'), 'axisside' => array(T_ZBX_INT, O_OPT, null, IN(GRAPH_YAXIS_SIDE_LEFT . ',' . GRAPH_YAXIS_SIDE_RIGHT), null), 'add' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'save' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'form' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form_refresh' => array(T_ZBX_STR, O_OPT, null, null, null)); check_fields($fields); $_REQUEST['caption'] = get_request('caption', ''); $_REQUEST['axisside'] = get_request('axisside', GRAPH_YAXIS_SIDE_LEFT); if (zbx_empty($_REQUEST['caption']) && isset($_REQUEST['itemid']) && $_REQUEST['itemid'] > 0) { $_REQUEST['caption'] = item_description(get_item_by_itemid($_REQUEST['itemid'])); } insert_js_function('add_bitem'); insert_js_function('update_bitem'); if (isset($_REQUEST['save']) && !isset($_REQUEST['gid'])) { insert_js("add_bitem('" . $_REQUEST['dstfrm'] . "'," . zbx_jsvalue($_REQUEST['caption']) . ",'" . $_REQUEST['itemid'] . "','" . $_REQUEST['color'] . "'," . $_REQUEST['calc_fnc'] . "," . $_REQUEST['axisside'] . ");\n"); } if (isset($_REQUEST['save']) && isset($_REQUEST['gid'])) { insert_js("update_bitem('" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['list_name'] . "','" . $_REQUEST['gid'] . "'," . zbx_jsvalue($_REQUEST['caption']) . ",'" . $_REQUEST['itemid'] . "','" . $_REQUEST['color'] . "'," . $_REQUEST['calc_fnc'] . "," . $_REQUEST['axisside'] . ");\n"); } else { echo SBR; $frmGItem = new CFormTable(S_NEW_ITEM_FOR_THE_GRAPH); $frmGItem->setName('graph_item'); $frmGItem->setHelp('web.graph.item.php'); $frmGItem->addVar('dstfrm', $_REQUEST['dstfrm']); $config = get_request('config', 1); $gid = get_request('gid', null); $list_name = get_request('list_name', null); $caption = get_request('caption', ''); $itemid = get_request('itemid', 0); $color = get_request('color', '009900'); $calc_fnc = get_request('calc_fnc', 2); $axisside = get_request('axisside', GRAPH_YAXIS_SIDE_LEFT); $description = '';
function insert_js_function($fnct_name) { switch ($fnct_name) { case 'add_item_variable': insert_js(' function add_item_variable(s_formname, x_value) { if (add_variable(null, "itemid[" + x_value + "]", x_value, s_formname, window.opener.document)) { var o_form; if (!(o_form = window.opener.document.forms[s_formname])) { throw "Missing form with name [" + s_formname + "]."; } var element = o_form.elements["itemid"]; if (element) { element.name = "itemid[" + element.value + "]"; } o_form.submit(); } close_window(); return true; }'); break; case 'add_media': insert_js(' function add_media(formname, media, mediatypeid, sendto, period, active, severity) { var form = window.opener.document.forms[formname]; var media_name = (media > -1) ? "user_medias[" + media + "]" : "new_media"; if (!form) { close_window(); return false; } window.opener.create_var(form, media_name + "[mediatypeid]", mediatypeid); window.opener.create_var(form, media_name + "[sendto]", sendto); window.opener.create_var(form, media_name + "[period]", period); window.opener.create_var(form, media_name + "[active]", active); window.opener.create_var(form, media_name + "[severity]", severity); form.submit(); close_window(); return true; }'); break; case 'add_bitem': insert_js(' function add_bitem(formname, caption, itemid, color, calc_fnc, axisside) { var form = window.opener.document.forms[formname]; if (!form) { close_window(); return false; } window.opener.create_var(form, "new_graph_item[caption]", caption); window.opener.create_var(form, "new_graph_item[itemid]", itemid); window.opener.create_var(form, "new_graph_item[color]", color); window.opener.create_var(form, "new_graph_item[calc_fnc]", calc_fnc); window.opener.create_var(form, "new_graph_item[axisside]", axisside); form.submit(); close_window(); return true; }'); break; case 'update_bitem': insert_js(' function update_bitem(formname, list_name, gid, caption, itemid, color, calc_fnc, axisside) { var form = window.opener.document.forms[formname]; if (!form) { close_window(); return false; } window.opener.create_var(form, list_name + "[" + gid + "][caption]", caption); window.opener.create_var(form, list_name + "[" + gid + "][itemid]", itemid); window.opener.create_var(form, list_name + "[" + gid + "][color]", color); window.opener.create_var(form, list_name + "[" + gid + "][calc_fnc]", calc_fnc); window.opener.create_var(form, list_name + "[" + gid + "][axisside]", axisside); form.submit(); close_window(); return true; }'); break; case 'add_period': insert_js(' function add_period(formname, caption, since, till, color) { var form = window.opener.document.forms[formname]; if (!form) { close_window(); return false; } window.opener.create_var(form, "new_period[caption]", caption); window.opener.create_var(form, "new_period[report_timesince]", since); window.opener.create_var(form, "new_period[report_timetill]", till); window.opener.create_var(form, "new_period[color]", color); form.submit(); close_window(); return true; }'); break; case 'update_period': insert_js(' function update_period(pid, formname, caption, since, till, color) { var form = window.opener.document.forms[formname]; if (!form) { close_window(); return false; } window.opener.create_var(form, "periods[" + pid + "][caption]", caption); window.opener.create_var(form, "periods[" + pid + "][report_timesince]", since); window.opener.create_var(form, "periods[" + pid + "][report_timetill]", till); window.opener.create_var(form, "periods[" + pid + "][color]", color); form.submit(); close_window(); return true; }'); break; case 'addSelectedValues': insert_js(' function addSelectedValues(form, object) { form = $(form); if (is_null(form)) { return close_window() }; var parent = window.opener; if (!parent) { return close_window(); } var items = { object: object, values: [] }; var chkBoxes = form.getInputs("checkbox"); for (var i = 0; i < chkBoxes.length; i++) { if (chkBoxes[i].checked && (chkBoxes[i].name.indexOf("all_") < 0)) { var value = {}; if (isset(chkBoxes[i].value, popupReference)) { value = popupReference[chkBoxes[i].value]; } else { value[object] = chkBoxes[i].value; } items["values"].push(value); } } parent.addPopupValues(items); close_window(); }'); break; case 'addValue': insert_js(' function addValue(object, singleValue) { var parent = window.opener; if (!parent) { return close_window(); } var value = {}; if (isset(singleValue, popupReference)) { value = popupReference[singleValue]; } else { value[object] = singleValue; } var items = { object: object, values: [value] }; parent.addPopupValues(items); close_window(); }'); break; case 'addValues': insert_js(' function addValues(frame, values, submitParent) { var parentDocument = window.opener.document; if (!parentDocument) { return close_window(); } var parentDocumentForms = $(parentDocument.body).select("form[name=" + frame + "]"); var submitParent = submitParent || false; var frmStorage = null; for (var key in values) { if (is_null(values[key])) { continue; } if (parentDocumentForms.length > 0) { frmStorage = jQuery(parentDocumentForms[0]).find("#" + key).get(0); } if (typeof(frmStorage) == "undefined" || is_null(frmStorage)) { frmStorage = parentDocument.getElementById(key); } if (jQuery(frmStorage).is("span")) { jQuery(frmStorage).html(values[key]); } else { frmStorage.value = values[key]; } } if (!is_null(frmStorage) && submitParent) { frmStorage.form.submit(); } close_window(); }'); break; case 'check_all': insert_js(' function check_all(objname, value) { $(objname).getInputs("checkbox").each(function(e) { e.checked = value; }); }'); break; case 'removeSelectedItems': insert_js(' function removeSelectedItems(formobject, name) { formobject = $(formobject); if (is_null(formobject)) { return false; } for (var i = 0; i < formobject.options.length; i++) { if (!isset(i, formobject.options)) { continue; } if (formobject.options[i].selected) { var obj = $(name + "_" + formobject.options[i].value); if (!is_null(obj)) { obj.remove(); } } } } '); break; default: insert_js('throw("JS function not found [' . $fnct_name . ']");'); break; } }
if (isset($_REQUEST['save'])) { $result = true; if ((!isset($_REQUEST['stepid']) || isset($_REQUEST['stepid']) && $_REQUEST['name'] !== $_REQUEST['old_name']) && isset($_REQUEST['steps_names'])) { foreach ($_REQUEST['steps_names'] as $name) { if ($name === $_REQUEST['name']) { show_error_message(_s('Step with name "%1$s" already exists.', $name)); $result = false; } } } } if (isset($_REQUEST['save']) && $result) { if (!isset($_REQUEST['stepid'])) { insert_js('add_httpstep(' . zbx_jsvalue($_REQUEST['dstfrm']) . ',' . zbx_jsvalue($_REQUEST['name']) . ',' . zbx_jsvalue($_REQUEST['timeout']) . ',' . zbx_jsvalue($_REQUEST['url']) . ',' . zbx_jsvalue($_REQUEST['posts']) . ',' . zbx_jsvalue($_REQUEST['variables']) . ',' . zbx_jsvalue($_REQUEST['required']) . ',' . zbx_jsvalue($_REQUEST['status_codes']) . ");\n"); } else { insert_js('update_httpstep(' . zbx_jsvalue($_REQUEST['dstfrm']) . ',' . zbx_jsvalue($_REQUEST['list_name']) . ',' . zbx_jsvalue($_REQUEST['stepid']) . ',' . zbx_jsvalue($_REQUEST['name']) . ',' . zbx_jsvalue($_REQUEST['timeout']) . ',' . zbx_jsvalue($_REQUEST['url']) . ',' . zbx_jsvalue($_REQUEST['posts']) . ',' . zbx_jsvalue($_REQUEST['variables']) . ',' . zbx_jsvalue($_REQUEST['required']) . ',' . zbx_jsvalue($_REQUEST['status_codes']) . ");\n"); } } else { $httpPopupForm = new CForm(); $httpPopupForm->addVar('dstfrm', get_request('dstfrm', null)); $httpPopupForm->addVar('stepid', get_request('stepid', null)); $httpPopupForm->addVar('list_name', get_request('list_name', null)); $httpPopupForm->addVar('templated', get_request('templated', null)); $httpPopupForm->addVar('old_name', get_request('old_name', null)); $httpPopupForm->addVar('steps_names', get_request('steps_names', null)); $httpPopupFormList = new CFormList('httpPopupFormList'); $httpPopupFormList->addRow(_('Name'), new CTextBox('name', get_request('name', ''), ZBX_TEXTBOX_STANDARD_SIZE, get_request('templated', null), 64)); $httpPopupFormList->addRow(_('URL'), new CTextBox('url', get_request('url', ''), ZBX_TEXTBOX_STANDARD_SIZE)); $httpPopupFormList->addRow(_('Post'), new CTextArea('posts', get_request('posts', ''))); $httpPopupFormList->addRow(_('Variables'), new CTextArea('variables', get_request('variables', ''))); $httpPopupFormList->addRow(_('Timeout'), new CNumericBox('timeout', get_request('timeout', 15), 5));
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $this->dataId = 'graph_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $resourceId = isset($this->screenitem['real_resourceid']) ? $this->screenitem['real_resourceid'] : $this->screenitem['resourceid']; $containerId = 'graph_container_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $graphDims = getGraphDims($resourceId); $graphDims['graphHeight'] = $this->screenitem['height']; $graphDims['width'] = $this->screenitem['width']; $graph = getGraphByGraphId($resourceId); $graphId = $graph['graphid']; $legend = $graph['show_legend']; $graph3d = $graph['show_3d']; if ($this->screenitem['dynamic'] == SCREEN_DYNAMIC_ITEM && $this->hostid) { // get host $hosts = API::Host()->get(['hostids' => $this->hostid, 'output' => ['hostid', 'name']]); $host = reset($hosts); // get graph $graph = API::Graph()->get(['graphids' => $resourceId, 'output' => API_OUTPUT_EXTEND, 'selectHosts' => ['hostid'], 'selectGraphItems' => API_OUTPUT_EXTEND]); $graph = reset($graph); // if items from one host we change them, or set calculated if not exist on that host if (count($graph['hosts']) == 1) { if ($graph['ymax_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE && $graph['ymax_itemid']) { $newDynamic = getSameGraphItemsForHost([['itemid' => $graph['ymax_itemid']]], $this->hostid, false); $newDynamic = reset($newDynamic); if (isset($newDynamic['itemid']) && $newDynamic['itemid'] > 0) { $graph['ymax_itemid'] = $newDynamic['itemid']; } else { $graph['ymax_type'] = GRAPH_YAXIS_TYPE_CALCULATED; } } if ($graph['ymin_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE && $graph['ymin_itemid']) { $newDynamic = getSameGraphItemsForHost([['itemid' => $graph['ymin_itemid']]], $this->hostid, false); $newDynamic = reset($newDynamic); if (isset($newDynamic['itemid']) && $newDynamic['itemid'] > 0) { $graph['ymin_itemid'] = $newDynamic['itemid']; } else { $graph['ymin_type'] = GRAPH_YAXIS_TYPE_CALCULATED; } } } // get url $this->screenitem['url'] = $graph['graphtype'] == GRAPH_TYPE_PIE || $graph['graphtype'] == GRAPH_TYPE_EXPLODED ? 'chart7.php' : 'chart3.php'; $this->screenitem['url'] = new CUrl($this->screenitem['url']); foreach ($graph as $name => $value) { if ($name == 'width' || $name == 'height') { continue; } $this->screenitem['url']->setArgument($name, $value); } $newGraphItems = getSameGraphItemsForHost($graph['gitems'], $this->hostid, false); foreach ($newGraphItems as $newGraphItem) { unset($newGraphItem['gitemid'], $newGraphItem['graphid']); foreach ($newGraphItem as $name => $value) { $this->screenitem['url']->setArgument('items[' . $newGraphItem['itemid'] . '][' . $name . ']', $value); } } $this->screenitem['url']->setArgument('name', $host['name'] . NAME_DELIMITER . $graph['name']); $this->screenitem['url'] = $this->screenitem['url']->getUrl(); } // get time control $timeControlData = ['id' => $this->getDataId(), 'containerid' => $containerId, 'objDims' => $graphDims, 'loadSBox' => 0, 'loadImage' => 1, 'periodFixed' => CProfile::get('web.screens.timelinefixed', 1), 'sliderMaximumTimePeriod' => ZBX_MAX_PERIOD]; $isDefault = false; if ($graphDims['graphtype'] == GRAPH_TYPE_PIE || $graphDims['graphtype'] == GRAPH_TYPE_EXPLODED) { if ($this->screenitem['dynamic'] == SCREEN_SIMPLE_ITEM || $this->screenitem['url'] === '') { $this->screenitem['url'] = 'chart6.php?graphid=' . $resourceId . '&screenid=' . $this->screenitem['screenid']; $isDefault = true; } $this->timeline['starttime'] = date(TIMESTAMP_FORMAT, get_min_itemclock_by_graphid($resourceId)); $timeControlData['src'] = $this->screenitem['url'] . '&width=' . $this->screenitem['width'] . '&height=' . $this->screenitem['height'] . '&legend=' . $legend . '&graph3d=' . $graph3d . $this->getProfileUrlParams(); $timeControlData['src'] .= $this->mode == SCREEN_MODE_EDIT ? '&period=3600&stime=' . date(TIMESTAMP_FORMAT, time()) : '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']; } else { if ($this->screenitem['dynamic'] == SCREEN_SIMPLE_ITEM || $this->screenitem['url'] === '') { $this->screenitem['url'] = 'chart2.php?graphid=' . $resourceId . '&screenid=' . $this->screenitem['screenid']; $isDefault = true; } if ($this->mode != SCREEN_MODE_EDIT && $graphId) { if ($this->mode == SCREEN_MODE_PREVIEW) { $timeControlData['loadSBox'] = 1; } } $timeControlData['src'] = $this->screenitem['url'] . '&width=' . $this->screenitem['width'] . '&height=' . $this->screenitem['height'] . '&legend=' . $legend . $this->getProfileUrlParams(); $timeControlData['src'] .= $this->mode == SCREEN_MODE_EDIT ? '&period=3600&stime=' . date(TIMESTAMP_FORMAT, time()) : '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']; } // output if ($this->mode == SCREEN_MODE_JS) { return 'timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ')'; } else { if ($this->mode == SCREEN_MODE_SLIDESHOW) { insert_js('timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ');'); } if ($this->mode == SCREEN_MODE_EDIT || $this->mode == SCREEN_MODE_SLIDESHOW || !$isDefault) { $item = new CDiv(); } elseif ($this->mode == SCREEN_MODE_PREVIEW) { $item = new CLink(null, 'charts.php?graphid=' . $resourceId . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']); } $item->setId($containerId); return $this->getOutput($item); } }
$_REQUEST['show_events'] = get_request('show_events', CProfile::get('web.tr_status.filter.show_events', EVENTS_OPTION_NOEVENT)); $_REQUEST['ack_status'] = get_request('ack_status', CProfile::get('web.tr_status.filter.ack_status', ZBX_ACK_STS_ANY)); $_REQUEST['show_severity'] = get_request('show_severity', CProfile::get('web.tr_status.filter.show_severity', -1)); $_REQUEST['status_change_days'] = get_request('status_change_days', CProfile::get('web.tr_status.filter.status_change_days', 14)); $_REQUEST['txt_select'] = get_request('txt_select', CProfile::get('web.tr_status.filter.txt_select', '')); if (EVENT_ACK_DISABLED == $config['event_ack_enable']) { if (!str_in_array($_REQUEST['show_events'], array(EVENTS_OPTION_NOEVENT, EVENTS_OPTION_ALL))) { $_REQUEST['show_events'] = EVENTS_OPTION_NOEVENT; } $_REQUEST['ack_status'] = ZBX_ACK_STS_ANY; } } if (get_request('show_events') != CProfile::get('web.tr_status.filter.show_events')) { $url = new CUrl(); $path = $url->getPath(); insert_js('cookie.eraseArray("' . $path . '")'); } //-- if (isset($_REQUEST['filter_set']) || isset($_REQUEST['filter_rst'])) { CProfile::update('web.tr_status.filter.show_details', $_REQUEST['show_details'], PROFILE_TYPE_INT); CProfile::update('web.tr_status.filter.show_events', $_REQUEST['show_events'], PROFILE_TYPE_INT); CProfile::update('web.tr_status.filter.ack_status', $_REQUEST['ack_status'], PROFILE_TYPE_INT); CProfile::update('web.tr_status.filter.show_severity', $_REQUEST['show_severity'], PROFILE_TYPE_INT); CProfile::update('web.tr_status.filter.txt_select', $_REQUEST['txt_select'], PROFILE_TYPE_STR); CProfile::update('web.tr_status.filter.status_change', $_REQUEST['status_change'], PROFILE_TYPE_INT); CProfile::update('web.tr_status.filter.status_change_days', $_REQUEST['status_change_days'], PROFILE_TYPE_INT); } $show_triggers = $_REQUEST['show_triggers']; $show_events = $_REQUEST['show_events']; $show_severity = $_REQUEST['show_severity']; $ack_status = $_REQUEST['ack_status'];
// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields = array('dstfrm' => array(T_ZBX_STR, O_MAND, P_SYS, NOT_EMPTY, null), 'config' => array(T_ZBX_INT, O_OPT, P_SYS, IN('0,1,2,3'), NULL), 'period_id' => array(T_ZBX_INT, O_OPT, null, null, null), 'caption' => array(T_ZBX_STR, O_OPT, null, null, null), 'report_timesince' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), 'report_timetill' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), 'color' => array(T_ZBX_CLR, O_OPT, null, null, 'isset({save})'), 'save' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'form' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form_refresh' => array(T_ZBX_STR, O_OPT, null, null, null)); check_fields($fields); insert_js_function('add_period'); insert_js_function('update_period'); $_REQUEST['report_timesince'] = zbxDateToTime(get_request('report_timesince', date('YmdHis', time() - SEC_PER_DAY))); $_REQUEST['report_timetill'] = zbxDateToTime(get_request('report_timetill', date('YmdHis'))); $_REQUEST['caption'] = get_request('caption', ''); if (zbx_empty($_REQUEST['caption']) && isset($_REQUEST['report_timesince']) && isset($_REQUEST['report_timetill'])) { $_REQUEST['caption'] = zbx_date2str(POPUP_PERIOD_CAPTION_DATE_FORMAT, $_REQUEST['report_timesince']) . ' - ' . zbx_date2str(POPUP_PERIOD_CAPTION_DATE_FORMAT, $_REQUEST['report_timetill']); } if (isset($_REQUEST['save'])) { if (isset($_REQUEST['period_id'])) { insert_js("update_period('" . $_REQUEST['period_id'] . "'," . zbx_jsvalue($_REQUEST['dstfrm']) . "," . zbx_jsvalue($_REQUEST['caption']) . ",'" . $_REQUEST['report_timesince'] . "','" . $_REQUEST['report_timetill'] . "','" . $_REQUEST['color'] . "');\n"); } else { insert_js("add_period(" . zbx_jsvalue($_REQUEST['dstfrm']) . "," . zbx_jsvalue($_REQUEST['caption']) . ",'" . $_REQUEST['report_timesince'] . "','" . $_REQUEST['report_timetill'] . "','" . $_REQUEST['color'] . "');\n"); } } else { echo SBR; $frmPd = new CFormTable(_('Period')); $frmPd->setName('period'); $frmPd->addVar('dstfrm', $_REQUEST['dstfrm']); $config = get_request('config', 1); $caption = get_request('caption', ''); $color = get_request('color', '009900'); $report_timesince = get_request('report_timesince', time() - SEC_PER_DAY); $report_timetill = get_request('report_timetill', time()); $frmPd->addVar('config', $config); $frmPd->addVar('report_timesince', date('YmdHis', $report_timesince)); $frmPd->addVar('report_timetill', date('YmdHis', $report_timetill)); if (isset($_REQUEST['period_id'])) {
} $sub_menu_item = new CLink($sub_page['menu_text'], $sub_page['menu_url'], $sub_page['class'] . ' nowrap'); if ($sub_page['selected']) { $sub_menu_item = new CSpan($sub_menu_item, 'active nowrap'); } $sub_menu_row[] = $sub_menu_item; $sub_menu_row[] = new CSpan(SPACE . ' | ' . SPACE, 'divider'); } $sub_menu_div = new CDiv($sub_menu_row); $sub_menu_div->setAttribute('id', 'sub_' . $label); $sub_menu_div->addAction('onmouseover', 'javascript: MMenu.submenu_mouseOver();'); $sub_menu_div->addAction('onmouseout', 'javascript: MMenu.mouseOut();'); if (isset($page['menu']) && $page['menu'] == $label) { $menu_selected = true; $sub_menu_div->setAttribute('style', 'display: block;'); insert_js('MMenu.def_label = ' . zbx_jsvalue($label)); } else { $sub_menu_div->setAttribute('style', 'display: none;'); } $menu_divs[] = $sub_menu_div; } $sub_menu_div = new CDiv(SPACE); $sub_menu_div->setAttribute('id', 'sub_empty'); $sub_menu_div->setAttribute('style', 'display: ' . ($menu_selected ? 'none;' : 'block;')); $menu_divs[] = $sub_menu_div; $search_form = new CForm('search.php'); $search_form->setMethod('get'); $search_form->setAttribute('class', 'thin'); $search_form->addItem(new CDiv(array(S_SEARCH_BIG . ': ', new CTextBox('search', '', 15)))); $search_div = new CDiv($search_form); $search_div->setAttribute('id', 'zbx_search');
public function setMaxlength($maxlength) { $this->attr('maxlength', $maxlength); if (!defined('IS_TEXTAREA_MAXLENGTH_JS_INSERTED')) { define('IS_TEXTAREA_MAXLENGTH_JS_INSERTED', true); // firefox and google chrome has own implementation of maxlength validation on textarea insert_js(' if (!CR && !GK) { jQuery("textarea[maxlength]").bind("paste contextmenu change keydown keypress keyup", function() { var elem = jQuery(this); if (elem.val().length > elem.attr("maxlength")) { elem.val(elem.val().substr(0, elem.attr("maxlength"))); } }); }', true); } }