summaryrefslogtreecommitdiffstats
path: root/frontends/php/include
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/include
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/include')
-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
7 files changed, 126 insertions, 91 deletions
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;
+ }
?>