示例#1
0
 /**
  * 响应生成refund
  */
 public function refund()
 {
     $r = $this->input->get('r');
     //响应列表页
     if ($r == 'index') {
         CView::show('admin/pay/refund');
         return;
     }
     //生成退款订单
     if ($r == 'gen') {
         $return = $this->_modelPay->newRefund();
         $repArr = array(0, 'successful');
         if ($return <= 0) {
             $repArr = array(1000, 'fail');
         }
         CAjax::show($repArr[0], $repArr[1]);
     }
     //退款列表
     if ($r == 'list') {
         $criteria = $this->input->get();
         $page = (int) $this->input->get('page');
         $rows = (int) $this->input->get('rows');
         $list = $this->_modelPay->refunds($page, $rows, $criteria);
         echo json_encode($list);
     }
     //执行退款
     if ($r == 'do') {
         $id = $this->input->post('id');
         $return = $this->_modelPay->doRefund($id);
         CAjax::show(0, 'successful');
     }
 }
示例#2
0
 public function index()
 {
     if (REQUEST_METHOD == 'POST') {
         $return = $this->login();
         //用户登录
         $repArr = array(-1, 'fail');
         if ($return === true) {
             $repArr = array(0, 'successful');
         }
         CAjax::show($repArr[0], $repArr[1]);
     } else {
         CView::show('admin/login');
     }
 }
示例#3
0
 /**
  * 注册院校专业
  */
 protected function regMajor()
 {
     if (REQUEST_METHOD == 'POST') {
         $academy = $this->input->post('academy', true);
         $major = $this->input->post('major', true);
         $this->setSession('academy', $academy);
         $this->setSession('major', $major);
         //保存注册
         $return = $this->regSave();
         CAjax::result($return);
     } else {
         CView::show('register/reg_gender');
     }
 }
示例#4
0
 /**
  * 新增故事
  */
 public function append()
 {
     if (REQUEST_METHOD == 'POST') {
         $content = $this->input->post('content');
         if (strlen($content) <= 0) {
             return false;
         }
         $return = $this->_modelStory->append($this->_user->id, $content);
         $show['view'] = 'message/error';
         $show['message'] = array('code' => -1, 'content' => '故事提交失败');
         if ($return === true) {
             $show['view'] = 'message/info';
             $show['message'] = array('code' => 0, 'content' => '故事提交成功');
         }
         CView::show($show['view'], $show['message']);
     } else {
         CView::show('story/form');
     }
 }
示例#5
0
 /**
  * 编辑订单
  */
 public function edit()
 {
     if (REQUEST_METHOD == 'POST') {
         $data = $this->input->post();
         // 表单输入验证
         /*$validator = $this->validateForm();
           if ($validator->run() == false)
               CAjax::show('1000', '表单输入值不合法,请检查');*/
         $reVal = $this->_modelOrder->editOrder($data);
         $repArr = array('0', 'successful');
         if ($reVal !== true) {
             $repArr = array('1001', 'fail');
         }
         CAjax::show($repArr[0], $repArr[1]);
     } else {
         $id = $this->input->get('id');
         $data['order'] = $this->_modelOrder->getOrder($id);
         CView::show('admin/order/edit', $data);
     }
 }
示例#6
0
            $result = API::User()->updateMedia(array('users' => $user, 'medias' => $user['user_medias']));
        }
        $result = DBend($result);
        if (!$result) {
            error(API::User()->resetErrors());
        }
        if ($result) {
            DBstart();
            add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_USER, 'User alias [' . CWebUser::$data['alias'] . '] Name [' . CWebUser::$data['name'] . ']' . ' Surname [' . CWebUser::$data['surname'] . '] profile id [' . CWebUser::$data['userid'] . ']');
            DBend(true);
            ob_end_clean();
            redirect(CWebUser::$data['last_page']['url']);
        } else {
            show_messages($result, _('User updated'), _('Cannot update user'));
        }
    }
}
ob_end_flush();
/*
 * Display
 */
$data = getUserFormData(CWebUser::$data['userid'], true);
$data['userid'] = CWebUser::$data['userid'];
$data['form'] = getRequest('form');
$data['form_refresh'] = getRequest('form_refresh', 0);
$data['autologout'] = getRequest('autologout');
// render view
$usersView = new CView('administration.users.edit', $data);
$usersView->render();
$usersView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#7
0
                    $haystack = mb_strtolower($data['hosts'][$num]['inventory'][$data['filterField']]);
                    if ($haystack !== $needle) {
                        unset($data['hosts'][$num]);
                    }
                }
            }
            $sort_fields = ['pr_name' => 'name', 'pr_type' => 'type', 'pr_os' => 'os', 'pr_serialno_a' => 'serialno_a', 'pr_tag' => 'tag', 'pr_macaddress_a' => 'macaddress_a'];
            if (array_key_exists($sortField, $sort_fields)) {
                // copying an inventory field into the upper array level for sorting
                foreach ($data['hosts'] as &$host) {
                    $host[$sortField] = $host['inventory'][$sort_fields[$sortField]];
                }
                unset($host);
            }
            $limit = $data['config']['search_limit'] + 1;
            order_result($data['hosts'], $sortField, $sortOrder);
            if ($sortOrder == ZBX_SORT_UP) {
                $data['hosts'] = array_slice($data['hosts'], 0, $limit);
            } else {
                $data['hosts'] = array_slice($data['hosts'], -$limit, $limit);
            }
            order_result($data['hosts'], $sortField, $sortOrder);
        }
    }
    $url = (new CUrl('hostinventories.php'))->setArgument('groupid', $data['pageFilter']->groupid);
    $data['paging'] = getPagingLine($data['hosts'], $sortOrder, $url);
    $hostinventoriesView = new CView('inventory.host.list', $data);
    $hostinventoriesView->render();
    $hostinventoriesView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#8
