diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-03-16 15:26:21 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-03-16 15:26:21 +0000 |
| commit | d76992f73658df06227395e4a79c4366294efebe (patch) | |
| tree | 20acf2af5d2155e07401c4903b9bb4cddfb4fec2 /frontends/php | |
| parent | f9fade8feec4ed06a5f433f87d09adc4098bb51e (diff) | |
| download | zabbix-d76992f73658df06227395e4a79c4366294efebe.tar.gz zabbix-d76992f73658df06227395e4a79c4366294efebe.tar.xz zabbix-d76992f73658df06227395e4a79c4366294efebe.zip | |
- added trigger selecton from popup (Eugene)
- improved popup selection (Eugene)
- improved "IT services" configuration (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2702 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php')
| -rw-r--r-- | frontends/php/actionconf.php | 2 | ||||
| -rw-r--r-- | frontends/php/css.css | 8 | ||||
| -rw-r--r-- | frontends/php/hosts.php | 4 | ||||
| -rw-r--r-- | frontends/php/include/actions.inc.php | 3 | ||||
| -rw-r--r-- | frontends/php/include/classes/cform.inc.php | 8 | ||||
| -rw-r--r-- | frontends/php/include/classes/clink.inc.php | 12 | ||||
| -rw-r--r-- | frontends/php/include/classes/ctag.inc.php | 2 | ||||
| -rw-r--r-- | frontends/php/include/forms.inc.php | 63 | ||||
| -rw-r--r-- | frontends/php/include/locales/en_gb.inc.php | 5 | ||||
| -rw-r--r-- | frontends/php/include/services.inc.php | 124 | ||||
| -rw-r--r-- | frontends/php/items.php | 4 | ||||
| -rw-r--r-- | frontends/php/popup.php | 290 | ||||
| -rw-r--r-- | frontends/php/services.php | 679 | ||||
| -rw-r--r-- | frontends/php/triggers.php | 25 |
14 files changed, 619 insertions, 610 deletions
diff --git a/frontends/php/actionconf.php b/frontends/php/actionconf.php index fc94f1ec..72e8c03d 100644 --- a/frontends/php/actionconf.php +++ b/frontends/php/actionconf.php @@ -314,7 +314,7 @@ array_push($footerButtons, SPACE); array_push($footerButtons, new CButton('group_delete','Delete selected', "return Confirm('Delete selected action?');")); - $tblActions->SetFooter(new CCol($footerButtons),'table_footer'); + $tblActions->SetFooter(new CCol($footerButtons)); $form->AddItem($tblActions); $form->Show(); diff --git a/frontends/php/css.css b/frontends/php/css.css index 13bc8e60..8762efff 100644 --- a/frontends/php/css.css +++ b/frontends/php/css.css @@ -631,9 +631,11 @@ A.action:visited { color:#3C3089; text-decoration: none; } A.action:hover { color:#3C3089; text-decoration: underline; } A.action:active { color:#3C3089; text-decoration: underline;} +.enabled { color: #00AA00; } +.disabled { color: #AA0000; } +.unknown { color: #AAAAAA; } .on { color: #AA0000; } .off { color: #00AA00; } -.unknown { color: #AAAAAA; } .disaster { background-color: #FF0000; } .high { background-color: #FF8888; } @@ -714,3 +716,7 @@ ul { font-size: 16px; } + +.bold { + font-weight: bold; +} diff --git a/frontends/php/hosts.php b/frontends/php/hosts.php index ff9cbef6..0e17c97b 100644 --- a/frontends/php/hosts.php +++ b/frontends/php/hosts.php @@ -495,7 +495,7 @@ $show_only_tmp ? NULL : SPACE, new CButton('delete','Delete selected', "return Confirm('".S_DELETE_SELECTED_HOSTS_Q."');")); - $table->SetFooter(new CCol($footerButtons),'table_footer'); + $table->SetFooter(new CCol($footerButtons)); $form->AddItem($table); $form->Show(); @@ -568,7 +568,7 @@ array_push($footerButtons, SPACE); array_push($footerButtons, new CButton('delete','Delete selected', "return Confirm('".S_DELETE_SELECTED_GROUPS_Q."');")); - $table->SetFooter(new CCol($footerButtons),'table_footer'); + $table->SetFooter(new CCol($footerButtons)); $form->AddItem($table); $form->Show(); diff --git a/frontends/php/include/actions.inc.php b/frontends/php/include/actions.inc.php index 3993d2a7..25a64cb0 100644 --- a/frontends/php/include/actions.inc.php +++ b/frontends/php/include/actions.inc.php @@ -298,8 +298,7 @@ } if($conditiontype==CONDITION_TYPE_TRIGGER) { - $trigger=get_trigger_by_triggerid($value); - if($trigger) $desc=S_TRIGGER." $op "."\"".$trigger["description"]."\""; + $desc=S_TRIGGER." $op "."\"".expand_trigger_description($value)."\""; } else if($conditiontype==CONDITION_TYPE_HOST) { diff --git a/frontends/php/include/classes/cform.inc.php b/frontends/php/include/classes/cform.inc.php index 3dee3109..ace2a10b 100644 --- a/frontends/php/include/classes/cform.inc.php +++ b/frontends/php/include/classes/cform.inc.php @@ -39,8 +39,16 @@ } function SetAction($value=NULL) { + global $page; + if(is_null($value)) + { + if(isset($page["file"])) + { + return $this->AddOption("action",$page["file"]); + } return 1; + } elseif(!is_string($value)) { return $this->error("Incorrect value for SetAction [$value]"); diff --git a/frontends/php/include/classes/clink.inc.php b/frontends/php/include/classes/clink.inc.php index dd32db42..354b7579 100644 --- a/frontends/php/include/classes/clink.inc.php +++ b/frontends/php/include/classes/clink.inc.php @@ -35,6 +35,18 @@ $this->AddItem($item); $this->SetUrl($url); } + function SetAction($value=NULL) + { + if(is_null($value)) + { + return $this->AddOption("action",$page["file"]); + } + elseif(!is_string($value)) + { + return $this->error("Incorrect value for SetAction [$value]"); + } + return $this->AddOption("onClick",$value); + } function SetUrl($value) { if(is_null($value)) diff --git a/frontends/php/include/classes/ctag.inc.php b/frontends/php/include/classes/ctag.inc.php index 8a115bde..563ad4eb 100644 --- a/frontends/php/include/classes/ctag.inc.php +++ b/frontends/php/include/classes/ctag.inc.php @@ -119,7 +119,7 @@ } if(!is_string($value) && !is_int($value) && !is_float($value)) { - return $this->error("Incorrect value for AddOption [$value]"); + return $this->error("Incorrect value for AddOption [$name] [$value]"); } $this->options[$name] = htmlspecialchars(strval($value)); diff --git a/frontends/php/include/forms.inc.php b/frontends/php/include/forms.inc.php index e73db8d7..0e4aa9b3 100644 --- a/frontends/php/include/forms.inc.php +++ b/frontends/php/include/forms.inc.php @@ -1036,9 +1036,9 @@ $frmAutoReg->AddRow(S_PRIORITY,new CTextBox("priority",$priority,4)); $frmAutoReg->AddRow(S_HOST,array( new CTextBox("host",$host,32,NULL,'yes'), - new CButton("btn1","Select", - "return PopUp('popup.php?form=".$frmAutoReg->GetName(). - "&field1=hostid&field2=host','new_win',". + new CButton("btn1",S_SELECT, + "return PopUp('popup.php?dstfrm=".$frmAutoReg->GetName(). + "&dstfld1=hostid&dstfld2=host&srctbl=hosts&srcfld1=hostid&srcfld2=host','new_win',". "'width=450,height=450,resizable=1,scrollbars=1');", 'T') )); @@ -1315,9 +1315,9 @@ $txtCondVal = new CTextBox('host','',20); $txtCondVal->SetReadonly('yes'); - $btnSelect = new CButton('btn1','Select', - "return PopUp('popup.php?form=".$frmAction->GetName(). - "&field1=new_condition_value&field2=host','new_win',". + $btnSelect = new CButton('btn1',S_SELECT, + "return PopUp('popup.php?dstfrm=".$frmAction->GetName(). + "&dstfld1=new_condition_value&dstfld2=host&srctbl=hosts&srcfld1=hostid&srcfld2=host','new_win',". "'width=450,height=450,resizable=1,scrollbars=1');"); $btnSelect->SetAccessKey('T'); @@ -1325,17 +1325,17 @@ } else if($new_condition_type == CONDITION_TYPE_TRIGGER) { - $cmbCondVal = new CComboBox('new_condition_value'); - $triggers = DBselect("select distinct h.host,t.triggerid,t.description". - " from triggers t, functions f,items i, hosts h". - " where t.triggerid=f.triggerid and f.itemid=i.itemid". - " and h.hostid=i.hostid order by h.host"); - while($trigger = DBfetch($triggers)) - { - $cmbCondVal->AddItem($trigger["triggerid"], - $trigger["host"].":".SPACE.$trigger["description"]); - } - array_push($rowCondition,$cmbCondVal); + $frmAction->AddVar('new_condition_value','0'); + + $txtCondVal = new CTextBox('trigger','',20); + $txtCondVal->SetReadonly('yes'); + + $btnSelect = new CButton('btn1',S_SELECT, + "return PopUp('popup.php?dstfrm=".$frmAction->GetName(). + "&dstfld1=new_condition_value&dstfld2=trigger&srctbl=triggers&srcfld1=triggerid&srcfld2=description','new_win',". + "'width=600,height=450,resizable=1,scrollbars=1');"); + $btnSelect->SetAccessKey('T'); + array_push($rowCondition, $txtCondVal, $btnSelect); } else if($new_condition_type == CONDITION_TYPE_TRIGGER_NAME) { @@ -2469,8 +2469,8 @@ $frmEl->AddVar("elementid",$elementid); $frmEl->AddRow(S_HOST, array( new CTextBox("host",$host,32,NULL,'yes'), - new CButton("btn1","Select","return PopUp('popup.php?form=".$frmEl->GetName(). - "&field1=elementid&field2=host','new_win',". + new CButton("btn1",S_SELECT,"return PopUp('popup.php?dstfrm=".$frmEl->GetName(). + "&dstfld1=elementid&dstfld2=host&srctbl=hosts&srcfld1=hostid&srcfld2=host','new_win',". "'width=450,height=450,resizable=1,scrollbars=1');","T") )); } @@ -2588,14 +2588,6 @@ $cmbElements->AddItem($db_selement["selementid"],$label); } - $cmbIndic = new CComboBox("triggerid",$triggerid); - $cmbIndic->AddItem(0,"-"); - $result=DBselect("select triggerid from triggers order by description"); - while($row=DBfetch($result)) - { - $cmbIndic->AddItem($row["triggerid"],expand_trigger_description($row["triggerid"])); - } - $cmbType = new CComboBox("drawtype_off",$drawtype_off); $cmbType->AddItem(0,get_drawtype_description(0)); $cmbType->AddItem(1,get_drawtype_description(1)); @@ -2623,7 +2615,22 @@ $cmbElements->SetValue($selementid2); // rename without recreation $frmCnct->AddRow("Element 2",$cmbElements); - $frmCnct->AddRow("Link status indicator",$cmbIndic); + $frmCnct->AddVar('triggerid',$triggerid); + + if($triggerid > 0) + $trigger = expand_trigger_description($triggerid); + else + $trigger = ""; + + $txtTrigger = new CTextBox('trigger',$trigger,60); + $txtTrigger->SetReadonly('yes'); + + $btnSelect = new CButton('btn1',S_SELECT, + "return PopUp('popup.php?dstfrm=".$frmCnct->GetName(). + "&dstfld1=triggerid&dstfld2=trigger&srctbl=triggers&srcfld1=triggerid&srcfld2=description','new_win',". + "'width=600,height=450,resizable=1,scrollbars=1');"); + $btnSelect->SetAccessKey('T'); + $frmCnct->AddRow("Link status indicator",array($txtTrigger, $btnSelect)); $frmCnct->AddRow("Type (OFF)",$cmbType); $frmCnct->AddRow("Color (OFF)",$cmbColor); diff --git a/frontends/php/include/locales/en_gb.inc.php b/frontends/php/include/locales/en_gb.inc.php index fe7d6406..1c59a4c6 100644 --- a/frontends/php/include/locales/en_gb.inc.php +++ b/frontends/php/include/locales/en_gb.inc.php @@ -749,6 +749,7 @@ "S_SERVER"=> "Server", "S_DELETE"=> "Delete", "S_DELETE_SELECTED_SERVICES"=> "Delete selected services?", + "S_DELETE_SELECTED_LINKS"=> "Delete selected links?", "S_SERVICES_DELETED"=> "Services deleted", "S_CANNOT_DELETE_SERVICES"=> "Cannot delete services", @@ -761,6 +762,7 @@ "S_TRIGGER_BIG"=> "TRIGGER", // triggers.php + "S_NO_TRIGGERS_DEFINED"=> "No triggers defined", "S_CONFIGURATION_OF_TRIGGERS"=> "Configuration of triggers", "S_CONFIGURATION_OF_TRIGGERS_BIG"=> "CONFIGURATION OF TRIGGERS", "S_DEPENDENCY_ADDED"=> "Dependency added", @@ -918,6 +920,9 @@ "S_BULKLOADER_IMPORT_ACTIONS"=> "Import Actions", "S_BULKLOADER_IMPORT_ITSERVICES"=> "Import IT Services", +// popup.php + "S_EMPTY"=> "Empty", + // Menu "S_HELP"=> "Help", diff --git a/frontends/php/include/services.inc.php b/frontends/php/include/services.inc.php index c5a36eed..5a830e16 100644 --- a/frontends/php/include/services.inc.php +++ b/frontends/php/include/services.inc.php @@ -19,46 +19,26 @@ **/ ?> <?php - function add_service($serviceid,$name,$triggerid,$linktrigger,$algorithm,$showsla,$goodsla,$sortorder) + function add_service($name,$triggerid,$algorithm,$showsla,$goodsla,$sortorder) { - if( isset($showsla)&&($showsla=="on") ) - { - $showsla=1; - } - else - { - $showsla=0; - } - if( isset($linktrigger)&&($linktrigger=="on") ) - { - if(!isset($triggerid)) - { - error("Choose trigger first"); - return false; - } -// $trigger=get_trigger_by_triggerid($triggerid); -// $description=$trigger["description"]; -// if( strstr($description,"%s")) -// { - $description=expand_trigger_description($triggerid); -// } - $sql="insert into services (name,triggerid,status,algorithm,showsla,goodsla,sortorder) values (".zbx_dbstr($description).",$triggerid,0,$algorithm,$showsla,$goodsla,$sortorder)"; - } - else - { - $sql="insert into services (name,status,algorithm,showsla,goodsla,sortorder) values (".zbx_dbstr($name).",0,$algorithm,$showsla,$goodsla,$sortorder)"; - } + if(is_null($triggerid)) $triggerid = 'NULL'; + + $sql="insert into services (name,status,triggerid,algorithm,showsla,goodsla,sortorder)". + " values (".zbx_dbstr($name).",0,$triggerid,$algorithm,$showsla,$goodsla,$sortorder)"; $result=DBexecute($sql); if(!$result) { return FALSE; } - $id=DBinsert_id($result,"services","serviceid"); - if(isset($serviceid)) - { - add_service_link($id,$serviceid,0); - } - return $id; + return DBinsert_id($result,"services","serviceid"); + } + + function update_service($serviceid,$name,$triggerid,$algorithm,$showsla,$goodsla,$sortorder) + { + if(is_null($triggerid)) $triggerid = 'NULL'; + + $sql="update services set name=".zbx_dbstr($name).",triggerid=$triggerid,status=0,algorithm=$algorithm,showsla=$showsla,goodsla=$goodsla,sortorder=$sortorder where serviceid=$serviceid"; + return DBexecute($sql); } function add_host_to_services($hostid,$serviceid) @@ -67,8 +47,8 @@ $result=DBselect($sql); while($row=DBfetch($result)) { - $serviceid2=add_service($serviceid,$row["description"],$row["triggerid"],"on",0,"off",99,0); -// add_service_link($serviceid2,$serviceid,0); + $serviceid2=add_service($row["description"],$row["triggerid"],"on",0,"off",99,0); + add_service_link($serviceid2,$serviceid,0); } return 1; } @@ -160,44 +140,37 @@ return TRUE; } - function update_service($serviceid,$name,$triggerid,$linktrigger,$algorithm,$showsla,$goodsla,$sortorder) + function add_service_link($servicedownid,$serviceupid,$softlink) { - if( isset($linktrigger)&&($linktrigger=="on") ) + if( ($softlink==0) && (is_service_hardlinked($servicedownid)==true) ) { - // No mistake here - $triggerid=$triggerid; + return false; } - else - { - $triggerid='NULL'; - } - if( isset($showsla)&&($showsla=="on") ) - { - $showsla=1; - } - else + + if($servicedownid==$serviceupid) { - $showsla=0; + error("cannot link service to itself."); + return false; } - $sql="update services set name=".zbx_dbstr($name).",triggerid=$triggerid,status=0,algorithm=$algorithm,showsla=$showsla,goodsla=$goodsla,sortorder=$sortorder where serviceid=$serviceid"; - return DBexecute($sql); - } - function add_service_link($servicedownid,$serviceupid,$softlink) + $sql="insert into services_links (servicedownid,serviceupid,soft) values ($servicedownid,$serviceupid,$softlink)"; + return dbexecute($sql); + } + function update_service_link($linkid,$servicedownid,$serviceupid,$softlink) { - if( ($softlink==0) && (is_service_hardlinked($servicedownid)==TRUE) ) + if( ($softlink==0) && (is_service_hardlinked($servicedownid)==true) ) { - return FALSE; + return false; } if($servicedownid==$serviceupid) { - error("Cannot link service to itself."); - return FALSE; + error("cannot link service to itself."); + return false; } - $sql="insert into services_links (servicedownid,serviceupid,soft) values ($servicedownid,$serviceupid,$softlink)"; - return DBexecute($sql); + $sql="update services_links set servicedownid=$servicedownid, serviceupid=$serviceupid, soft=$softlink where linkid=$linkid"; + return dbexecute($sql); } function get_last_service_value($serviceid,$clock) @@ -351,4 +324,35 @@ } return FALSE; } + + function get_services_links_by_linkid($linkid) + { + $result=DBselect("select * from services_links where linkid=$linkid"); + if(Dbnum_rows($result) == 1) + { + return DBfetch($result); + } + else + { + error("No service linkage with linkid=[$linkid]"); + } + return FALSE; + } + + function algorithm2str($algorithm) + { + if($algorithm == SERVICE_ALGORITHM_NONE) + { + return S_NONE; + } + elseif($algorithm == SERVICE_ALGORITHM_MAX) + { + return S_MAX_OF_CHILDS; + } + elseif($algorithm == SERVICE_ALGORITHM_MIN) + { + return S_MIN_OF_CHILDS; + } + return S_UNKNOWN; + } ?> diff --git a/frontends/php/items.php b/frontends/php/items.php index c0dda040..e7ae5bc6 100644 --- a/frontends/php/items.php +++ b/frontends/php/items.php @@ -359,7 +359,7 @@ show_header2(S_CONFIGURATION_OF_ITEMS_BIG, $form); // TABLE - $form = new CForm('items.php'); + $form = new CForm(); $form->SetName('items'); $form->AddVar('hostid',$_REQUEST["hostid"]); @@ -462,7 +462,7 @@ array_push($footerButtons, SPACE); array_push($footerButtons, new CButton('group_task','Delete selected', "return Confirm('".S_DELETE_SELECTED_ITEMS_Q."');")); - $table->SetFooter(new CCol($footerButtons),'table_footer'); + $table->SetFooter(new CCol($footerButtons)); $form->AddItem($table); $form->Show(); diff --git a/frontends/php/popup.php b/frontends/php/popup.php index 9e3e4f8d..56385c79 100644 --- a/frontends/php/popup.php +++ b/frontends/php/popup.php @@ -21,138 +21,238 @@ <?php include "include/config.inc.php"; include "include/forms.inc.php"; - $page["title"] = "S_HOSTS"; + + $dstfrm = get_request("dstfrm",0); // destination form + $dstfld1 = get_request("dstfld1", 0); // output field on destination form + $dstfld2 = get_request("dstfld2", 0); // second output field on destination form + $srctbl = get_request("srctbl", 0); // source table name + $srcfld1 = get_request("srcfld1", 0); // source table field [can be different from fields of source table] + $srcfld2 = get_request("srcfld2", 0); // second source table field [can be different from fields of source table] + + if($srctbl == "hosts") { $page["title"] = "S_HOSTS_BIG"; $right_src = "Host"; } + if($srctbl == "triggers"){ $page["title"] = "S_TRIGGERS_BIG"; $right_src = "Triggers"; } + + if(!isset($page["title"])) + { + show_header("Error",0,1); + error("Incorrect URL"); + show_messages(); + exit; + } + $page["file"] = "popup.php"; show_header($page["title"],0,1); insert_confirm_javascript(); + + if(defined($page["title"])) $page["title"] = constant($page["title"]); ?> <?php - if(!check_anyright("Host","R")) + if(!check_anyright($right_src,"R")) { show_table_header("<font color=\"AA0000\">".S_NO_PERMISSIONS."</font>"); show_page_footer(); exit; } ?> - <?php - - $h1=SPACE.S_HOSTS_BIG; - -// $h2_form1="<form name=\"form2\" method=\"get\" action=\"popup.php\">"; - - - $h2=S_GROUP.SPACE; - $h2=$h2."<input name=\"form\" type=\"hidden\" value=".$_REQUEST["form"].">"; - $h2=$h2."<input name=\"field1\" type=\"hidden\" value=".$_REQUEST["field1"].">"; - $h2=$h2."<input name=\"field2\" type=\"hidden\" value=".$_REQUEST["field2"].">"; - $h2=$h2."<select class=\"biginput\" name=\"groupid\" onChange=\"submit()\">"; - $h2=$h2.form_select("groupid",0,S_ALL_SMALL); - $result=DBselect("select groupid,name from groups order by name"); - while($row=DBfetch($result)) + $frmTitle = new CForm(); + $frmTitle->AddVar("dstfrm", $dstfrm); + $frmTitle->AddVar("dstfld1", $dstfld1); + $frmTitle->AddVar("dstfld2", $dstfld2); + $frmTitle->AddVar("srctbl", $srctbl); + $frmTitle->AddVar("srcfld1", $srcfld1); + $frmTitle->AddVar("srcfld2", $srcfld2); + + + if(in_array($srctbl,array("hosts","triggers"))) { -// Check if at least one host with read permission exists for this group - $result2=DBselect("select h.hostid,h.host from hosts h,items i,hosts_groups hg where h.hostid=i.hostid and hg.groupid=".$row["groupid"]." and hg.hostid=h.hostid and h.status not in (".HOST_STATUS_DELETED.")group by h.hostid,h.host order by h.host"); - $cnt=0; - while($row2=DBfetch($result2)) - { - if(!check_right("Host","R",$row2["hostid"])) + $groupid = get_request("groupid",get_profile("web.popup.groupid",0)); + $cmbGroups = new CComboBox("groupid",$groupid,"submit()"); + $cmbGroups->AddItem(0,S_ALL_SMALL); + $db_groups = DBselect("select groupid,name from groups order by name"); + while($group = DBfetch($db_groups)) + { // Check if at least one host with read permission exists for this group + $db_hosts = DBselect("select distinct h.hostid from hosts h,items i,hosts_groups hg". + " where h.hostid=i.hostid and hg.groupid=".$group["groupid"]." and hg.hostid=h.hostid". + " and h.status not in (".HOST_STATUS_DELETED.")group by h.hostid,h.host order by h.host"); + while($host = DBfetch($db_hosts)) { - continue; + if(!check_right("Host","R",$host["hostid"])) continue; + $cmbGroups->AddItem($group["groupid"],$group["name"]); + break; } - $cnt=1; break; } - if($cnt!=0) + $frmTitle->AddItem(array(S_GROUP,SPACE,$cmbGroups)); + if($groupid == 0) unset($groupid); + else update_profile("web.popup.groupid",$groupid); + } + + if(in_array($srctbl,array("triggers"))) + { + $hostid = get_request("hostid",get_profile("web.popup.hostid",0)); + $cmbHosts = new CComboBox("hostid",$hostid,"submit()"); + + $sql = "select h.hostid,h.host from hosts h"; + if(isset($groupid)) + $sql .= ",hosts_groups hg where h.hostid=hg.hostid and hg.groupid=$groupid"; + else + $cmbHosts->AddItem(0,S_ALL_SMALL); + $first_hostid = 0; + $db_hosts = DBselect($sql); + while($host = DBfetch($db_hosts)) + { + if(!check_right("Host","R",$host["hostid"])) continue; + $cmbHosts->AddItem($host["hostid"],$host["host"]); + if($hostid == $host["hostid"]) $correct_host = 1; + if($first_hostid == 0) $first_hostid = $host["hostid"]; + } + if(!isset($correct_host)) { - $h2=$h2.form_select("groupid",$row["groupid"],$row["name"]); + if($hostid != 0) $hostid = $first_hostid; + $cmbHosts->SetValue($hostid); } + $frmTitle->AddItem(array(SPACE,S_HOST,SPACE,$cmbHosts)); + if($hostid == 0) unset($hostid); + else update_profile("web.popup.hostid",$hostid); } - $h2=$h2."</select>"; - show_header2($h1, $h2, "<form name=\"form2\" method=\"get\" action=\"popup.php\">", "</form>"); -?> + $btnEmpty = new CButton("empty",S_EMPTY,"window.opener.document.forms[\"$dstfrm\"].$dstfld1.value=\"0\";". + " window.opener.document.forms[\"$dstfrm\"].$dstfld2.value=\"\";". + " window.close();"); -<?php - $table = new CTableInfo(S_NO_HOSTS_DEFINED); - $table->setHeader(array(S_HOST,S_IP,S_PORT,S_STATUS,S_AVAILABILITY)); + $frmTitle->AddItem(array(SPACE,$btnEmpty)); - if(isset($_REQUEST["groupid"])&&($_REQUEST["groupid"]!=0)) - { - $sql="select h.hostid,h.host,h.port,h.status,h.useip,h.ip,h.error,h.available from hosts h,hosts_groups hg where hg.groupid=".$_REQUEST["groupid"]." and hg.hostid=h.hostid and h.status<>".HOST_STATUS_DELETED." order by h.host"; - } - else - { - $sql="select h.hostid,h.host,h.port,h.status,h.useip,h.ip,h.error,h.available from hosts h where h.status<>".HOST_STATUS_DELETED." order by h.host"; - } - $result=DBselect($sql); + show_header2($page["title"], $frmTitle); +?> - while($row=DBfetch($result)) +<?php + if($srctbl == "hosts") { - if(!check_right("Host","R",$row["hostid"])) - { - continue; - } + $table = new CTableInfo(S_NO_HOSTS_DEFINED); + $table->SetHeader(array(S_HOST,S_IP,S_PORT,S_STATUS,S_AVAILABILITY)); - $host ="<a href=\"#\" class=\"action\" onclick='". - " window.opener.document.forms[\"".$_REQUEST["form"]."\"].".$_REQUEST["field1"]. - ".value=\"".$row["hostid"]."\";". - " window.opener.document.forms[\"".$_REQUEST["form"]."\"].".$_REQUEST["field2"]. - ".value=\"".$row["host"]."\";". - " window.close();". - "'>".$row["host"]."</a>"; + $sql = "select * from hosts h"; + if(isset($groupid)) + $sql .= ",hosts_groups hg where h.hostid=hg.hostid and hg.groupid=$groupid"; - if($row["useip"]==1) - { - $ip=$row["ip"]; - } - else - { - $ip="-"; - } - if(check_right("Host","U",$row["hostid"])) + $db_hosts = DBselect($sql); + while($host = DBfetch($db_hosts)) { - if($row["status"] == HOST_STATUS_MONITORED) + if(!check_right("Host","R",$host["hostid"])) continue; + $name = new CLink($host["host"],"#","action"); + $name->SetAction( + "window.opener.document.forms[\"$dstfrm\"].$dstfld1.value=\"".$host[$srcfld1]."\";". + " window.opener.document.forms[\"$dstfrm\"].$dstfld2.value=\"".$host[$srcfld2]."\";". + " window.close();"); + + if($host["status"] == HOST_STATUS_MONITORED) $status=new CSpan(S_MONITORED,"off"); - else if($row["status"] == HOST_STATUS_NOT_MONITORED) + else if($host["status"] == HOST_STATUS_NOT_MONITORED) $status=new CSpan(S_NOT_MONITORED,"on"); - else if($row["status"] == HOST_STATUS_TEMPLATE) + else if($host["status"] == HOST_STATUS_TEMPLATE) $status=new CSpan(S_TEMPLATE,"unknown"); - else if($row["status"] == HOST_STATUS_DELETED) + else if($host["status"] == HOST_STATUS_DELETED) $status=new CSpan(S_DELETED,"unknown"); else $status=S_UNKNOWN; + + if($host["available"] == HOST_AVAILABLE_TRUE) + $available=new CSpan(S_AVAILABLE,"off"); + else if($host["available"] == HOST_AVAILABLE_FALSE) + $available=new CSpan(S_NOT_AVAILABLE,"on"); + else if($host["available"] == HOST_AVAILABLE_UNKNOWN) + $available=new CSpan(S_UNKNOWN,"unknown"); + + $table->addRow(array( + $name, + $host["useip"]==1 ? $host["ip"] : "-", + $host["port"], + $status, + $available + )); } - else + $table->show(); + } + if($srctbl == "triggers") + { + $table = new CTableInfo(S_NO_TRIGGERS_DEFINED); + $table->setHeader(array( + S_NAME, +// S_EXPRESSION, + S_SEVERITY, + S_STATUS)); + + + $sql = "select distinct t.*". + " from triggers t,hosts h,items i,functions f". + " where f.itemid=i.itemid and h.hostid=i.hostid and t.triggerid=f.triggerid"; + + if(isset($hostid)) + $sql .= " and h.hostid=$hostid"; + + $sql .= " order by h.host,t.description"; + + $result=DBselect($sql); + while($row=DBfetch($result)) { - if($row["status"] == HOST_STATUS_MONITORED) - $status=new CSpan(S_MONITORED,"off"); - else if($row["status"] == HOST_STATUS_NOT_MONITORED) - $status=new CSpan(S_NOT_MONITORED,"on"); -// else if($row["status"] == 2) -// $status=array("value"=>S_UNREACHABLE,"class"=>"unknown"); - else if($row["status"] == HOST_STATUS_TEMPLATE) - $status=new CSpan(S_TEMPLATE,"unknown"); - else if($row["status"] == HOST_STATUS_DELETED) - $status=new CSpan(S_DELETED,"unknown"); - else - $status=S_UNKNOWN; - } + if(check_right_on_trigger("R",$row["triggerid"]) == 0) + { + continue; + } - if($row["available"] == HOST_AVAILABLE_TRUE) - $available=new CSpan(S_AVAILABLE,"off"); - else if($row["available"] == HOST_AVAILABLE_FALSE) - $available=new CSpan(S_NOT_AVAILABLE,"on"); - else if($row["available"] == HOST_AVAILABLE_UNKNOWN) - $available=new CSpan(S_UNKNOWN,"unknown"); - - $table->addRow(array( - $host, - $ip, - $row["port"], - $status, - $available + $exp_desc = expand_trigger_description($row["triggerid"]); + $description = new CLink($exp_desc,"#","action"); + $description->SetAction( + "window.opener.document.forms[\"$dstfrm\"].$dstfld1.value=\"".$row[$srcfld1]."\";". + " window.opener.document.forms[\"$dstfrm\"].$dstfld2.value=\"$exp_desc\";". + " window.close();"); + + //add dependences + $result1=DBselect("select t.triggerid,t.description from triggers t,trigger_depends d". + " where t.triggerid=d.triggerid_up and d.triggerid_down=".$row["triggerid"]); + if(DBnum_rows($result1)>0) + { + array_push($description,BR.BR."<strong>".S_DEPENDS_ON."</strong>".SPACE.BR); + while($row1=DBfetch($result1)) + { + array_push($description,expand_trigger_description($row1["triggerid"]).BR); + } + array_push($description,BR); + } + + if($row["priority"]==0) $priority=S_NOT_CLASSIFIED; + elseif($row["priority"]==1) $priority=S_INFORMATION; + elseif($row["priority"]==2) $priority=S_WARNING; + elseif($row["priority"]==3) $priority=new CCol(S_AVERAGE,"average"); + elseif($row["priority"]==4) $priority=new CCol(S_HIGH,"high"); + elseif($row["priority"]==5) $priority=new CCol(S_DISASTER,"disaster"); + else $priority=$row["priority"]; + + if($row["status"] == TRIGGER_STATUS_DISABLED) + { + $status= new CSpan(S_DISABLED, 'disabled'); + } + else if($row["status"] == TRIGGER_STATUS_UNKNOWN) + { + $status= new CSpan(S_UNCNOWN, 'uncnown'); + } + else if($row["status"] == TRIGGER_STATUS_ENABLED) + { + $status= new CSpan(S_ENABLED, 'enabled'); + } + + if($row["status"] != TRIGGER_STATUS_UNKNOWN) $row["error"]=SPACE; + + if($row["error"]=="") $row["error"]=SPACE; + + $table->addRow(array( + $description, +// explode_exp($row["expression"],0), + $priority, + $status, )); + } + $table->show(); } - $table->show(); ?> diff --git a/frontends/php/services.php b/frontends/php/services.php index 35168d54..28ab683e 100644 --- a/frontends/php/services.php +++ b/frontends/php/services.php @@ -35,508 +35,389 @@ show_page_footer(); exit; } + + $_REQUEST["serviceid"] = get_request("serviceid",0); + if($_REQUEST["serviceid"] == 0) unset($_REQUEST["serviceid"]); + + $_REQUEST["parentid"] = get_request("parentid", 0); + update_profile("web.menu.config.last",$page["file"]); ?> <?php - if(isset($_REQUEST["register"])) + + if(isset($_REQUEST["delete"])) { - if($_REQUEST["register"]=="update") - { - $result=@update_service($_REQUEST["serviceid"],$_REQUEST["name"],$_REQUEST["triggerid"],$_REQUEST["linktrigger"],$_REQUEST["algorithm"],$_REQUEST["showsla"],$_REQUEST["goodsla"],$_REQUEST["sortorder"]); - show_messages($result, S_SERVICE_UPDATED, S_CANNOT_UPDATE_SERVICE); - } - if($_REQUEST["register"]=="add") - { - $result=@add_service($_REQUEST["serviceid"],$_REQUEST["name"],$_REQUEST["triggerid"],$_REQUEST["linktrigger"],$_REQUEST["algorithm"],$_REQUEST["showsla"],$_REQUEST["goodsla"],$_REQUEST["goodsla"]); - show_messages($result, S_SERVICE_ADDED, S_CANNOT_ADD_SERVICE); - } - if($_REQUEST["register"]=="add server") + if(isset($_REQUEST["group_serviceid"])) { - $result=add_host_to_services($_REQUEST["serverid"],$_REQUEST["serviceid"]); - show_messages($result, S_TRIGGER_ADDED, S_CANNOT_ADD_TRIGGER); + foreach($_REQUEST["group_serviceid"] as $serviceid) + delete_service($serviceid); + show_messages(TRUE, S_SERVICE_DELETED, S_CANNOT_DELETE_SERVICE); } - if($_REQUEST["register"]=="add link") + elseif(isset($_REQUEST["group_linkid"])) { - if(!isset($_REQUEST["softlink"])) - { - $_REQUEST["softlink"]=0; - } - else - { - $_REQUEST["softlink"]=1; - } - $result=add_service_link($_REQUEST["servicedownid"],$_REQUEST["serviceupid"],$_REQUEST["softlink"]); - show_messages($result, S_LINK_ADDED, S_CANNOT_ADD_LINK); + foreach($_REQUEST["group_linkid"] as $linkid) + delete_service_link($linkid); + show_messages(TRUE, S_LINK_DELETED, S_CANNOT_DELETE_LINK); } - if($_REQUEST["register"]=="delete") + elseif(isset($_REQUEST["delete_service"])) { $result=delete_service($_REQUEST["serviceid"]); show_messages($result, S_SERVICE_DELETED, S_CANNOT_DELETE_SERVICE); unset($_REQUEST["serviceid"]); } - if($_REQUEST["register"]=="delete_link") + elseif(isset($_REQUEST["delete_link"])) { $result=delete_service_link($_REQUEST["linkid"]); show_messages($result, S_LINK_DELETED, S_CANNOT_DELETE_LINK); + unset($_REQUEST["linkid"]); + } + } + elseif(isset($_REQUEST["save_service"])) + { + $showsla = isset($_REQUEST["showsla"]) ? 1 : 0; + $triggerid = isset($_REQUEST["linktrigger"]) ? $_REQUEST["triggerid"] : NULL; + if(isset($_REQUEST["serviceid"])) + { + $result = update_service($_REQUEST["serviceid"], + $_REQUEST["name"],$triggerid,$_REQUEST["algorithm"], + $showsla,$_REQUEST["goodsla"],$_REQUEST["sortorder"]); + show_messages($result, S_SERVICE_UPDATED, S_CANNOT_UPDATE_SERVICE); } - if($_REQUEST["register"]=="Delete selected") + else + { + $result = add_service( + $_REQUEST["name"],$triggerid,$_REQUEST["algorithm"], + $showsla,$_REQUEST["goodsla"],$_REQUEST["sortorder"]); + show_messages($result, S_SERVICE_ADDED, S_CANNOT_ADD_SERVICE); + } + } + elseif(isset($_REQUEST["save_link"])) + { + $_REQUEST["soft"] = isset($_REQUEST["soft"]) ? 1 : 0; + if(isset($_REQUEST["linkid"])) { - $result=DBselect("select serviceid from services"); - while($row=DBfetch($result)) - { -// $$ is correct here - if(isset($_REQUEST[$row["serviceid"]])) - { - delete_service($row["serviceid"]); - if(isset($_REQUEST["serviceid"])) - { - if($row["serviceid"]==$_REQUEST["serviceid"]) - unset($_REQUEST["serviceid"]); - } - } - } - show_messages(TRUE, S_SERVICES_DELETED, S_CANNOT_DELETE_SERVICES); + $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"])) + { + $result=add_host_to_services($_REQUEST["serverid"],$_REQUEST["serviceid"]); + show_messages($result, S_TRIGGER_ADDED, S_CANNOT_ADD_TRIGGER); } ?> <?php show_table_header(S_IT_SERVICES_BIG); - $now=time(); - $result=DBselect("select serviceid,name,algorithm from services order by sortorder,name"); - echo "<table border=0 width=100% bgcolor='#AAAAAA' cellspacing=1 cellpadding=3>"; - echo "<tr bgcolor='#CCCCCC'>"; - echo "<td><b>".S_ID."</b></td>"; - echo "<td><b>".S_SERVICE."</b></td>"; - echo "<td width=20%><b>".S_STATUS_CALCULATION."</b></td>"; - echo "</tr>"; + $form = new CForm(); + $form->SetName("services"); - echo "<form method=\"get\" action=\"services.php\">"; - if(isset($_REQUEST["serviceid"])) - { - echo "<input class=\"biginput\" name=\"serviceid\" type=hidden value=".$_REQUEST["serviceid"]." size=8>"; - } + $table = new CTableInfo(); + $table->SetHeader(array( + array(new CCheckBox("all_services",NULL,NULL, + "CheckAll('".$form->GetName()."','all_services');"), + S_ID), + S_SERVICE, + S_STATUS_CALCULATION, + S_TRIGGER + )); - $col=0; + $sql = "select serviceid,name,algorithm,triggerid from services order by sortorder,name"; if(isset($_REQUEST["serviceid"])) { - echo "<tr bgcolor=#EEEEEE>"; + $form->AddVar("serviceid",$_REQUEST["serviceid"]); - $service=get_service_by_serviceid($_REQUEST["serviceid"]); - - $input="<INPUT TYPE=\"CHECKBOX\" class=\"biginput\" NAME=\"".$service["serviceid"]."\"> ".$service["serviceid"]; - echo "<td>$input</td>"; - - echo "<td><b><a href=\"services.php?serviceid=".$service["serviceid"]."#form\">".$service["name"]."</a></b></td>"; - if($service["algorithm"] == SERVICE_ALGORITHM_NONE) - { - echo "<td>".S_NONE."</td>"; - } - else if($service["algorithm"] == SERVICE_ALGORITHM_MAX) - { - echo "<td>".S_MAX_OF_CHILDS."</td>"; - } - else if($service["algorithm"] == SERVICE_ALGORITHM_MIN) + $service = get_service_by_serviceid($_REQUEST["serviceid"]); + if($service) { - echo "<td>".S_MIN_OF_CHILDS."</td>"; + $childs=get_num_of_service_childs($service["serviceid"]); + + if(isset($service["triggerid"])) + $trigger = expand_trigger_description($service["triggerid"]); + else + $trigger = "-"; + + $table->AddRow(array( + array( + new CCheckBox("group_serviceid[]",NULL,NULL,NULL,$_REQUEST["serviceid"]), + $_REQUEST["serviceid"] + ), + new CLink(new CSpan($service["name"]." [$childs]","bold"),"services.php?serviceid=".$_REQUEST["parentid"]."#form"), + algorithm2str($service["algorithm"]), + $trigger + )); + $sql = "select s.serviceid,s.name,s.algorithm,triggerid from services s, services_links sl". + " where s.serviceid=sl.servicedownid and sl.serviceupid=".$_REQUEST["serviceid"]. + " order by s.sortorder,s.name"; } else { - echo "<td>".S_UNKNOWN."</td>"; + unset($_REQUEST["serviceid"]); } - echo "</tr>"; - $col++; } - while($row=DBfetch($result)) + $db_services = DBselect($sql); + while($service = DBfetch($db_services)) { - if(!isset($_REQUEST["serviceid"]) && service_has_parent($row["serviceid"])) - { - continue; - } - if(isset($_REQUEST["serviceid"]) && service_has_no_this_parent($_REQUEST["serviceid"],$row["serviceid"])) - { - continue; - } - if(isset($_REQUEST["serviceid"])&&($_REQUEST["serviceid"]==$row["serviceid"])) + $prefix = NULL; + if(!isset($_REQUEST["serviceid"])) { - echo "<tr bgcolor=#99AABB>"; + if(service_has_parent($service["serviceid"])) + continue; } else { - if($col++%2==0) { echo "<tr bgcolor=#EEEEEE>"; } - else { echo "<tr bgcolor=#DDDDDD>"; } + $prefix = " - "; } + $childs=get_num_of_service_childs($service["serviceid"]); - $input="<INPUT TYPE=\"CHECKBOX\" class=\"biginput\" NAME=\"".$row["serviceid"]."\"> ".$row["serviceid"]; - - echo "<td>$input</td>"; - - $childs=get_num_of_service_childs($row["serviceid"]); - if(isset($_REQUEST["serviceid"])) - { - echo "<td> - <a href=\"services.php?serviceid=".$row["serviceid"]."#form\">".$row["name"]." [$childs]</a></td>"; - } - else - { - echo "<td><a href=\"services.php?serviceid=".$row["serviceid"]."#form\">".$row["name"]." [$childs]</a></td>"; - } - if($row["algorithm"] == SERVICE_ALGORITHM_NONE) - { - echo "<td>".S_NONE."</td>"; - } - else if($row["algorithm"] == SERVICE_ALGORITHM_MAX) - { - echo "<td>".S_MAX_OF_CHILDS."</td>"; - } - else if($row["algorithm"] == SERVICE_ALGORITHM_MIN) - { - echo "<td>".S_MIN_OF_CHILDS."</td>"; - } + if(isset($service["triggerid"])) + $trigger = expand_trigger_description($service["triggerid"]); else - { - echo "<td>".S_UNKNOWN."</td>"; - } - echo "</tr>"; + $trigger = "-"; + + $parrent = get_request("serviceid",0); + $table->AddRow(array( + array(new CCheckBox("group_serviceid[]",NULL,NULL,NULL,$service["serviceid"]),$service["serviceid"]), + array($prefix, new CLink($service["name"]." [$childs]", + "services.php?serviceid=".$service["serviceid"]."&parentid=$parrent#form")), + algorithm2str($service["algorithm"]), + $trigger + )); } - echo "</table>"; -?> -<?php - show_form_begin(); - echo "<input class=\"button\" type=\"submit\" name=\"register\" value=\"Delete selected\" onClick=\"return Confirm('".S_DELETE_SELECTED_SERVICES."');\">"; - show_table2_header_end(); - echo "</form>"; + $table->SetFooter(new CCol(new CButton("delete","Delete selected","return Confirm('".S_DELETE_SELECTED_SERVICES."');"))); + $form->AddItem($table); + $form->Show(); ?> - <?php if(isset($_REQUEST["serviceid"])) { + echo BR; + show_table_header("LINKS"); - echo "<table border=0 width=100% bgcolor='#AAAAAA' cellspacing=1 cellpadding=3>"; - echo "<tr bgcolor='#CCCCCC'>"; - echo "<td><b>".S_SERVICE_1."</b></td>"; - echo "<td><b>".S_SERVICE_2."</b></td>"; - echo "<td><b>".S_SOFT_HARD_LINK."</b></td>"; - echo "<td><b>".S_ACTIONS."</b></td>"; - echo "</tr>"; - $sql="select linkid,servicedownid,serviceupid,soft from services_links where serviceupid=".$_REQUEST["serviceid"]." or servicedownid=".$_REQUEST["serviceid"]; - $result=DBselect($sql); - $col=0; + + $form = new CForm(); + $form->SetName("Links"); + $form->AddVar("serviceid",$_REQUEST["serviceid"]); + $form->AddVar("parentid",$_REQUEST["parentid"]); + + $table = new CTableInfo(); + $table->SetHeader(array( + array(new CCheckBox("all_services",NULL,NULL, + "CheckAll('".$form->GetName()."','all_services');"), + S_LINK), + S_SERVICE_1, + S_SERVICE_2, + S_SOFT_HARD_LINK + )); + + $result=DBselect("select 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=".$_REQUEST["serviceid"]." or sl.servicedownid=".$_REQUEST["serviceid"].")"); + $i = 1; while($row=DBfetch($result)) { - if($col++%2==0) { echo "<tr bgcolor=#EEEEEE>"; } - else { echo "<tr bgcolor=#DDDDDD>"; } - $service=get_service_by_serviceid($row["serviceupid"]); - echo "<td>".$service["name"]."</td>"; - $service=get_service_by_serviceid($row["servicedownid"]); - echo "<td>".$service["name"]."</td>"; - if($row["soft"] == 0) - { - echo "<td>".S_HARD."</td>"; - } - else - { - echo "<td>".S_SOFT."</td>"; - } - echo "<td><a href=\"services.php?register=delete_link&serviceid=".$_REQUEST["serviceid"]."&linkid=".$row["linkid"]."\">".S_DELETE."</a></td>"; - echo "</tr>"; + $table->AddRow(array( + array( + new CCheckBox("group_linkid[]",NULL,NULL,NULL,$row["linkid"]), + new CLink(S_LINK.SPACE.$i++, + "services.php?form=update&linkid=".$row["linkid"].url_param("serviceid"), + "action"), + ), + new CLink($row["serviceupname"],"services.php?serviceid=".$row["serviceupid"]), + new CLink($row["servicedownname"],"services.php?serviceid=".$row["servicedownid"]), + $row["soft"] == 0 ? S_HARD : S_SOFT + )); } - echo "</table>"; + $table->SetFooter(new CCol(new CButton("delete","Delete selected","return Confirm('".S_DELETE_SELECTED_LINKS."');"))); + $form->AddItem($table); + $form->Show(); } ?> <?php + echo BR; + + $frmService = new CFormTable(S_SERVICE); + $frmService->SetHelp("web.services.service.php"); + $frmService->AddVar("parentid",$_REQUEST["parentid"]); + if(isset($_REQUEST["serviceid"])) { - $service=get_service_by_serviceid($_REQUEST["serviceid"]); - $triggerid=$service["triggerid"]; - $name=$service["name"]; - $algorithm=$service["algorithm"]; - $showsla=$service["showsla"]; - $goodsla=$service["goodsla"]; - $sortorder=$service["sortorder"]; - } - else - { - $name=""; - $showsla=0; - $goodsla=99.05; - $sortorder=0; - $algorithm=0; - unset($triggerid); - } + $frmService->AddVar("serviceid",$_REQUEST["serviceid"]); - echo "<a name=\"form\"></a>"; - show_form_begin("services.service"); - echo S_SERVICE; - $col=0; - - if(isset($_REQUEST["groupid"])&&($_REQUEST["groupid"]==0)) - { - unset($_REQUEST["groupid"]); - } + $service=get_service_by_serviceid($_REQUEST["serviceid"]); - show_table2_v_delimiter($col++); - echo "<form method=\"get\" action=\"services.php\">"; - if(isset($_REQUEST["serviceid"])) - { - echo "<input class=\"biginput\" name=\"serviceid\" type=\"hidden\" value=".$_REQUEST["serviceid"].">"; - } - echo S_NAME; - show_table2_h_delimiter(); - echo "<input class=\"biginput\" name=\"name\" value=\"$name\" size=32>"; - - show_table2_v_delimiter($col++); - echo nbsp(S_STATUS_CALCULATION_ALGORITHM); - show_table2_h_delimiter(); - echo "<select class=\"biginput\" name=\"algorithm\" size=1>"; -// if(isset($_REQUEST["algorithm"])) - if(isset($algorithm)) - { -// if($_REQUEST["algorithm"] == SERVICE_ALGORITHM_NONE) - if($algorithm == SERVICE_ALGORITHM_NONE) - { - echo "<OPTION VALUE='0' SELECTED>".S_DO_NOT_CALCULATE; - echo "<OPTION VALUE='1'>".S_MAX_BIG; - echo "<OPTION VALUE='2'>".S_MIN_BIG; - } -// else if($_REQUEST["algorithm"] == SERVICE_ALGORITHM_MAX) - else if($algorithm == SERVICE_ALGORITHM_MAX) - { - echo "<OPTION VALUE='0'>".S_DO_NOT_CALCULATE; - echo "<OPTION VALUE='1' SELECTED>".S_MAX_BIG; - echo "<OPTION VALUE='2'>".S_MIN_BIG; - } - else if($algorithm == SERVICE_ALGORITHM_MIN) - { - echo "<OPTION VALUE='0'>".S_DO_NOT_CALCULATE; - echo "<OPTION VALUE='1'>".S_MAX_BIG; - echo "<OPTION VALUE='2' SELECTED>".S_MIN_BIG; - } - } - else - { - echo "<OPTION VALUE='0'>".S_DO_NOT_CALCULATE; - echo "<OPTION VALUE='1' SELECTED>".S_MAX_BIG; - echo "<OPTION VALUE='2'>".S_MIN_BIG; + $frmService->SetTitle(S_SERVICE." \"".$service["name"]."\""); } - echo "</SELECT>"; - show_table2_v_delimiter($col++); - echo nbsp(S_SHOW_SLA); - show_table2_h_delimiter(); - if($showsla==1) + if(isset($_REQUEST["serviceid"]) && !isset($_REQUEST["form_refresh"])) { - // echo "<INPUT class=\"biginput\" TYPE=\"CHECKBOX\" NAME=\"showsla\" VALUE=\"true\" CHECKED>"; - echo "<INPUT class=\"biginput\" TYPE=\"CHECKBOX\" NAME=\"showsla\" VALUE=\"on\" CHECKED>"; + $name =$service["name"]; + $algorithm =$service["algorithm"]; + $showsla =$service["showsla"]; + $goodsla =$service["goodsla"]; + $sortorder =$service["sortorder"]; + $triggerid =$service["triggerid"]; + $linktrigger = isset($triggerid) ? 'yes' : 'no'; + if(!isset($triggerid)) $triggerid = 0; } else { - echo "<INPUT class=\"biginput\" TYPE=\"CHECKBOX\" NAME=\"showsla\">"; + $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 = isset($_REQUEST["linktrigger"]) ? 'yes' : 'no'; } - show_table2_v_delimiter($col++); - echo nbsp(S_ACCEPTABLE_SLA_IN_PERCENT); - show_table2_h_delimiter(); - echo "<input class=\"biginput\" name=\"goodsla\" value=\"$goodsla\" size=6>"; - - show_table2_v_delimiter($col++); - echo nbsp(S_LINK_TO_TRIGGER_Q); - show_table2_h_delimiter(); - if(isset($triggerid)&&($triggerid!="")) - { - echo "<INPUT class=\"biginput\" TYPE=\"CHECKBOX\" NAME=\"linktrigger\" VALUE=\"on\" CHECKED>"; - } - else + if(isset($_REQUEST["serviceid"])) { - echo "<INPUT class=\"biginput\" TYPE=\"CHECKBOX\" NAME=\"linktrigger\">"; + $frmService->AddVar("serviceid",$_REQUEST["serviceid"]); } + $frmService->AddRow(S_NAME,new CTextBox("name",$name)); - show_table2_v_delimiter($col++); - echo S_TRIGGER; - show_table2_h_delimiter(); - $h2="<select class=\"biginput\" name=\"groupid\" onChange=\"submit()\">"; - $h2=$h2.form_select("groupid",0,S_ALL_SMALL); - $result=DBselect("select groupid,name from groups order by name"); - while($row=DBfetch($result)) - { -// Check if at least one host with read permission exists for this group - $result2=DBselect("select h.hostid,h.host from hosts h,items i,hosts_groups hg where h.status=".HOST_STATUS_MONITORED." and h.hostid=i.hostid and hg.groupid=".$row["groupid"]." and hg.hostid=h.hostid group by h.hostid,h.host order by h.host"); - $cnt=0; - while($row2=DBfetch($result2)) - { - if(!check_right("Host","R",$row2["hostid"])) - { - continue; - } - $cnt=1; break; - } - if($cnt!=0) - { - $h2=$h2.form_select("groupid",$row["groupid"],$row["name"]); - } - } - $h2=$h2."</select>".SPACE; + $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); - $h2=$h2."<select class=\"biginput\" name=\"hostid\" onChange=\"submit()\">"; - $h2=$h2.form_select("hostid",0,S_SELECT_HOST_DOT_DOT_DOT); + $frmService->AddRow(S_SHOW_SLA, new CCheckBox("showsla",$showsla,NULL,'submit();')); - if(isset($_REQUEST["groupid"])) - { - $sql="select h.hostid,h.host from hosts h,items i,hosts_groups hg where h.status=".HOST_STATUS_MONITORED." and h.hostid=i.hostid and hg.groupid=".$_REQUEST["groupid"]." and hg.hostid=h.hostid group by h.hostid,h.host order by h.host"; - } + if($showsla) + $frmService->AddRow(S_ACCEPTABLE_SLA_IN_PERCENT,new CTextBox("goodsla",$goodsla,6)); else - { - $sql="select h.hostid,h.host from hosts h,items i where h.status=".HOST_STATUS_MONITORED." and h.hostid=i.hostid group by h.hostid,h.host order by h.host"; - } + $frmService->AddVar("goodsla",$goodsla); - $result=DBselect($sql); - while($row=DBfetch($result)) - { - if(!check_right("Host","R",$row["hostid"])) - { - continue; - } - $h2=$h2.form_select("hostid",$row["hostid"],$row["host"]); - } - $h2=$h2."</select>".SPACE; - echo $h2; + $frmService->AddRow(S_LINK_TO_TRIGGER_Q, new CCheckBox("linktrigger",$linktrigger,NULL,"submit();")); - if(isset($_REQUEST["hostid"])) + if($linktrigger == 'yes') { - show_table2_v_delimiter($col++); - echo SPACE; - show_table2_h_delimiter(); - $result=DBselect("select t.triggerid,t.description from triggers t,functions f, hosts h, items i where h.hostid=i.hostid and f.itemid=i.itemid and t.triggerid=f.triggerid and h.hostid=".$_REQUEST["hostid"]." order by t.description"); - echo "<select class=\"biginput\" name=\"triggerid\" size=1>"; - while($row=DBfetch($result)) - { - $triggerid_=$row["triggerid"]; - $description_=expand_trigger_description($triggerid_); - if(isset($triggerid) && ($triggerid==$triggerid_)) - { - echo "<OPTION VALUE='$triggerid_' SELECTED>$description_"; - } - else - { - echo "<OPTION VALUE='$triggerid_'>$description_"; - } - } - echo "</SELECT>"; + if($triggerid > 0) + $trigger = expand_trigger_description($triggerid); + else + $trigger = ""; + + $frmService->AddRow(S_TRIGGER,array( + new CTextBox("trigger",$trigger,32,NULL,'yes'), + new CButton("btn1",S_SELECT, + "return PopUp('popup.php?". + "dstfrm=".$frmService->GetName()."&dstfld1=triggerid&dstfld2=trigger". + "&srctbl=triggers&srcfld1=triggerid&&srcfld2=description','new_win',". + "'width=600,height=450,resizable=1,scrollbars=1');", + 'T') + )); + $frmService->AddVar("triggerid",$triggerid); } - show_table2_v_delimiter($col++); - echo nbsp(S_SORT_ORDER_0_999); - show_table2_h_delimiter(); - echo "<input class=\"biginput\" name=\"sortorder\" value=\"$sortorder\" size=3>"; - + $frmService->AddRow(S_SORT_ORDER_0_999, new CTextBox("sortorder",$sortorder,3)); - show_table2_v_delimiter2(); - if(!isset($triggerid)||($triggerid=="")) - { - echo "<input class=\"button\" type=\"submit\" name=\"register\" value=\"add\">"; - } + $frmService->AddItemToBottomRow(new CButton("save_service",S_SAVE)); if(isset($_REQUEST["serviceid"])) { - echo "<input class=\"button\" type=\"submit\" name=\"register\" value=\"update\">"; - echo "<input class=\"button\" type=\"submit\" name=\"register\" value=\"delete\" onClick=\"return Confirm('".S_DELETE_SERVICE_Q."');\">"; + $frmService->AddItemToBottomRow(SPACE); + $frmService->AddItemToBottomRow(new CButtonDelete( + "Delete selected service?", + url_param("form").url_param("serviceid")."&delete_service=1" + )); } - - show_table2_header_end(); + $frmService->AddItemToBottomRow(SPACE); + $frmService->AddItemToBottomRow(new CButtonCancel("&serviceid=".get_request("parentid",0))); + $frmService->Show(); ?> <?php if(isset($_REQUEST["serviceid"])) { - $service=get_service_by_serviceid($_REQUEST["serviceid"]); - $triggerid=$service["triggerid"]; - $name=$service["name"]; - } - else - { - $name=""; - unset($_REQUEST["triggerid"]); - } + echo BR; + + $frmLink = new CFormTable(S_LINK_TO); + $frmLink->SetHelp("web.services.link.php"); + $frmLink->AddVar("serviceid",$_REQUEST["serviceid"]); + $frmLink->AddVar("parentid",$_REQUEST["parentid"]); + + if(isset($_REQUEST["linkid"])) + { + $frmLink->AddVar("linkid",$_REQUEST["linkid"]); - show_form_begin("services.link"); - echo nbsp(S_LINK_TO); - $col=0; + $link = get_services_links_by_linkid($_REQUEST["linkid"]); + $serviceupid = $link["serviceupid"]; + $servicedownid = $link["servicedownid"]; + $soft = $link["soft"]; + } + else + { + $serviceupid = get_request("serviceupid",$_REQUEST["serviceid"]); + $servicedownid = get_request("servicedownid",0); + $soft = get_request("soft",1); + } - show_table2_v_delimiter($col++); - echo "<form method=\"post\" action=\"services.php\">"; - if(isset($_REQUEST["serviceid"])) - { - echo "<input name=\"serviceid\" type=\"hidden\" value=".$_REQUEST["serviceid"].">"; - echo "<input name=\"serviceupid\" type=\"hidden\" value=".$_REQUEST["serviceid"].">"; - } - echo S_NAME; - show_table2_h_delimiter(); - $result=DBselect("select serviceid,triggerid,name from services order by name"); - echo "<select class=\"biginput\" name=\"servicedownid\" size=1>"; - while($row=Dbfetch($result)) - { - $servicedownid_=$row["serviceid"]; - if($row["triggerid"]>0) + $cmbServices = new CComboBox("serviceupid",$serviceupid); + $result=DBselect("select serviceid,triggerid,name from services order by name"); + while($row=Dbfetch($result)) { - $name_=expand_trigger_description($row["triggerid"]); + $name = $row["name"]; + if(isset($row["triggerid"])) + $name .= ": ".expand_trigger_description($row["triggerid"]); + + $cmbServices->AddItem($row["serviceid"],$name); } - else + $frmLink->AddRow(S_SERVICE_1, $cmbServices); + + $cmbServices->SetName("servicedownid"); + $cmbServices->SetValue($servicedownid); + $frmLink->AddRow(S_SERVICE_2, $cmbServices); + + $frmLink->AddRow(S_SOFT_LINK_Q, new CCheckBox("soft",$soft)); + + $frmLink->AddItemToBottomRow(new CButton("save_link",S_SAVE)); + if(isset($_REQUEST["linkid"])) { - $name_=$row["name"]; + $frmLink->AddItemToBottomRow(SPACE); + $frmLink->AddItemToBottomRow(new CButtonDelete( + "Delete selected services linkage?", + url_param("form").url_param("linkid")."&delete_link=1".url_param("serviceid") + )); } - echo "<OPTION VALUE='$servicedownid_'>$name_"; - } - echo "</SELECT>"; - - show_table2_v_delimiter($col++); - echo nbsp(S_SOFT_LINK_Q); - show_table2_h_delimiter(); -// if(isset($_REQUEST["softlink"])&&($_REQUEST["triggerid"]!="")) -// { -// echo "<INPUT TYPE=\"CHECKBOX\" NAME=\"softlink\" VALUE=\"true\">"; -// } -// else -// { -// echo "<INPUT TYPE=\"CHECKBOX\" NAME=\"softlink\">"; -// } - echo "<INPUT class=\"biginput\" TYPE=\"CHECKBOX\" NAME=\"softlink\" VALUE=\"true\" checked>"; - - show_table2_v_delimiter2(); - echo "<input class=\"button\" type=\"submit\" name=\"register\" value=\"add link\">"; - - show_table2_header_end(); + $frmLink->AddItemToBottomRow(SPACE); + $frmLink->AddItemToBottomRow(new CButtonCancel(url_param("serviceid"))); + $frmLink->Show(); + } ?> <?php if(isset($_REQUEST["serviceid"])) { + echo BR; + + $frmDetails = new CFormTable(S_ADD_SERVER_DETAILS); + $frmDetails->SetHelp("web.services.server.php"); + $frmDetails->AddVar("serviceid",$_REQUEST["serviceid"]); + $frmDetails->AddVar("parentid",$_REQUEST["parentid"]); + + $cmbServers = new CComboBox("serverid"); + $result=DBselect("select hostid,host from hosts order by host"); + while($row=DBfetch($result)) + { + $cmbServers->AddItem($row["hostid"],$row["host"]); + } + $frmDetails->AddRow(S_SERVER,$cmbServers); - show_form_begin("services.server"); - echo nbsp(S_ADD_SERVER_DETAILS); - $col=0; - - show_table2_v_delimiter($col++); - echo "<form method=\"post\" action=\"services.php\">"; - if(isset($_REQUEST["serviceid"])) - { - echo "<input name=\"serviceid\" type=\"hidden\" value=".$_REQUEST["serviceid"].">"; - } - echo S_SERVER; - show_table2_h_delimiter(); - $result=DBselect("select hostid,host from hosts order by host"); - echo "<select class=\"biginput\" name=\"serverid\" size=1>"; - while($row=DBfetch($result)) - { - echo "<OPTION VALUE='".$row["hostid"]."'>".$row["host"]; - } - echo "</SELECT>"; - - show_table2_v_delimiter2(); - echo "<input class=\"button\" type=\"submit\" name=\"register\" value=\"add server\">"; - - show_table2_header_end(); + $frmDetails->AddItemToBottomRow(new CButton("add_server","Add server")); + $frmDetails->Show(); } ?> diff --git a/frontends/php/triggers.php b/frontends/php/triggers.php index d5eb36e3..9ddf81bf 100644 --- a/frontends/php/triggers.php +++ b/frontends/php/triggers.php @@ -268,14 +268,11 @@ $form->SetName('triggers'); $form->AddVar('hostid',$_REQUEST["hostid"]); - $table = new CTableInfo(); + $table = new CTableInfo(S_NO_TRIGGERS_DEFINED); $table->setHeader(array( -// array( new CCheckBox("all_items",NULL,NULL, -// "CheckAll('".$form->GetName()."','all_items');") -// ,S_ID -// ), - array( new CCheckBox("all_items",NULL,NULL, - "CheckAll('".$form->GetName()."','all_items');") + $_REQUEST["hostid"] > 0 ? NULL : S_HOST, + array( new CCheckBox("all_triggers",NULL,NULL, + "CheckAll('".$form->GetName()."','all_triggers');") ,S_NAME ), S_EXPRESSION, S_SEVERITY, S_STATUS, S_ERROR)); @@ -297,16 +294,6 @@ continue; } -// $id= array( -// new CCheckBox( -// "g_triggerid[]", /* name */ -// NULL, /* checked */ -// NULL, /* caption */ -// NULL, /* action */ -// $row["triggerid"]) /* value */ -// , $row["triggerid"] -// ); - $description = array( new CCheckBox( "g_triggerid[]", /* name */ @@ -394,7 +381,7 @@ if($row["error"]=="") $row["error"]=SPACE; $table->addRow(array( -// $id, + $_REQUEST["hostid"] > 0 ? NULL : $row["host"], $description, explode_exp($row["expression"],1), $priority, @@ -412,7 +399,7 @@ array_push($footerButtons, SPACE); array_push($footerButtons, new CButton('group_delete','Delete selected', "return Confirm('".S_DELETE_SELECTED_TRIGGERS_Q."');")); - $table->SetFooter(new CCol($footerButtons),'table_footer'); + $table->SetFooter(new CCol($footerButtons)); $form->AddItem($table); $form->Show(); |
