diff options
| author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-05-29 08:47:18 +0000 |
|---|---|---|
| committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-05-29 08:47:18 +0000 |
| commit | 0990cdce6c98be640a3c70bea413ac1f44865016 (patch) | |
| tree | 97a9c36f69226f682f7326b668ee99b07ca6c684 /frontends/php/services.php | |
| parent | 3442ec61fa38eea4e68a3edea4ea3225ff78c8a0 (diff) | |
| download | zabbix-0990cdce6c98be640a3c70bea413ac1f44865016.tar.gz zabbix-0990cdce6c98be640a3c70bea413ac1f44865016.tar.xz zabbix-0990cdce6c98be640a3c70bea413ac1f44865016.zip | |
- changed IT Services interface (Artem)
- added class CTree
- added Javascript class for Cookies management
git-svn-id: svn://svn.zabbix.com/trunk@4188 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/services.php')
| -rw-r--r-- | frontends/php/services.php | 710 |
1 files changed, 76 insertions, 634 deletions
diff --git a/frontends/php/services.php b/frontends/php/services.php index b000b163..8d3a2ac0 100644 --- a/frontends/php/services.php +++ b/frontends/php/services.php @@ -17,674 +17,116 @@ ** along with this program; if not, write to the Free Software ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. **/ -?> -<?php - include_once "include/config.inc.php"; - include_once "include/services.inc.php"; +set_time_limit(3); + +include_once "include/config.inc.php"; +include_once "include/services.inc.php"; - $page["title"] = "S_IT_SERVICES"; - $page["file"] = "services.php"; +$page["title"] = "S_IT_SERVICES"; +$page["file"] = "services.php"; include_once "include/page_header.php"; +//print_r($_COOKIE); -?> -<?php + +//---------------------------------- CHECKS ------------------------------------ // VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields=array( - "path"=> array(T_ZBX_STR, O_OPT, null, null, null), - - "serviceid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID,NULL), - "group_serviceid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID,NULL), - - "linkid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID,NULL), - "group_linkid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID,NULL), - - "name"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY, 'isset({save})'), - "algorithm"=> array(T_ZBX_INT, O_OPT, NULL, IN('0,1,2'), 'isset({save})'), - "showsla"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,1"),null), - "goodsla"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(0,100), null), - "sortorder"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(0,65535), null), - "service_times"=> array(T_ZBX_STR, O_OPT, null, null, null), - - "linktrigger"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,1"),null), - "triggerid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL), - - "serviceupid"=> array(T_ZBX_INT, O_OPT, null, DB_ID, 'isset({save_link})'), - "servicedownid"=> array(T_ZBX_INT, O_OPT, null, DB_ID, null), - "soft"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,1"), null), - - "serverid"=> array(T_ZBX_INT, O_OPT, null, DB_ID, 'isset({add_server})'), - - "new_service_time"=> array(T_ZBX_STR, O_OPT, null, null, null), - "rem_service_times"=> array(T_ZBX_STR, O_OPT, null, null, null), - -/* actions */ - "save_service"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - "save_link"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - "add_server"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - - "add_service_time"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - "del_service_times"=> 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), - "delete"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - "cancel"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), -/* other */ - "form"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), - "form_copy_to"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), - "form_refresh"=> array(T_ZBX_INT, O_OPT, NULL, NULL, NULL) + "msg"=> array(T_ZBX_STR, O_OPT, null, null ,NULL) ); check_fields($fields); -?> -<?php - $denyed_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT); - - if(isset($_REQUEST["serviceid"]) && $_REQUEST["serviceid"] > 0) - { - if( !($service = DBfetch(DBselect("select s.* from services s left join triggers t on s.triggerid=t.triggerid ". - " 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. - " and s.serviceid=".$_REQUEST["serviceid"] - )))) - { - access_deny(); - } - } -?> -<?php -/* ACTIONS */ - $_REQUEST["showsla"] = get_request("showsla",0); - $_REQUEST["soft"] = get_request("soft", 0); - - if(isset($_REQUEST["delete"])) - { - if(isset($_REQUEST["group_serviceid"])) - { - $group_serviceid = get_request('group_serviceid', array(-1)); - - if(($db_group_services = DBselect("select s.* from services s left join triggers t on s.triggerid=t.triggerid ". - " 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. - " and s.serviceid in (".implode(',',$group_serviceid).")" - ))) - { - while($g_service_data = DBfetch($db_group_services)) - { - $result = delete_service($g_service_data['serviceid']); - - if(isset($service) && $g_service_data['serviceid'] == $service['serviceid']) - { - unset($service, $path); - } - - add_audit_if($result,AUDIT_ACTION_DELETE,AUDIT_RESOURCE_IT_SERVICE, - ' Name ['.$g_service_data["name"].'] id ['.$g_service_data['serviceid'].']'); - } - show_messages(TRUE, S_SERVICE_DELETED, S_CANNOT_DELETE_SERVICE); - } - } - elseif(isset($_REQUEST["group_linkid"])) - { - foreach($_REQUEST["group_linkid"] as $linkid) - delete_service_link($linkid); - show_messages(TRUE, S_LINK_DELETED, S_CANNOT_DELETE_LINK); - } - elseif(isset($_REQUEST["linkid"])) - { - $result = delete_service_link($_REQUEST["linkid"]); - show_messages($result, S_LINK_DELETED, S_CANNOT_DELETE_LINK); - unset($_REQUEST["linkid"]); - } - elseif(isset($_REQUEST["serviceid"])) - { - $result = delete_service($service["serviceid"]); - show_messages($result, S_SERVICE_DELETED, S_CANNOT_DELETE_SERVICE); - add_audit_if($result,AUDIT_ACTION_DELETE,AUDIT_RESOURCE_IT_SERVICE, - ' Name ['.$service["name"].'] id ['.$service['serviceid'].']'); - unset($service,$path); - } - } - elseif(isset($_REQUEST["save_service"])) - { - $service_times = get_request('service_times',array()); - - $triggerid = isset($_REQUEST["linktrigger"]) ? $_REQUEST["triggerid"] : null; - if(isset($service["serviceid"])) - { - $result = update_service($service["serviceid"], - $_REQUEST["name"],$triggerid,$_REQUEST["algorithm"], - $_REQUEST["showsla"],$_REQUEST["goodsla"],$_REQUEST["sortorder"], - $service_times); - show_messages($result, S_SERVICE_UPDATED, S_CANNOT_UPDATE_SERVICE); - $serviceid = $service["serviceid"]; - $audit_acrion = AUDIT_ACTION_UPDATE; - } - else - { - $result = add_service( - $_REQUEST["name"],$triggerid,$_REQUEST["algorithm"], - $_REQUEST["showsla"],$_REQUEST["goodsla"],$_REQUEST["sortorder"], - $service_times); - show_messages($result, S_SERVICE_ADDED, S_CANNOT_ADD_SERVICE); - $serviceid = $result; - $audit_acrion = AUDIT_ACTION_ADD; - } - add_audit_if($result,$audit_acrion,AUDIT_RESOURCE_IT_SERVICE,' Name ['.$_REQUEST["name"].'] id ['.$serviceid.']'); - } - elseif(isset($_REQUEST["save_link"])) - { - if(isset($_REQUEST["linkid"])) - { - $result = update_service_link($_REQUEST["linkid"], - $_REQUEST["servicedownid"],$_REQUEST["serviceupid"],$_REQUEST["soft"]); - show_messages($result, S_LINK_ADDED, S_CANNOT_ADD_LINK); - } - else - { - $result = add_service_link($_REQUEST["servicedownid"],$_REQUEST["serviceupid"],$_REQUEST["soft"]); - show_messages($result, S_LINK_ADDED, S_CANNOT_ADD_LINK); - } - } - elseif(isset($_REQUEST["add_server"])) - { - if(!($host_data = DBfetch(DBselect('select h.* from hosts h where '.DBid2nodeid('h.hostid').'='.$ZBX_CURNODEID. - ' and h.hostid not in ('.$denyed_hosts.') and h.hostid='.$_REQUEST["serverid"])))) - { - access_deny(); - } - $result = add_host_to_services($_REQUEST["serverid"], $service["serviceid"]); - add_audit_if($result,AUDIT_ACTION_ADD,AUDIT_RESOURCE_IT_SERVICE,' Host ['.$host_data["host"].'] id ['.$_REQUEST["serverid"].']'); - show_messages($result, S_TRIGGER_ADDED, S_CANNOT_ADD_TRIGGER); - } - elseif(isset($_REQUEST["add_service_time"]) && isset($_REQUEST["new_service_time"])) - { - $_REQUEST['service_times'] = get_request('service_times',array()); - - $new_service_time['type'] = $_REQUEST["new_service_time"]['type']; - - if($_REQUEST["new_service_time"]['type'] == SERVICE_TIME_TYPE_ONETIME_DOWNTIME) - { - $new_service_time['from'] = strtotime($_REQUEST["new_service_time"]['from']); - $new_service_time['to'] = strtotime($_REQUEST["new_service_time"]['to']); - $new_service_time['note'] = $_REQUEST["new_service_time"]['note']; - } - else - { - $new_service_time['from'] = strtotime( - $_REQUEST["new_service_time"]['from_week'].' '.$_REQUEST["new_service_time"]['from'] - ); - $new_service_time['to'] = strtotime( - $_REQUEST["new_service_time"]['to_week'].' '.$_REQUEST["new_service_time"]['to'] - ); - $new_service_time['note'] = $_REQUEST["new_service_time"]['note']; - } - - while($new_service_time['to'] <= $new_service_time['from']) $new_service_time['to'] += 7*24*3600; - - if(!in_array($_REQUEST['service_times'], $new_service_time)) - array_push($_REQUEST['service_times'],$new_service_time); - } - elseif(isset($_REQUEST["del_service_times"]) && isset($_REQUEST["rem_service_times"])) - { - $_REQUEST["service_times"] = get_request("service_times",array()); - foreach($_REQUEST["rem_service_times"] as $val){ - unset($_REQUEST["service_times"][$val]); - } - } -?> -<?php - if(isset($service)) - { - $service = get_service_by_serviceid($service['serviceid']); // update date after ACTIONS */ - } - - $path = get_request('path', array()); - if(isset($service)) - { - $path[count($path)] = array('id'=>$service["serviceid"], 'name'=>$service["name"]); - } - array_unique($path); - - $menu_path = array(); - $new_path = array(); - foreach($path as $el) - { - if(count($new_path)==0) - { - $back_name = S_ROOT_SMALL; - $back_id = 0; - } - else - { - $back_name = $new_path[count($new_path)-1]['name']; - $back_id = $new_path[count($new_path)-1]['id']; - } - - if(isset($service) && $back_id == $service['serviceid']) break; - - array_push($menu_path, unpack_object(new CLink($back_name, '?serviceid='.$back_id.url_param($new_path,false,'path')))); - array_push($new_path, $el); - } - $_REQUEST['path'] = $path = $new_path; - show_table_header(S_IT_SERVICES_BIG.": ".implode('/',$menu_path)); +//---------------------------------------------------------------------- - unset($menu_path, $new_path, $el); - - $form = new CForm(); - $form->SetName("services"); - $form->AddVar("path", $path); - - if(isset($service)) - $form->AddVar("serviceid", $service['serviceid']); - - $table = new CTableInfo(); - $table->SetHeader(array( - array(new CCheckBox("all_services",null, - "CheckAll('".$form->GetName()."','all_services');"), - S_SERVICE), - S_STATUS_CALCULATION, - S_TRIGGER - )); + $denyed_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT); - $db_services = DBselect("select distinct s.* from services s left join triggers t on s.triggerid=t.triggerid ". - " left join functions f on t.triggerid=f.triggerid left join items i on f.itemid=i.itemid ". - " left join services_links sl on s.serviceid=sl.servicedownid ". + if(isset($_REQUEST['serviceid']) && $_REQUEST['serviceid'] > 0){ + $query = "SELECT s.*,sl.linkid FROM services s LEFT JOIN triggers t on s.triggerid=t.triggerid ". + " 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. - " and (sl.serviceupid".(!isset($service) ? - " is NULL " : - "=".$service['serviceid']." or s.serviceid=".$service['serviceid'] ).") ". - " order by s.sortorder,s.name"); - - while($db_service_data = DBfetch($db_services)) - { - $prefix = null; - $trigger = "-"; - - $description = $db_service_data["name"]." [".get_num_of_service_childs($db_service_data["serviceid"])."]"; - - if(isset($service["serviceid"])) - { - if($service["serviceid"] == $db_service_data["serviceid"]) - { - $description = new CSpan($description, 'bold'); - } - else - { - $prefix = " - "; - } - } - if(!(isset($service["serviceid"]) && $service["serviceid"] == $db_service_data["serviceid"])) - { - - $description = new CLink($description,"services.php?serviceid=".$db_service_data["serviceid"]. - url_param('path')."#form",'action'); - } - - if(isset($db_service_data["triggerid"])) - { - $trigger = expand_trigger_description($db_service_data["triggerid"]); - } - - $table->AddRow(array( - array(new CCheckBox("group_serviceid[]",null,null,$db_service_data["serviceid"]), - $prefix, - $description - ), - algorithm2str($db_service_data["algorithm"]), - $trigger - )); - } - - $table->SetFooter(new CCol(new CButtonQMessage('delete',S_DELETE_SELECTED,S_DELETE_SELECTED_SERVICES))); - $form->AddItem($table); - $form->Show(); -?> -<?php - if(isset($service["serviceid"])) - { - echo BR; - - show_table_header("LINKS"); - - $form = new CForm(); - $form->SetName("Links"); - $form->AddVar("serviceid",$service["serviceid"]); - $form->AddVar("path",$path); - - $table = new CTableInfo(); - $table->SetHeader(array( - array(new CCheckBox("all_services",null, - "CheckAll('".$form->GetName()."','all_services');"), - S_LINK), - S_SERVICE_1, - S_SERVICE_2, - S_SOFT_HARD_LINK - )); - - $result=DBselect("select distinct sl.linkid, sl.soft, sl.serviceupid, sl.servicedownid,". - " s1.name as serviceupname, s2.name as servicedownname". - " from services s1, services s2, services_links sl". - " where sl.serviceupid=s1.serviceid and sl.servicedownid=s2.serviceid". - " and (sl.serviceupid=".$service["serviceid"]." or sl.servicedownid=".$service["serviceid"].")"); - $i = 1; - while($row=DBfetch($result)) - { - $table->AddRow(array( - array( - new CCheckBox("group_linkid[]",null,null,$row["linkid"]), - new CLink(S_LINK.SPACE.$i++, - "services.php?form=update&linkid=".$row["linkid"].url_param("serviceid").url_param("path"), - "action"), - ), - new CLink($row["serviceupname"],"services.php?serviceid=".$row["serviceupid"].url_param("path")), - new CLink($row["servicedownname"],"services.php?serviceid=".$row["servicedownid"].url_param("path")), - $row["soft"] == 0 ? S_HARD : S_SOFT - )); + " and s.serviceid=".$_REQUEST["serviceid"]; + if( !($service = DBFetch(DBSelect($query))) ){ + access_deny(); } - $table->SetFooter(new CCol(new CButtonQMessage('delete',S_DELETE_SELECTED,S_DELETE_SELECTED_SERVICES))); - $form->AddItem($table); - $form->Show(); - } -?> - -<?php - echo BR; - - $frmService = new CFormTable(S_SERVICE); - $frmService->SetHelp("web.services.service.php"); - $frmService->AddVar("path",$path); - - $service_times = get_request('service_times',array()); - $new_service_time = get_request('new_service_time',array('type' => SERVICE_TIME_TYPE_UPTIME)); - - if(isset($service["serviceid"])) - { - $frmService->AddVar("serviceid",$service["serviceid"]); - - $frmService->SetTitle(S_SERVICE." \"".$service["name"]."\""); } - - if(isset($service["serviceid"]) && !isset($_REQUEST["form_refresh"])) - { - $name = $service["name"]; - $algorithm = $service["algorithm"]; - $showsla = $service["showsla"]; - $goodsla = $service["goodsla"]; - $sortorder = $service["sortorder"]; - $triggerid = $service["triggerid"]; - $linktrigger = isset($triggerid) ? 1 : 0; - if(!isset($triggerid)) $triggerid = 0; - - $result = DBselect('select * from services_times where serviceid='.$service['serviceid']); - while($db_stime = DBfetch($result)) - { - $stime = array( - 'type'=> $db_stime['type'], - 'from'=> $db_stime['ts_from'], - 'to'=> $db_stime['ts_to'], - 'note'=> $db_stime['note'] +//-------------------------------------------------------------------------- + +$query = 'SELECT distinct s.serviceid, sl.servicedownid, sl_p.serviceupid as serviceupid, + s.name caption, s.algorithm, t.description, 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 + WHERE '.DBid2nodeid("s.serviceid").'='.$ZBX_CURNODEID.' + ORDER BY s.sortorder, sl.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'=>'' ); - if(in_array($stime, $service_times)) continue; - array_push($service_times, $stime); - } - } - else - { - $name = get_request("name",""); - $showsla = get_request("showsla",0); - $goodsla = get_request("goodsla",99.05); - $sortorder = get_request("sortorder",0); - $algorithm = get_request("algorithm",0); - $triggerid = get_request("triggerid",0); - $linktrigger = get_request("linktrigger",0); - } - if(isset($service)) - { - $frmService->AddVar("serviceid",$service["serviceid"]); - } - $frmService->AddRow(S_NAME,new CTextBox("name",$name)); - - $cmbAlg = new CComboBox("algorithm",$algorithm); - $cmbAlg->AddItem(0,S_DO_NOT_CALCULATE); - $cmbAlg->AddItem(1,S_MAX_BIG); - $cmbAlg->AddItem(2,S_MIN_BIG); - $frmService->AddRow(S_STATUS_CALCULATION_ALGORITHM, $cmbAlg); - - $frmService->AddRow(S_SHOW_SLA, new CCheckBox("showsla",$showsla,'submit();',1)); - - if($showsla) - $frmService->AddRow(S_ACCEPTABLE_SLA_IN_PERCENT,new CTextBox("goodsla",$goodsla,6)); - else - $frmService->AddVar("goodsla",$goodsla); +$services[0]=$row; - $stime_el = array(); - $i = 0; - foreach($service_times as $val) - { - switch($val['type']) - { - case SERVICE_TIME_TYPE_UPTIME: - $type = new CSpan(S_UPTIME,'enabled'); - $from = date('l H:i', $val['from']); - $to = date('l H:i', $val['to']); - break; - case SERVICE_TIME_TYPE_DOWNTIME: - $type = new CSpan(S_DOWNTIME,'disabled'); - $from = date('l H:i', $val['from']); - $to = date('l H:i', $val['to']); - break; - case SERVICE_TIME_TYPE_ONETIME_DOWNTIME: - $type = new CSpan(S_ONE_TIME_DOWNTIME,'disabled'); - $from = date('d M Y H:i', $val['from']); - $to = date('d M Y H:i', $val['to']); - break; - } - array_push($stime_el, array(new CCheckBox("rem_service_times[]", 'no', null,$i), - $type,':'.SPACE, $from, SPACE.'-'.SPACE, $to, - (!empty($val['note']) ? BR.'['.htmlspecialchars($val['note']).']' : '' ),BR)); +while($row = DBFetch($result)){ - $frmService->AddVar('service_times['.$i.'][type]', $val['type']); - $frmService->AddVar('service_times['.$i.'][from]', $val['from']); - $frmService->AddVar('service_times['.$i.'][to]', $val['to']); - $frmService->AddVar('service_times['.$i.'][note]', $val['note']); + (empty($row['serviceupid']))?($row['serviceupid']='0'):(''); + (empty($row['description']))?($row['description']='None'):(''); - $i++; - } - - if(count($stime_el)==0) - array_push($stime_el, S_NO_TIMES_DEFINED); - else - array_push($stime_el, new CButton('del_service_times','delete selected')); - - $frmService->AddRow(S_SERVICE_TIMES, $stime_el); - $cmbTimeType = new CComboBox("new_service_time[type]",$new_service_time['type'],'submit()'); - $cmbTimeType->AddItem(SERVICE_TIME_TYPE_UPTIME, S_UPTIME); - $cmbTimeType->AddItem(SERVICE_TIME_TYPE_DOWNTIME, S_DOWNTIME); - $cmbTimeType->AddItem(SERVICE_TIME_TYPE_ONETIME_DOWNTIME, S_ONE_TIME_DOWNTIME); - - $time_param = new CTable(); - if($new_service_time['type'] == SERVICE_TIME_TYPE_ONETIME_DOWNTIME) - { - $time_param->AddRow(array(S_NOTE, new CTextBox('new_service_time[note]','<short description>',40))); - $time_param->AddRow(array(S_FROM, new CTextBox('new_service_time[from]','d M Y H:i',20))); - $time_param->AddRow(array(S_TILL, new CTextBox('new_service_time[to]','d M Y H:i',20))); - } - else - { - $cmbWeekFrom = new CComboBox('new_service_time[from_week]','Sunday'); - $cmbWeekTo = new CComboBox('new_service_time[to_week]','Sunday'); - foreach(array( - 'Sunday' =>S_SUNDAY, - 'Monday' =>S_MONDAY, - 'Tuesday' =>S_TUESDAY, - 'Wednesday'=>S_WEDNESDAY, - 'Thursday'=>S_THURSDAY, - 'Friday' =>S_FRIDAY, - 'Saturday' =>S_SATURDAY - ) as $day_num => $day_str) - { - $cmbWeekFrom->AddItem($day_num, $day_str); - $cmbWeekTo->AddItem($day_num, $day_str); - } - - $time_param->AddRow(array(S_FROM, $cmbWeekFrom, new CTextBox('new_service_time[from]','H:i',9))); - $time_param->AddRow(array(S_TILL, $cmbWeekTo, new CTextBox('new_service_time[to]','H:i',9))); - $frmService->AddVar('new_service_time[note]',''); - } - - $frmService->AddRow(S_NEW_SERVICE_TIME, array( - $cmbTimeType, BR, - $time_param, BR, - new CButton('add_service_time','add') - )); - - $frmService->AddRow(S_LINK_TO_TRIGGER_Q, new CCheckBox("linktrigger",$linktrigger,"submit();",1)); - - if($linktrigger == 1) - { - if($triggerid > 0) - $trigger = expand_trigger_description($triggerid); - else - $trigger = ""; - - $frmService->AddRow(S_TRIGGER,array( - new CTextBox("trigger",$trigger,32,'yes'), - new CButton("btn1",S_SELECT, - "return PopUp('popup.php?". - "dstfrm=".$frmService->GetName()."&dstfld1=triggerid&dstfld2=trigger". - "&srctbl=triggers&srcfld1=triggerid&&srcfld2=description');", - 'T') - )); - $frmService->AddVar("triggerid",$triggerid); - } - - $frmService->AddRow(S_SORT_ORDER_0_999, new CTextBox("sortorder",$sortorder,3)); - - $frmService->AddItemToBottomRow(new CButton("save_service",S_SAVE)); - if(isset($service["serviceid"])) - { - $frmService->AddItemToBottomRow(SPACE); - $frmService->AddItemToBottomRow(new CButtonDelete( - "Delete selected service?", - url_param("form").url_param("serviceid").url_param("path") - )); - } - $frmService->AddItemToBottomRow(SPACE); - $frmService->AddItemToBottomRow(new CButtonCancel(url_param('serviceid').url_param('path'))); - $frmService->Show(); -?> - -<?php - if(isset($service["serviceid"])) - { - echo BR; - - $frmLink = new CFormTable(S_LINK_TO); - $frmLink->SetHelp("web.services.link.php"); - $frmLink->AddVar("serviceid",$service["serviceid"]); - $frmLink->AddVar("path",$path); + if(isset($services[$row['serviceid']])){ + $services[$row['serviceid']] = array_merge($services[$row['serviceid']],$row); + } else { + + $services[$row['serviceid']] = $row; + } - if(isset($_REQUEST["linkid"])) - { - $frmLink->AddVar("linkid",$_REQUEST["linkid"]); + if(isset($row['serviceupid'])) + $services[$row['serviceupid']]['childs'][] = array('id' => $row['serviceid'], 'soft' => 0, 'linkid' => 0); - $link = get_services_links_by_linkid($_REQUEST["linkid"]); - $serviceupid = $link["serviceupid"]; - $servicedownid = $link["servicedownid"]; - $soft = $link["soft"]; - } - else - { - $serviceupid = get_request("serviceupid",$service["serviceid"]); - $servicedownid = get_request("servicedownid",0); - $soft = get_request("soft",1); - } + if(isset($row['servicedownid'])) + $services[$row['serviceid']]['childs'][] = array('id' => $row['servicedownid'], 'soft' => 1, 'linkid' => $row['linkid']); +} - $frmLink->AddVar("serviceupid",$service["serviceid"]); - $name = $service["name"]; - if(isset($service["triggerid"])) - $name .= ": ".expand_trigger_description($service["triggerid"]); - $frmLink->AddRow(S_SERVICE_1, new CTextBox("service",$name,60,'yes')); +createServiceTree($services,0,$treeServ); - $cmbServices = new CComboBox("servicedownid",$servicedownid); - $result=DBselect("select serviceid,triggerid,name from services where serviceid<>$serviceupid order by name"); - - $result = DBselect("select s.* from services s left join triggers t on s.triggerid=t.triggerid ". - " 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. - " and s.serviceid <> ".$serviceupid); - - while($row=Dbfetch($result)) - { - if(DBfetch(DBselect("select linkid from services_links". - " where (servicedownid<>$servicedownid and serviceupid=$serviceupid and servicedownid=".$row["serviceid"].") ". - " or (servicedownid=".$row["serviceid"]." and soft=0) "))) - continue; +echo '<script src="js/services.js" type="text/javascript"></script>'; - $name = $row["name"]; - if(isset($row["triggerid"])) - $name .= ": ".expand_trigger_description($row["triggerid"]); - - $cmbServices->AddItem($row["serviceid"],$name); - } +$p = new Ctag('p','yes'); +$p->AddOption('align','center'); +$p->AddOption('id','message'); +(isset($_REQUEST['msg']))?($p->AddItem('<b>'.$_REQUEST['msg'].'</b>')):(''); +$p->Show(); - $frmLink->AddRow(S_SERVICE_2, $cmbServices); +show_table_header(S_IT_SERVICES_BIG); - $frmLink->AddRow(S_SOFT_LINK_Q, new CCheckBox("soft",$soft,null,1)); +$tree = new CTree($treeServ,array('caption' => '<b>'.S_SERVICE.'</b>','algorithm' => '<b>'.S_STATUS_CALCULATION.'</b>', 'description' => '<b>'.S_TRIGGER.'</b>')); - $frmLink->AddItemToBottomRow(new CButton("save_link",S_SAVE)); - if(isset($_REQUEST["linkid"])) - { - $frmLink->AddItemToBottomRow(SPACE); - $frmLink->AddItemToBottomRow(new CButtonDelete( - "Delete selected services linkage?", - url_param("form").url_param("linkid").url_param("serviceid").url_param('path') - )); - } - $frmLink->AddItemToBottomRow(SPACE); - $frmLink->AddItemToBottomRow(new CButtonCancel(url_param("serviceid").url_param("path"))); - $frmLink->Show(); - } -?> +if($tree){ + echo $tree->CreateJS(); + echo $tree->SimpleHTML(); +} else { + error(S_CANT_FORMAT_TREE); +} -<?php - if(isset($service["serviceid"])) - { - echo BR; - - $frmDetails = new CFormTable(S_ADD_SERVER_DETAILS); - $frmDetails->SetHelp("web.services.server.php"); - $frmDetails->AddVar("serviceid",$service["serviceid"]); - $frmDetails->AddVar("path",$path); - - $cmbServers = new CComboBox("serverid"); - $result=DBselect("select hostid,host from hosts where ".DBid2nodeid("hostid")."=".$ZBX_CURNODEID. - " and hostid not in (".$denyed_hosts.") ". - " order by host"); - while($row=DBfetch($result)) - { - $cmbServers->AddItem($row["hostid"],$row["host"]); - } - $frmDetails->AddRow(S_SERVER,$cmbServers); - $frmDetails->AddItemToBottomRow(new CButton("add_server","Add server")); - $frmDetails->Show(); - } - -?> +$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(); -<?php include_once "include/page_footer.php"; - -?> +?>
\ No newline at end of file |
