From d76992f73658df06227395e4a79c4366294efebe Mon Sep 17 00:00:00 2001 From: osmiy Date: Thu, 16 Mar 2006 15:26:21 +0000 Subject: - 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 --- ChangeLog | 5 +- frontends/php/actionconf.php | 2 +- frontends/php/css.css | 8 +- frontends/php/hosts.php | 4 +- frontends/php/include/actions.inc.php | 3 +- frontends/php/include/classes/cform.inc.php | 8 + frontends/php/include/classes/clink.inc.php | 12 + frontends/php/include/classes/ctag.inc.php | 2 +- frontends/php/include/forms.inc.php | 63 +-- frontends/php/include/locales/en_gb.inc.php | 5 + frontends/php/include/services.inc.php | 124 ++--- frontends/php/items.php | 4 +- frontends/php/popup.php | 290 ++++++++---- frontends/php/services.php | 679 ++++++++++++---------------- frontends/php/triggers.php | 25 +- 15 files changed, 623 insertions(+), 611 deletions(-) diff --git a/ChangeLog b/ChangeLog index a3a28174..9a433b7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ Changes for 1.1beta8: - - added "Data overview" for screens + - added trigger selecton from popup (Eugene) + - improved popup selection (Eugene) + - improved "IT services" configuration (Eugene) + - added "Data overview" for screens (Eugene) - added "Triggers overview" for screens (Eugene) - added blinking into Trigger overview (Eugene) - added screen displaying in other screen (Eugene) 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 @@ **/ ?> 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 @@ ".S_NO_PERMISSIONS.""); show_page_footer(); exit; } ?> - "; - - - $h2=S_GROUP.SPACE; - $h2=$h2.""; - $h2=$h2.""; - $h2=$h2.""; - $h2=$h2.""; - show_header2($h1, $h2, "
", "
"); -?> + $btnEmpty = new CButton("empty",S_EMPTY,"window.opener.document.forms[\"$dstfrm\"].$dstfld1.value=\"0\";". + " window.opener.document.forms[\"$dstfrm\"].$dstfld2.value=\"\";". + " window.close();"); -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)) +SetHeader(array(S_HOST,S_IP,S_PORT,S_STATUS,S_AVAILABILITY)); - $host ="".$row["host"].""; + $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."".S_DEPENDS_ON."".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"]); ?> "; - echo ""; - echo "".S_ID.""; - echo "".S_SERVICE.""; - echo "".S_STATUS_CALCULATION.""; - echo ""; + $form = new CForm(); + $form->SetName("services"); - echo "
"; - if(isset($_REQUEST["serviceid"])) - { - echo ""; - } + $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 ""; + $form->AddVar("serviceid",$_REQUEST["serviceid"]); - $service=get_service_by_serviceid($_REQUEST["serviceid"]); - - $input=" ".$service["serviceid"]; - echo "$input"; - - echo "".$service["name"].""; - if($service["algorithm"] == SERVICE_ALGORITHM_NONE) - { - echo "".S_NONE.""; - } - else if($service["algorithm"] == SERVICE_ALGORITHM_MAX) - { - echo "".S_MAX_OF_CHILDS.""; - } - else if($service["algorithm"] == SERVICE_ALGORITHM_MIN) + $service = get_service_by_serviceid($_REQUEST["serviceid"]); + if($service) { - echo "".S_MIN_OF_CHILDS.""; + $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 "".S_UNKNOWN.""; + unset($_REQUEST["serviceid"]); } - echo ""; - $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 ""; + if(service_has_parent($service["serviceid"])) + continue; } else { - if($col++%2==0) { echo ""; } - else { echo ""; } + $prefix = " - "; } + $childs=get_num_of_service_childs($service["serviceid"]); - $input=" ".$row["serviceid"]; - - echo "$input"; - - $childs=get_num_of_service_childs($row["serviceid"]); - if(isset($_REQUEST["serviceid"])) - { - echo " - ".$row["name"]." [$childs]"; - } - else - { - echo "".$row["name"]." [$childs]"; - } - if($row["algorithm"] == SERVICE_ALGORITHM_NONE) - { - echo "".S_NONE.""; - } - else if($row["algorithm"] == SERVICE_ALGORITHM_MAX) - { - echo "".S_MAX_OF_CHILDS.""; - } - else if($row["algorithm"] == SERVICE_ALGORITHM_MIN) - { - echo "".S_MIN_OF_CHILDS.""; - } + if(isset($service["triggerid"])) + $trigger = expand_trigger_description($service["triggerid"]); else - { - echo "".S_UNKNOWN.""; - } - echo ""; + $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 ""; -?> -"; - show_table2_header_end(); - echo "
"; + $table->SetFooter(new CCol(new CButton("delete","Delete selected","return Confirm('".S_DELETE_SELECTED_SERVICES."');"))); + $form->AddItem($table); + $form->Show(); ?> - "; - echo ""; - echo "".S_SERVICE_1.""; - echo "".S_SERVICE_2.""; - echo "".S_SOFT_HARD_LINK.""; - echo "".S_ACTIONS.""; - echo ""; - $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 ""; } - else { echo ""; } - $service=get_service_by_serviceid($row["serviceupid"]); - echo "".$service["name"].""; - $service=get_service_by_serviceid($row["servicedownid"]); - echo "".$service["name"].""; - if($row["soft"] == 0) - { - echo "".S_HARD.""; - } - else - { - echo "".S_SOFT.""; - } - echo "".S_DELETE.""; - echo ""; + $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->SetFooter(new CCol(new CButton("delete","Delete selected","return Confirm('".S_DELETE_SELECTED_LINKS."');"))); + $form->AddItem($table); + $form->Show(); } ?> 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 ""; - 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 "
"; - if(isset($_REQUEST["serviceid"])) - { - echo ""; - } - echo S_NAME; - show_table2_h_delimiter(); - echo ""; - - show_table2_v_delimiter($col++); - echo nbsp(S_STATUS_CALCULATION_ALGORITHM); - show_table2_h_delimiter(); - echo ""; - 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 ""; - echo ""; + $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 ""; + $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 ""; - - show_table2_v_delimiter($col++); - echo nbsp(S_LINK_TO_TRIGGER_Q); - show_table2_h_delimiter(); - if(isset($triggerid)&&($triggerid!="")) - { - echo ""; - } - else + if(isset($_REQUEST["serviceid"])) { - echo ""; + $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="".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."".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 ""; + 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 ""; - + $frmService->AddRow(S_SORT_ORDER_0_999, new CTextBox("sortorder",$sortorder,3)); - show_table2_v_delimiter2(); - if(!isset($triggerid)||($triggerid=="")) - { - echo ""; - } + $frmService->AddItemToBottomRow(new CButton("save_service",S_SAVE)); if(isset($_REQUEST["serviceid"])) { - echo ""; - echo ""; + $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(); ?> 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 ""; - if(isset($_REQUEST["serviceid"])) - { - echo ""; - echo ""; - } - echo S_NAME; - show_table2_h_delimiter(); - $result=DBselect("select serviceid,triggerid,name from services order by name"); - echo ""; - - show_table2_v_delimiter($col++); - echo nbsp(S_SOFT_LINK_Q); - show_table2_h_delimiter(); -// if(isset($_REQUEST["softlink"])&&($_REQUEST["triggerid"]!="")) -// { -// echo ""; -// } -// else -// { -// echo ""; -// } - echo ""; - - show_table2_v_delimiter2(); - echo ""; - - show_table2_header_end(); + $frmLink->AddItemToBottomRow(SPACE); + $frmLink->AddItemToBottomRow(new CButtonCancel(url_param("serviceid"))); + $frmLink->Show(); + } ?> 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 ""; - if(isset($_REQUEST["serviceid"])) - { - echo ""; - } - echo S_SERVER; - show_table2_h_delimiter(); - $result=DBselect("select hostid,host from hosts order by host"); - echo ""; - - show_table2_v_delimiter2(); - echo ""; - - 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(); -- cgit