0
        $db_slides = DBselect('SELECT s.* FROM slides s WHERE s.slideshowid=' . zbx_dbstr($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']);
        }
    }
    // get slides without delay
    $data['slides_without_delay'] = $data['slides'];
    for ($i = 0, $size = count($data['slides_without_delay']); $i < $size; $i++) {
        unset($data['slides_without_delay'][$i]['delay']);
    }
    // render view
    $slideshowView = new CView('configuration.slideconf.edit', $data);
    $slideshowView->render();
    $slideshowView->show();
} else {
    $data['slides'] = DBfetchArray(DBselect('SELECT s.slideshowid,s.name,s.delay,COUNT(sl.slideshowid) AS cnt' . ' FROM slideshows s' . ' LEFT JOIN slides sl ON sl.slideshowid=s.slideshowid' . whereDbNode('s.slideshowid') . ' GROUP BY s.slideshowid,s.name,s.delay'));
    order_result($data['slides'], getPageSortField('name'), getPageSortOrder());
    $data['paging'] = getPagingLine($data['slides'], array('slideshowid'));
    // nodes
    if ($data['displayNodes'] = is_array(get_current_nodeid())) {
        foreach ($data['slides'] as &$slide) {
            $slide['nodename'] = get_node_name_by_elid($slide['slideshowid'], true);
        }
        unset($slide);
    }
    // render view
    $slideshowView = new CView('configuration.slideconf.list', $data);
    $slideshowView->render();
    $slideshowView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
} else {
    $data['pageFilter'] = $pageFilter;
    $data['showDisabled'] = $showDisabled;
    $data['showAllApps'] = $showAllApps;
    $data['db_apps'] = array();
    $db_app_result = DBselect('SELECT DISTINCT h.name AS hostname,a.*' . ' FROM applications a,hosts h' . ' WHERE a.hostid=h.hostid' . ($data['hostid'] > 0 ? ' AND h.hostid=' . $data['hostid'] : '') . ' AND ' . dbConditionInt('h.hostid', $pageFilter->hostsSelected ? array_keys($pageFilter->hosts) : array()));
    while ($db_app = DBfetch($db_app_result)) {
        $db_app['scenarios_cnt'] = 0;
        $data['db_apps'][$db_app['applicationid']] = $db_app;
    }
    // get http tests
    $data['db_httptests'] = array();
    $dbHttpTests_result = DBselect('SELECT wt.*,a.name AS application,h.name AS hostname,h.hostid' . ' FROM httptest wt,applications a,hosts h' . ' WHERE wt.applicationid=a.applicationid' . ' AND a.hostid=h.hostid' . ' AND ' . dbConditionInt('a.applicationid', array_keys($data['db_apps'])) . ($showDisabled == 0 ? ' AND wt.status=' . HTTPTEST_STATUS_ACTIVE : ''));
    while ($httptest_data = DBfetch($dbHttpTests_result)) {
        $data['db_apps'][$httptest_data['applicationid']]['scenarios_cnt']++;
        $httptest_data['step_count'] = null;
        $data['db_httptests'][$httptest_data['httptestid']] = $httptest_data;
    }
    // get http steps
    $httpstep_res = DBselect('SELECT hs.httptestid,COUNT(hs.httpstepid) AS cnt' . ' FROM httpstep hs' . ' WHERE ' . dbConditionInt('hs.httptestid', array_keys($data['db_httptests'])) . ' GROUP BY hs.httptestid');
    while ($step_count = DBfetch($httpstep_res)) {
        $data['db_httptests'][$step_count['httptestid']]['step_count'] = $step_count['cnt'];
    }
    order_result($data['db_httptests'], getPageSortField('host'), getPageSortOrder());
    $data['paging'] = getPagingLine($data['db_httptests']);
    // render view
    $httpView = new CView('configuration.httpconf.list', $data);
    $httpView->render();
    $httpView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#10
0
                $isValid = $triggerFunctionValidator->validate(['function' => $expressionData['function'], 'functionName' => $expressionData['functionName'], 'functionParamList' => $expressionData['functionParamList'], 'valueType' => $data['itemValueType']]);
                if (!$isValid) {
                    unset($data['insert']);
                    throw new Exception($triggerFunctionValidator->getError());
                }
            } else {
                unset($data['insert']);
                throw new Exception($triggerExpression->error);
            }
            // quote function param
            if (isset($data['insert'])) {
                foreach ($data['params'] as $pnum => $param) {
                    $data['params'][$pnum] = quoteFunctionParam($param);
                }
            }
        } else {
            unset($data['insert']);
            throw new Exception(_('Item not selected'));
        }
    } catch (Exception $e) {
        error($e->getMessage());
        show_error_message(_('Cannot insert trigger expression'));
    }
} elseif (hasErrorMesssages()) {
    show_messages();
}
// render view
$expressionView = new CView('configuration.triggers.expression', $data);
$expressionView->render();
$expressionView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#11
0
    require_once dirname(__FILE__) . '/include/page_footer.php';
    exit;
}
/*
 * Display
 */
