summaryrefslogtreecommitdiffstats
path: root/frontends/php
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-03-16 15:26:21 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-03-16 15:26:21 +0000
commitd76992f73658df06227395e4a79c4366294efebe (patch)
tree20acf2af5d2155e07401c4903b9bb4cddfb4fec2 /frontends/php
parentf9fade8feec4ed06a5f433f87d09adc4098bb51e (diff)
downloadzabbix-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.php2
-rw-r--r--frontends/php/css.css8
-rw-r--r--frontends/php/hosts.php4
-rw-r--r--frontends/php/include/actions.inc.php3
-rw-r--r--frontends/php/include/classes/cform.inc.php8
-rw-r--r--frontends/php/include/classes/clink.inc.php12
-rw-r--r--frontends/php/include/classes/ctag.inc.php2
-rw-r--r--frontends/php/include/forms.inc.php63
-rw-r--r--frontends/php/include/locales/en_gb.inc.php5
-rw-r--r--frontends/php/include/services.inc.php124
-rw-r--r--frontends/php/items.php4
-rw-r--r--frontends/php/popup.php290
-rw-r--r--frontends/php/services.php679
-rw-r--r--frontends/php/triggers.php25
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();