summaryrefslogtreecommitdiffstats
path: root/frontends/php/services.php
blob: e365605666a100640dd5b4222d50149a4fdad04a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
/* 
** ZABBIX
** Copyright (C) 2000-2007 SIA Zabbix
**
** 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., 675 Mass Ave, Cambridge, MA 02139, USA.
**/

include_once "include/config.inc.php";
include_once "include/services.inc.php";

$page["title"] = "S_CONFIGURATION_OF_IT_SERVICES";
$page["file"] = "services.php";
$page['scripts'] = array('services.js');
$page['hist_arg'] = array();

include_once "include/page_header.php";


//---------------------------------- CHECKS ------------------------------------

//		VAR			TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
	$fields=array(
		"msg"=>		array(T_ZBX_STR, O_OPT,	 null,	null ,NULL)
	);

	check_fields($fields);

//--------------------------------------------------------------------------

$denyed_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT);

$query = 'SELECT distinct s.serviceid, sl.servicedownid, sl_p.serviceupid as serviceupid,
		s.name as caption, s.algorithm, t.triggerid, s.sortorder, sl.linkid'.
	' FROM services s '.
		' LEFT JOIN triggers t ON s.triggerid = t.triggerid '.
		' LEFT JOIN services_links sl ON  s.serviceid = sl.serviceupid and NOT(sl.soft=0) '.
		' LEFT JOIN services_links sl_p ON  s.serviceid = sl_p.servicedownid and sl_p.soft=0 '.
		' LEFT JOIN functions f ON t.triggerid=f.triggerid '.
		' LEFT JOIN items i ON f.itemid=i.itemid '.
	' WHERE (i.hostid is null or i.hostid not in ('.$denyed_hosts.')) '.
		' AND '.DBid2nodeid("s.serviceid").'='.$ZBX_CURNODEID.
	' ORDER BY s.sortorder, sl_p.serviceupid, s.serviceid';

$result=DBSelect($query);

$services = array();
$row = array(
				'0' => 0,'serviceid' => 0,
				'1' => 0,'serviceupid' => 0,
				'2' => '','caption' => S_ROOT_SMALL,
				'3' => '','status' => SPACE,
				'4' => '','algorithm' => SPACE,
				'5' => '','description' => SPACE,
				'6' => 0,'soft' => 0,
				'7' => '','linkid'=>''
				);

$services[0]=$row;

while($row = DBFetch($result)){

		(empty($row['serviceupid']))?($row['serviceupid']='0'):('');
		(empty($row['triggerid']))?($row['description']='None'):($row['description']=expand_trigger_description($row['triggerid']));
		

			if(isset($services[$row['serviceid']])){
				$services[$row['serviceid']] = array_merge($services[$row['serviceid']],$row);
			} else {
				
				$services[$row['serviceid']] = $row;
			}
	
		if(isset($row['serviceupid']))
		$services[$row['serviceupid']]['childs'][] = array('id' => $row['serviceid'], 'soft' => 0, 'linkid' => 0);

		if(isset($row['servicedownid']))
		$services[$row['serviceid']]['childs'][] = array('id' => $row['servicedownid'], 'soft' => 1, 'linkid' => $row['linkid']);
}

$treeServ=array();
createServiceTree($services,$treeServ); //return into $treeServ parametr

//permission issue
$treeServ = del_empty_nodes($treeServ);
//----

if(isset($_REQUEST['msg']) && !empty($_REQUEST['msg'])){
	$p = new Ctag('p','yes');
	$p->AddOption('align','center');
	$p->AddOption('id','message');
	$p->AddItem('<b>'.$_REQUEST['msg'].'</b>');
	$p->Show();
}


show_table_header(S_IT_SERVICES_BIG);

$tree = new CTree($treeServ,array('caption' => '<b>'.S_SERVICE.'</b>','algorithm' => '<b>'.S_STATUS_CALCULATION.'</b>', 'description' => '<b>'.S_TRIGGER.'</b>'));

if($tree){
	echo $tree->CreateJS();
	echo $tree->SimpleHTML();
} else {
	error(S_CANT_FORMAT_TREE);
}


$tr_ov_menu[] = array('test1',	null, null, array('outer'=> array('pum_oheader'), 'inner'=>array('pum_iheader')));
$tr_ov_menu[] = array('test2',	null, null, array('outer'=> array('pum_oheader'), 'inner'=>array('pum_iheader')));
$jsmenu = new CPUMenu($tr_ov_menu,170);
$jsmenu->InsertJavaScript();


include_once "include/page_footer.php";
?>