$data = array('hostid' => getRequest('hostid', 0), 'fullscreen' => $_REQUEST['fullscreen'], 'screenid' => getRequest('screenid', CProfile::get('web.hostscreen.screenid', null)), 'period' => getRequest('period'), 'stime' => getRequest('stime'));
CProfile::update('web.hostscreen.screenid', $data['screenid'], PROFILE_TYPE_ID);
// get screen list
$data['screens'] = API::TemplateScreen()->get(array('hostids' => $data['hostid'], 'output' => API_OUTPUT_EXTEND));
$data['screens'] = zbx_toHash($data['screens'], 'screenid');
order_result($data['screens'], 'name');
// get screen
$screenid = null;
if (!empty($data['screens'])) {
    $screen = !isset($data['screens'][$data['screenid']]) ? reset($data['screens']) : $data['screens'][$data['screenid']];
    if (!empty($screen['screenid'])) {
        $screenid = $screen['screenid'];
    }
}
$data['screen'] = API::TemplateScreen()->get(array('screenids' => $screenid, 'hostids' => $data['hostid'], 'output' => API_OUTPUT_EXTEND, 'selectScreenItems' => API_OUTPUT_EXTEND));
$data['screen'] = reset($data['screen']);
// get host
if (!empty($data['screen']['hostid'])) {
    $data['host'] = get_host_by_hostid($data['screen']['hostid']);
}
// render view
$screenView = new CView('monitoring.hostscreen', $data);
$screenView->render();
$screenView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#12
0
        $data['applications'] = API::Application()->get(array('applicationids' => $applicationIds, 'output' => API_OUTPUT_EXTEND, 'selectItems' => array('itemid'), 'selectHost' => array('hostid', 'name')));
        order_result($data['applications'], $sortField, $sortOrder);
        // fetch template application source parents
        $applicationSourceParentIds = getApplicationSourceParentIds($applicationIds);
        $parentAppIds = array();
        foreach ($applicationSourceParentIds as $applicationParentIds) {
            foreach ($applicationParentIds as $parentId) {
                $parentAppIds[$parentId] = $parentId;
            }
        }
        if ($parentAppIds) {
            $parentTemplates = DBfetchArrayAssoc(DBselect('SELECT a.applicationid,h.hostid,h.name' . ' FROM applications a,hosts h' . ' WHERE a.hostid=h.hostid' . ' AND ' . dbConditionInt('a.applicationid', $parentAppIds)), 'applicationid');
            foreach ($data['applications'] as &$application) {
                if ($application['templateids'] && isset($applicationSourceParentIds[$application['applicationid']])) {
                    foreach ($applicationSourceParentIds[$application['applicationid']] as $parentAppId) {
                        $application['sourceTemplates'][] = $parentTemplates[$parentAppId];
                    }
                }
            }
        }
    } else {
        $data['applications'] = array();
    }
    // get paging
    $data['paging'] = getPagingLine($data['applications'], $sortOrder);
    // render view
    $applicationView = new CView('configuration.application.list', $data);
    $applicationView->render();
    $applicationView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
**/
require_once dirname(__FILE__) . '/include/config.inc.php';
$page['title'] = _('Configuration of trigger displaying options');
$page['file'] = 'adm.triggerdisplayoptions.php';
require_once dirname(__FILE__) . '/include/page_header.php';
$fields = ['problem_unack_color' => [T_ZBX_CLR, O_OPT, null, null, 'isset({update})', _('Unacknowledged PROBLEM events')], 'problem_ack_color' => [T_ZBX_CLR, O_OPT, null, null, 'isset({update})', _('Acknowledged PROBLEM events')], 'ok_unack_color' => [T_ZBX_CLR, O_OPT, null, null, 'isset({update})', _('Unacknowledged OK events')], 'ok_ack_color' => [T_ZBX_CLR, O_OPT, null, null, 'isset({update})', _('Acknowledged OK events')], 'problem_unack_style' => [T_ZBX_INT, O_OPT, null, IN('1'), null, _('Blinking')], 'problem_ack_style' => [T_ZBX_INT, O_OPT, null, IN('1'), null, _('Blinking')], 'ok_unack_style' => [T_ZBX_INT, O_OPT, null, IN('1'), null, _('Blinking')], 'ok_ack_style' => [T_ZBX_INT, O_OPT, null, IN('1'), null, _('Blinking')], 'ok_period' => [T_ZBX_INT, O_OPT, null, BETWEEN(0, 999999), 'isset({update})', _('Display OK triggers for')], 'blink_period' => [T_ZBX_INT, O_OPT, null, BETWEEN(0, 999999), 'isset({update})', _('On status change triggers blink for')], 'update' => [T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null], 'form_refresh' => [T_ZBX_INT, O_OPT, null, null, null]];
check_fields($fields);
/*
 * Actions
 */
if (hasRequest('update')) {
    DBstart();
    $result = update_config(['problem_unack_color' => getRequest('problem_unack_color'), 'problem_ack_color' => getRequest('problem_ack_color'), 'ok_unack_color' => getRequest('ok_unack_color'), 'ok_ack_color' => getRequest('ok_ack_color'), 'problem_unack_style' => getRequest('problem_unack_style', 0), 'problem_ack_style' => getRequest('problem_ack_style', 0), 'ok_unack_style' => getRequest('ok_unack_style', 0), 'ok_ack_style' => getRequest('ok_ack_style', 0), 'ok_period' => getRequest('ok_period'), 'blink_period' => getRequest('blink_period')]);
    $result = DBend($result);
    show_messages($result, _('Configuration updated'), _('Cannot update configuration'));
}
/*
 * Display
 */
$config = select_config();
// form has been submitted
if (hasRequest('form_refresh')) {
    $data = ['problem_unack_color' => getRequest('problem_unack_color', $config['problem_unack_color']), 'problem_ack_color' => getRequest('problem_ack_color', $config['problem_ack_color']), 'ok_unack_color' => getRequest('ok_unack_color', $config['ok_unack_color']), 'ok_ack_color' => getRequest('ok_ack_color', $config['ok_ack_color']), 'problem_unack_style' => getRequest('problem_unack_style', 0), 'problem_ack_style' => getRequest('problem_ack_style', 0), 'ok_unack_style' => getRequest('ok_unack_style', 0), 'ok_ack_style' => getRequest('ok_ack_style', 0), 'ok_period' => getRequest('ok_period', $config['ok_period']), 'blink_period' => getRequest('blink_period', $config['blink_period'])];
} else {
    $data = ['problem_unack_color' => $config['problem_unack_color'], 'problem_ack_color' => $config['problem_ack_color'], 'ok_unack_color' => $config['ok_unack_color'], 'ok_ack_color' => $config['ok_ack_color'], 'problem_unack_style' => $config['problem_unack_style'], 'problem_ack_style' => $config['problem_ack_style'], 'ok_unack_style' => $config['ok_unack_style'], 'ok_ack_style' => $config['ok_ack_style'], 'ok_period' => $config['ok_period'], 'blink_period' => $config['blink_period']];
}
$view = new CView('administration.general.trigger.options.edit', $data);
$view->render();
$view->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#14
0
/*
** Zabbix
** Copyright (C) 2001-2014 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.
**/
require_once dirname(__FILE__) . '/include/config.inc.php';
$page['title'] = _('Step of scenario');
$page['file'] = 'popup_httpstep.php';
define('ZBX_PAGE_NO_MENU', 1);
require_once dirname(__FILE__) . '/include/page_header.php';
// VAR	TYPE	OPTIONAL	FLAGS	VALIDATION	EXCEPTION
$fields = array('dstfrm' => array(T_ZBX_STR, O_MAND, P_SYS, NOT_EMPTY, null), 'stepid' => 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({add}) || isset({update})) && isset({stepid})'), 'name' => array(T_ZBX_STR, O_OPT, null, NOT_EMPTY . KEY_PARAM(), 'isset({add}) || isset({update})', _('Name')), 'url' => array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, 'isset({add}) || isset({update})', _('URL')), 'posts' => array(T_ZBX_STR, O_OPT, null, null, null), 'variables' => array(T_ZBX_STR, O_OPT, null, null, 'isset({add}) || isset({update})'), 'headers' => array(T_ZBX_STR, O_OPT, null, null, 'isset({add}) || isset({update})'), 'retrieve_mode' => array(T_ZBX_STR, O_OPT, null, null, null), 'follow_redirects' => array(T_ZBX_STR, O_OPT, null, null, null), 'timeout' => array(T_ZBX_INT, O_OPT, null, BETWEEN(0, 65535), 'isset({add}) || isset({update})', _('Timeout')), 'required' => array(T_ZBX_STR, O_OPT, null, null, null), 'status_codes' => array(T_ZBX_STR, O_OPT, null, null, 'isset({add}) || isset({update})'), 'templated' => array(T_ZBX_STR, O_OPT, null, null, null), 'old_name' => array(T_ZBX_STR, O_OPT, null, null, null), 'steps_names' => array(T_ZBX_STR, O_OPT, null, null, null), 'add' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'update' => 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_INT, O_OPT, null, null, null));
check_fields($fields);
// render view
$httpPopupView = new CView('configuration.httpconf.popup');
$httpPopupView->render();
$httpPopupView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#15
0
    $data['screen'] = get_slideshow_by_slideshowid($data['elementId'], PERM_READ);
    if (!$data['screen']) {
        // Redirect to slide show list.
        ob_end_clean();
        redirect('slideconf.php');
    }
}
$data['fullscreen'] = getRequest('fullscreen');
if ($data['screen']) {
    // get groups and hosts
    if (check_dynamic_items($data['elementId'], 1)) {
        $data['isDynamicItems'] = true;
        $data['pageFilter'] = new CPageFilter(['groups' => ['monitored_hosts' => true, 'with_items' => true], 'hosts' => ['monitored_hosts' => true, 'with_items' => true, 'DDFirstLabel' => _('not selected')], 'hostid' => getRequest('hostid'), 'groupid' => getRequest('groupid')]);
        $data['groupid'] = $data['pageFilter']->groupid;
        $data['hostid'] = $data['pageFilter']->hostid;
    }
    // get element
    $data['element'] = get_slideshow_by_slideshowid($data['elementId'], PERM_READ);
    $data['screen']['editable'] = (bool) get_slideshow_by_slideshowid($data['elementId'], PERM_READ_WRITE);
    if ($data['screen']['delay'] > 0) {
        $data['element']['delay'] = $data['screen']['delay'];
    }
    show_messages();
}
// refresh
$data['refreshMultiplier'] = CProfile::get('web.slides.rf_rate.' . WIDGET_SLIDESHOW, 1, $data['elementId']);
// render view
$slidesView = new CView('monitoring.slides', $data);
$slidesView->render();
$slidesView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#16
0
    $triggersView->render();
    $triggersView->show();
} elseif (isset($_REQUEST['form'])) {
    $triggersView = new CView('configuration.triggers.edit', getTriggerFormData($exprAction));
    $triggersView->render();
    $triggersView->show();
} else {
    $sortField = getRequest('sort', CProfile::get('web.' . $page['file'] . '.sort', 'description'));
    $sortOrder = getRequest('sortorder', CProfile::get('web.' . $page['file'] . '.sortorder', ZBX_SORT_UP));
    CProfile::update('web.' . $page['file'] . '.sort', $sortField, PROFILE_TYPE_STR);
    CProfile::update('web.' . $page['file'] . '.sortorder', $sortOrder, PROFILE_TYPE_STR);
    $data = array('parent_discoveryid' => getRequest('parent_discoveryid'), 'showInfoColumn' => false, 'discovery_rule' => $discovery_rule, 'hostid' => getRequest('hostid'), 'showdisabled' => getRequest('showdisabled', 1), 'triggers' => array(), 'sort' => $sortField, 'sortorder' => $sortOrder);
    CProfile::update('web.triggers.showdisabled', $data['showdisabled'], PROFILE_TYPE_INT);
    // get triggers
    $options = array('editable' => true, 'output' => array('triggerid'), 'discoveryids' => $data['parent_discoveryid'], 'sortfield' => $sortField, 'limit' => $config['search_limit'] + 1);
    if (empty($data['showdisabled'])) {
        $options['filter']['status'] = TRIGGER_STATUS_ENABLED;
    }
    $data['triggers'] = API::TriggerPrototype()->get($options);
    // paging
    $data['paging'] = getPagingLine($data['triggers']);
    $data['triggers'] = API::TriggerPrototype()->get(array('triggerids' => zbx_objectValues($data['triggers'], 'triggerid'), 'output' => API_OUTPUT_EXTEND, 'selectHosts' => API_OUTPUT_EXTEND, 'selectItems' => array('itemid', 'hostid', 'key_', 'type', 'flags', 'status'), 'selectFunctions' => API_OUTPUT_EXTEND));
    order_result($data['triggers'], $sortField, $sortOrder);
    // get real hosts
    $data['realHosts'] = getParentHostsByTriggers($data['triggers']);
    // render view
    $triggersView = new CView('configuration.triggers.list', $data);
    $triggersView->render();
    $triggersView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#17
0
        $data['trigger'] = '';
    }
    // render view
    $servicesView = new CView('configuration.services.edit', $data);
    $servicesView->render();
    $servicesView->show();
} else {
    // services
    $services = API::Service()->get(array('output' => array('name', 'serviceid', 'algorithm'), 'selectParent' => array('serviceid'), 'selectDependencies' => array('servicedownid', 'soft', 'linkid'), 'selectTrigger' => array('description', 'triggerid', 'expression'), 'preservekeys' => true, 'sortfield' => 'sortorder', 'sortorder' => ZBX_SORT_UP));
    // triggers
    $triggers = zbx_objectValues($services, 'trigger');
    $triggers = CMacrosResolverHelper::resolveTriggerNames($triggers);
    foreach ($services as &$service) {
        if ($service['trigger']) {
            $service['trigger'] = $triggers[$service['trigger']['triggerid']];
        }
    }
    unset($service);
    $treeData = array();
    createServiceConfigurationTree($services, $treeData);
    $tree = new CServiceTree('service_conf_tree', $treeData, array('caption' => _('Service'), 'algorithm' => _('Status calculation'), 'description' => _('Trigger')));
    if (empty($tree)) {
        error(_('Cannot format tree.'));
    }
    $data = array('tree' => $tree);
    // render view
    $servicesView = new CView('configuration.services.list', $data);
    $servicesView->render();
    $servicesView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#18
0
    $data['mediatypes'] = API::Mediatype()->get(array('output' => API_OUTPUT_EXTEND, 'preservekeys' => true, 'editable' => true, 'limit' => $config['search_limit'] + 1));
    if ($data['mediatypes']) {
        // get media types used in actions
        $actions = API::Action()->get(array('mediatypeids' => zbx_objectValues($data['mediatypes'], 'mediatypeid'), 'output' => array('actionid', 'name'), 'selectOperations' => array('operationtype', 'opmessage'), 'preservekeys' => true));
        foreach ($data['mediatypes'] as $key => $mediaType) {
            $data['mediatypes'][$key]['typeid'] = $data['mediatypes'][$key]['type'];
            $data['mediatypes'][$key]['type'] = media_type2str($data['mediatypes'][$key]['type']);
            $data['mediatypes'][$key]['listOfActions'] = array();
            if ($actions) {
                foreach ($actions as $actionId => $action) {
                    foreach ($action['operations'] as $operation) {
                        if ($operation['operationtype'] == OPERATION_TYPE_MESSAGE && $operation['opmessage']['mediatypeid'] == $mediaType['mediatypeid']) {
                            $data['mediatypes'][$key]['listOfActions'][$actionId] = array('actionid' => $actionId, 'name' => $action['name']);
                        }
                    }
                }
                order_result($data['mediatypes'][$key]['listOfActions'], 'name');
            }
        }
        order_result($data['mediatypes'], $sortField, $sortOrder);
        $data['paging'] = getPagingLine($data['mediatypes'], $sortOrder);
    } else {
        $arr = array();
        $data['paging'] = getPagingLine($arr, $sortOrder);
    }
    // render view
    $mediaTypeView = new CView('administration.mediatypes.list', $data);
    $mediaTypeView->render();
    $mediaTypeView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#19
0
    // render view
    $itemView = new CView('configuration.item.prototype.edit', $data);
    $itemView->render();
    $itemView->show();
} else {
    $sortField = getRequest('sort', CProfile::get('web.' . $page['file'] . '.sort', 'name'));
    $sortOrder = getRequest('sortorder', CProfile::get('web.' . $page['file'] . '.sortorder', ZBX_SORT_UP));
    CProfile::update('web.' . $page['file'] . '.sort', $sortField, PROFILE_TYPE_STR);
    CProfile::update('web.' . $page['file'] . '.sortorder', $sortOrder, PROFILE_TYPE_STR);
    $config = select_config();
    $data = ['form' => getRequest('form'), 'parent_discoveryid' => getRequest('parent_discoveryid'), 'hostid' => $discoveryRule['hostid'], 'sort' => $sortField, 'sortorder' => $sortOrder];
    $data['items'] = API::ItemPrototype()->get(['discoveryids' => $data['parent_discoveryid'], 'output' => API_OUTPUT_EXTEND, 'editable' => true, 'selectApplications' => API_OUTPUT_EXTEND, 'sortfield' => $sortField, 'limit' => $config['search_limit'] + 1]);
    foreach ($data['items'] as &$item) {
        if ($item['value_type'] == ITEM_VALUE_TYPE_STR || $item['value_type'] == ITEM_VALUE_TYPE_LOG || $item['value_type'] == ITEM_VALUE_TYPE_TEXT) {
            $item['trends'] = '';
        }
        if ($item['type'] == ITEM_TYPE_TRAPPER || $item['type'] == ITEM_TYPE_SNMPTRAP) {
            $item['delay'] = '';
        }
    }
    unset($item);
    $data['items'] = CMacrosResolverHelper::resolveItemNames($data['items']);
    order_result($data['items'], $sortField, $sortOrder);
    $url = (new CUrl('disc_prototypes.php'))->setArgument('parent_discoveryid', $data['parent_discoveryid']);
    $data['paging'] = getPagingLine($data['items'], $sortOrder, $url);
    // render view
    $itemView = new CView('configuration.item.prototype.list', $data);
    $itemView->render();
    $itemView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#20
0
    }
    // new operation
    if (!empty($data['new_operation'])) {
        if (!is_array($data['new_operation'])) {
            $data['new_operation'] = array('action' => 'create', 'operationtype' => 0, 'esc_period' => 0, 'esc_step_from' => 1, 'esc_step_to' => 1, 'evaltype' => 0);
        }
    }
    // render view
    $actionView = new CView('configuration.action.edit', $data);
    $actionView->render();
    $actionView->show();
} else {
    $data = array('eventsource' => getRequest('eventsource', CProfile::get('web.actionconf.eventsource', EVENT_SOURCE_TRIGGERS)), 'displayNodes' => is_array(get_current_nodeid()));
    $sortfield = getPageSortField('name');
    $data['actions'] = API::Action()->get(array('output' => API_OUTPUT_EXTEND, 'filter' => array('eventsource' => array($data['eventsource'])), 'selectConditions' => API_OUTPUT_EXTEND, 'selectOperations' => API_OUTPUT_EXTEND, 'editable' => true, 'sortfield' => $sortfield, 'limit' => $config['search_limit'] + 1));
    // sorting && paging
    order_result($data['actions'], $sortfield, getPageSortOrder());
    $data['paging'] = getPagingLine($data['actions'], array('actionid'));
    // nodes
    if ($data['displayNodes']) {
        foreach ($data['actions'] as &$action) {
            $action['nodename'] = get_node_name_by_elid($action['actionid'], true);
        }
        unset($action);
    }
    // render view
    $actionView = new CView('configuration.action.list', $data);
    $actionView->render();
    $actionView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#21
0
        $messageFailed = _('Cannot change authentication method to HTTP');
        DBstart();
        $result = update_config($config);
        if ($result) {
            // reset all sessions
            if ($isAuthenticationTypeChanged) {
                $result &= DBexecute('UPDATE sessions SET status=' . ZBX_SESSION_PASSIVE . ' WHERE sessionid<>' . zbx_dbstr(CWebUser::$data['sessionid']));
            }
            $isAuthenticationTypeChanged = false;
            add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_ZABBIX_CONFIG, $messageSuccess);
        }
        $result = DBend($result);
        show_messages($result, $messageSuccess, $messageFailed);
    }
}
show_messages();
/*
 * Display
 */
$data = array('form_refresh' => getRequest('form_refresh'), 'config' => $config, 'is_authentication_type_changed' => $isAuthenticationTypeChanged, 'user' => getRequest('user', CWebUser::$data['alias']), 'user_password' => getRequest('user_password', ''), 'user_list' => null, 'change_bind_password' => getRequest('change_bind_password'));
// get tab title
$data['title'] = authentication2str($config['authentication_type']);
// get user list
if (getUserGuiAccess(CWebUser::$data['userid']) == GROUP_GUI_ACCESS_INTERNAL) {
    $data['user_list'] = DBfetchArray(DBselect('SELECT u.alias,u.userid FROM users u ORDER BY u.alias'));
}
// render view
$authenticationView = new CView('administration.authentication.edit', $data);
$authenticationView->render();
$authenticationView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#22
0
        case AUDIT_ACTION_ENABLE:
            $action = _('Enabled');
            break;
        case AUDIT_ACTION_DISABLE:
            $action = _('Disabled');
            break;
        default:
            $action = _('Unknown action');
    }
    $audit['action'] = $action;
    $audit['resourcetype'] = audit_resource2str($audit['resourcetype']);
    if (empty($audit['details'])) {
        $audit['details'] = DBfetchArray(DBselect('SELECT ad.table_name,ad.field_name,ad.oldvalue,ad.newvalue' . ' FROM auditlog_details ad' . ' WHERE ad.auditid=' . zbx_dbstr($audit['auditid'])));
    }
    $data['actions'][$audit['auditid']] = $audit;
}
if (!empty($data['actions'])) {
    order_result($data['actions'], 'clock', ZBX_SORT_DOWN);
}
// get paging
$data['paging'] = getPagingLine($data['actions'], ZBX_SORT_DOWN, new CUrl('auditlogs.php'));
// get timeline
unset($sqlWhere['from'], $sqlWhere['till']);
$sql = 'SELECT MIN(a.clock) AS clock' . ' FROM auditlog a,users u' . ' WHERE a.userid=u.userid' . implode('', $sqlWhere);
$firstAudit = DBfetch(DBselect($sql, $config['search_limit'] + 1));
$data['timeline'] = ['period' => $effectivePeriod, 'starttime' => date(TIMESTAMP_FORMAT, $firstAudit ? $firstAudit['clock'] : null), 'usertime' => isset($_REQUEST['stime']) ? date(TIMESTAMP_FORMAT, zbxDateToTime($data['stime']) + $effectivePeriod) : null];
// render view
$auditView = new CView('administration.auditlogs.list', $data);
$auditView->render();
$auditView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#23
0
require_once dirname(__FILE__) . '/include/forms.inc.php';
$page['title'] = _('Scripts');
$page['file'] = 'scripts_exec.php';
define('ZBX_PAGE_NO_MENU', 1);
require_once dirname(__FILE__) . '/include/page_header.php';
// VAR	TYPE	OPTIONAL	FLAGS	VALIDATION	EXCEPTION
$fields = array('hostid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({execute})'), 'scriptid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({execute})'), 'execute' => array(T_ZBX_INT, O_OPT, P_ACT, IN('0,1'), null));
check_fields($fields);
if (isset($_REQUEST['execute'])) {
    $scriptid = get_request('scriptid');
    $hostid = get_request('hostid');
    $data = array('message' => '', 'info' => DBfetch(DBselect('SELECT s.name FROM scripts s WHERE s.scriptid=' . zbx_dbstr($scriptid))));
    $result = API::Script()->execute(array('hostid' => $hostid, 'scriptid' => $scriptid));
    $isErrorExist = false;
    if (empty($result)) {
        $isErrorExist = true;
    } elseif ($result['response'] == 'failed') {
        error($result['value']);
        $isErrorExist = true;
    } else {
        $data['message'] = $result['value'];
    }
    if ($isErrorExist) {
        show_error_message(_('Cannot connect to the trapper port of zabbix server daemon, but it should be available to run the script.'));
    }
    // render view
    $scriptView = new CView('general.script.execute', $data);
    $scriptView->render();
    $scriptView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#24
0
        $dbTrigger = reset($dbTrigger);
        $host = reset($dbTrigger['hosts']);
        $link['linktriggers'][$lnum]['desc_exp'] = $host['name'] . NAME_DELIMITER . $dbTrigger['description'];
    }
    order_result($link['linktriggers'], 'desc_exp');
}
unset($link);
// get iconmapping
if ($data['sysmap']['iconmapid']) {
    $iconMap = API::IconMap()->get(array('iconmapids' => $data['sysmap']['iconmapid'], 'output' => array('default_iconid'), 'preservekeys' => true));
    $iconMap = reset($iconMap);
    $data['defaultAutoIconId'] = $iconMap['default_iconid'];
}
// get icon list
$icons = DBselect('SELECT i.imageid,i.name FROM images i WHERE i.imagetype=' . IMAGE_TYPE_ICON);
while ($icon = DBfetch($icons)) {
    $data['iconList'][] = array('imageid' => $icon['imageid'], 'name' => $icon['name']);
    if ($icon['name'] == MAP_DEFAULT_ICON || !isset($data['defaultIconId'])) {
        $data['defaultIconId'] = $icon['imageid'];
        $data['defaultIconName'] = $icon['name'];
    }
}
if ($data['iconList']) {
    CArrayHelper::sort($data['iconList'], array('name'));
    $data['iconList'] = array_values($data['iconList']);
}
// render view
$sysmapView = new CView('configuration.sysmap.constructor', $data);
$sysmapView->render();
$sysmapView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#25
0
    clearCookies($goResult, $_REQUEST['hostid']);
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = getItemFormData(array('is_discovery_rule' => true));
    $data['page_header'] = _('CONFIGURATION OF DISCOVERY RULES');
    // render view
    $itemView = new CView('configuration.item.edit', $data);
    $itemView->render();
    $itemView->show();
} else {
    $data = array('hostid' => get_request('hostid', 0), 'host' => $host, 'showErrorColumn' => $host['status'] != HOST_STATUS_TEMPLATE);
    $sortfield = getPageSortField('name');
    // discoveries
    $data['discoveries'] = API::DiscoveryRule()->get(array('hostids' => $data['hostid'], 'output' => API_OUTPUT_EXTEND, 'editable' => true, 'selectItems' => API_OUTPUT_COUNT, 'selectGraphs' => API_OUTPUT_COUNT, 'selectTriggers' => API_OUTPUT_COUNT, 'selectHostPrototypes' => API_OUTPUT_COUNT, 'sortfield' => $sortfield, 'limit' => $config['search_limit'] + 1));
    $data['discoveries'] = CMacrosResolverHelper::resolveItemNames($data['discoveries']);
    if ($sortfield === 'status') {
        orderItemsByStatus($data['discoveries'], getPageSortOrder());
    } else {
        order_result($data['discoveries'], $sortfield, getPageSortOrder());
    }
    // paging
    $data['paging'] = getPagingLine($data['discoveries'], array('itemid'), array('hostid' => get_request('hostid')));
    // render view
    $discoveryView = new CView('configuration.host.discovery.list', $data);
    $discoveryView->render();
    $discoveryView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#26
0
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = array('nodeid' => get_request('nodeid'), 'masterNode' => DBfetch(DBselect('SELECT n.name FROM nodes n WHERE n.masterid IS NULL AND n.nodetype=' . ZBX_NODE_MASTER)));
    if (get_request('nodeid') && !isset($_REQUEST['form_refresh'])) {
        $data['new_nodeid'] = $node['nodeid'];
        $data['name'] = $node['name'];
        $data['ip'] = $node['ip'];
        $data['port'] = $node['port'];
        $data['masterid'] = $node['masterid'];
        $data['nodetype'] = $node['nodetype'];
    } else {
        $data['new_nodeid'] = get_request('new_nodeid');
        $data['name'] = get_request('name', '');
        $data['ip'] = get_request('ip', '127.0.0.1');
        $data['port'] = get_request('port', 10051);
        $data['nodetype'] = get_request('nodetype', ZBX_NODE_CHILD);
        $data['masterid'] = get_request('masterid', get_current_nodeid(false));
    }
    $nodeView = new CView('administration.node.edit', $data);
} else {
    validate_sort_and_sortorder();
    $data = array();
    if (ZBX_DISTRIBUTED) {
        $data['nodes'] = DBselect('SELECT n.* FROM nodes n ' . order_by('n.nodeid,n.name,n.ip', 'n.masterid'));
    }
    $nodeView = new CView('administration.node.list', $data);
}
$nodeView->render();
$nodeView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#27
0
$trigger = API::Trigger()->get(['triggerids' => $_REQUEST['triggerid'], 'output' => API_OUTPUT_EXTEND, 'expandDescription' => true]);
if (!$trigger) {
    access_deny();
}
$trigger = reset($trigger);
/*
 * Actions
 */
if (hasRequest('update')) {
    DBstart();
    $result = DBexecute('UPDATE triggers' . ' SET comments=' . zbx_dbstr(getRequest('comments')) . ' WHERE triggerid=' . zbx_dbstr(getRequest('triggerid')));
    $trigger['comments'] = $_REQUEST['comments'];
    if ($result) {
        add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_TRIGGER, _('Trigger') . ' [' . $_REQUEST['triggerid'] . '] [' . $trigger['description'] . '] ' . _('Comments') . ' [' . $_REQUEST['comments'] . ']');
    }
    $result = DBend($result);
    show_messages($result, _('Description updated'), _('Cannot update description'));
} elseif (isset($_REQUEST['cancel'])) {
    jsRedirect('tr_status.php');
    exit;
}
/*
 * Display
 */
$triggerEditable = API::Trigger()->get(['triggerids' => $_REQUEST['triggerid'], 'output' => ['triggerid'], 'editable' => true]);
$data = ['triggerid' => getRequest('triggerid'), 'trigger' => $trigger, 'isTriggerEditable' => !empty($triggerEditable), 'isCommentExist' => !empty($trigger['comments'])];
// render view
$triggerCommentView = new CView('monitoring.triggerComment', $data);
$triggerCommentView->render();
$triggerCommentView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#28
0
        $sqlWhere = whereDbNode('u.userid');
    }
    $data['users'] = DBfetchArray(DBselect('SELECT DISTINCT u.userid,u.alias,u.name,u.surname' . ' FROM users u' . $sqlFrom . $sqlWhere));
    order_result($data['users'], 'alias');
    // get user groups
    $data['usergroups'] = DBfetchArray(DBselect('SELECT ug.usrgrpid,ug.name' . ' FROM usrgrp ug' . whereDbNode('usrgrpid')));
    order_result($data['usergroups'], 'name');
    // render view
    $userGroupsView = new CView('administration.usergroups.edit', $data);
    $userGroupsView->render();
    $userGroupsView->show();
} else {
    $data = array('displayNodes' => is_array(get_current_nodeid()));
    $sortfield = getPageSortField('name');
    $data['usergroups'] = API::UserGroup()->get(array('output' => API_OUTPUT_EXTEND, 'selectUsers' => API_OUTPUT_EXTEND, 'sortfield' => $sortfield, 'limit' => $config['search_limit'] + 1));
    // sorting & paging
    order_result($data['usergroups'], $sortfield, getPageSortOrder());
    $data['paging'] = getPagingLine($data['usergroups'], array('usrgrpid'));
    // nodes
    if ($data['displayNodes']) {
        foreach ($data['usergroups'] as &$userGroup) {
            $userGroup['nodename'] = get_node_name_by_elid($userGroup['usrgrpid'], true);
        }
        unset($userGroup);
    }
    // render view
    $userGroupsView = new CView('administration.usergroups.list', $data);
    $userGroupsView->render();
    $userGroupsView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#29
0
        $result = DBend($result);
        if ($page['type'] == PAGE_TYPE_JS && $result) {
            echo 'switchElementClass("addrm_fav", "iconminus", "iconplus");';
        }
    }
}
if (!empty($_REQUEST['period']) || !empty($_REQUEST['stime'])) {
    CScreenBase::calculateTime(array('profileIdx' => 'web.screens', 'profileIdx2' => $pageFilter->graphid, 'updateProfile' => true, 'period' => getRequest('period'), 'stime' => getRequest('stime')));
    $curl = new CUrl();
    $curl->removeArgument('period');
    $curl->removeArgument('stime');
    ob_end_clean();
    DBstart();
    CProfile::flush();
    DBend();
    redirect($curl->getUrl());
}
ob_end_flush();
if ($page['type'] == PAGE_TYPE_JS || $page['type'] == PAGE_TYPE_HTML_BLOCK) {
    require_once dirname(__FILE__) . '/include/page_footer.php';
    exit;
}
/*
 * Display
 */
$data = array('pageFilter' => $pageFilter, 'graphid' => $pageFilter->graphid, 'fullscreen' => $_REQUEST['fullscreen']);
// render view
$chartsView = new CView('monitoring.charts', $data);
$chartsView->render();
$chartsView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
示例#30
0
        $options['groupids'] = $config['dropdown_first_entry'] ? null : array();
    }
    $data['maintenances'] = API::Maintenance()->get($options);
    order_result($data['maintenances'], $sortfield, $sortorder);
    $data['paging'] = getPagingLine($data['maintenances'], array('maintenanceid'));
    // get list of maintenances
    $data['maintenances'] = API::Maintenance()->get(array('maintenanceids' => zbx_objectValues($data['maintenances'], 'maintenanceid'), 'output' => API_OUTPUT_EXTEND));
    foreach ($data['maintenances'] as $number => $maintenance) {
        if ($maintenance['active_till'] < time()) {
            $data['maintenances'][$number]['status'] = MAINTENANCE_STATUS_EXPIRED;
        } elseif ($maintenance['active_since'] > time()) {
            $data['maintenances'][$number]['status'] = MAINTENANCE_STATUS_APPROACH;
        } else {
            $data['maintenances'][$number]['status'] = MAINTENANCE_STATUS_ACTIVE;
        }
    }
    order_result($data['maintenances'], $sortfield, $sortorder);
    $data['pageFilter'] = $pageFilter;
    // nodes
    if ($data['displayNodes']) {
        foreach ($data['maintenances'] as &$maintenance) {
            $maintenance['nodename'] = get_node_name_by_elid($maintenance['maintenanceid'], true);
        }
        unset($maintenance);
    }
    // render view
    $maintenanceView = new CView('configuration.maintenance.list', $data);
    $maintenanceView->render();
    $maintenanceView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';