SetHelp('web.hosts.php');
# init vars
$frmTemplate->AddVar('config',$_REQUEST["config"]);
if($hostid!=0) $frmTemplate->AddVar('hostid',$hostid);
if(isset($hosttemplateid)) $frmTemplate->AddVar('hosttemplateid',$_REQUEST["hosttemplateid"]);
# init rows
$cmbTemplate = new CComboBox('templateid',$templateid);
$hosts=DBselect("select hostid,host from hosts order by host");
while($host=DBfetch($hosts))
$cmbTemplate->AddItem($host["hostid"],$host["host"]);
$frmTemplate->AddRow(S_TEMPLATE,$cmbTemplate);
$frmTemplate->AddRow(S_ITEMS,array(
new CCheckBox('items_add', S_ADD, (1 & $items) ? "yes": "no"),
new CCheckBox('items_update', S_UPDATE, (2 & $items) ? "yes": "no"),
new CCheckBox('items_delete', S_DELETE, (4 & $items) ? "yes": "no")
));
$frmTemplate->AddRow(S_TRIGGERS,array(
new CCheckBox('triggers_add', S_ADD, (1 & $triggers) ? "yes": "no"),
new CCheckBox('triggers_update',S_UPDATE, (2 & $triggers) ? "yes": "no"),
new CCheckBox('triggers_delete',S_DELETE, (4 & $triggers) ? "yes": "no")
));
$frmTemplate->AddRow(S_GRAPHS,array(
new CCheckBox('graphs_add', S_ADD, (1 & $graphs) ? "yes": "no"),
new CCheckBox('graphs_update', S_UPDATE, (2 & $graphs) ? "yes": "no"),
new CCheckBox('graphs_delete', S_DELETE, (4 & $graphs) ? "yes": "no")
));
$frmTemplate->AddItemToBottomRow(new CButton('register','add linkage'));
if(isset($hosttemplateid))
{
$frmTemplate->AddItemToBottomRow(SPACE);
$frmTemplate->AddItemToBottomRow(new CButton('register','update linkage'));
$frmTemplate->AddItemToBottomRow(SPACE);
$frmTemplate->AddItemToBottomRow(new CButton('register','delete linkage',"return Confirm('Delete selected linkage?');"));
}
$frmTemplate->Show();
}
# Insert form for User
function insert_user_form($userid,$profile=0)
{
if(isset($userid))
{
$user=get_user_by_userid($userid);
$result=DBselect("select u.alias,u.name,u.surname,u.passwd,u.url,u.autologout,u.lang,u.refresh from users u where u.userid=$userid");
$alias=$user["alias"];
$name=$user["name"];
$surname=$user["surname"];
$password="";
$url=$user["url"];
$autologout=$user["autologout"];
$lang=$user["lang"];
$refresh=$user["refresh"];
}
else
{
$alias="";
$name="";
$surname="";
$password="";
$url="";
$autologout="900";
$lang="en_gb";
$refresh="30";
}
$frmUser = new CFormTable(S_USER);
$frmUser->SetHelp("web.users.users.php");
if($profile==0)
$frmUser->SetAction("users.php");
else
$frmUser->SetAction("profile.php");
$frmUser->AddVar("config",$_REQUEST["config"]);
if(isset($userid)) $frmUser->AddVar("userid",$userid);
if($profile==0)
{
$frmUser->AddRow(S_ALIAS, new CTextBox("alias",$alias,20));
$frmUser->AddRow(S_NAME, new CTextBox("name",$name,20));
$frmUser->AddRow(S_SURNAME, new CTextBox("surname",$surname,20));
}
$frmUser->AddRow(S_PASSWORD, new CPassBox("password",$password,20));
$frmUser->AddRow(S_PASSWORD_ONCE_AGAIN, new CPassBox("password2",$password,20));
$cmbLang = new CcomboBox('lang',$lang);
$cmbLang->AddItem("en_gb",S_ENGLISH_GB);
$cmbLang->AddItem("cn_zh",S_CHINESE_CN);
$cmbLang->AddItem("fr_fr",S_FRENCH_FR);
$cmbLang->AddItem("de_de",S_GERMAN_DE);
$cmbLang->AddItem("it_it",S_ITALIAN_IT);
$cmbLang->AddItem("lv_lv",S_LATVIAN_LV);
$cmbLang->AddItem("ru_ru",S_RUSSIAN_RU);
$cmbLang->AddItem("sp_sp",S_SPANISH_SP);
$cmbLang->AddItem("ja_jp",S_JAPANESE_JP);
$frmUser->AddRow(S_LANGUAGE, $cmbLang);
$frmUser->AddRow(S_AUTO_LOGOUT_IN_SEC, new CTextBox("autologout",$autologout,5));
$frmUser->AddRow(S_URL_AFTER_LOGIN, new CTextBox("url",$url,50));
$frmUser->AddRow(S_SCREEN_REFRESH, new CTextBox("refresh",$refresh,5));
$frmUser->AddItemToBottomRow(new CButton('save',S_SAVE));
if(isset($userid))
{
$frmUser->AddItemToBottomRow(SPACE);
$frmUser->AddItemToBottomRow(new CButton('delete',S_DELETE,
"return Confirm('Delete selected user?');"));
}
$frmUser->AddItemToBottomRow(SPACE);
$frmUser->AddItemToBottomRow(new CButton('cancel',S_CANCEL));
$frmUser->Show();
}
# Insert form for Item information
function insert_item_form()
{
global $_REQUEST;
$description=@iif(isset($_REQUEST["description"]),$_REQUEST["description"],"");
$key=@iif(isset($_REQUEST["key"]),$_REQUEST["key"],"");
$host=@iif(isset($_REQUEST["host"]),$_REQUEST["host"],"");
$port=@iif(isset($_REQUEST["port"]),$_REQUEST["port"],10050);
$delay=@iif(isset($_REQUEST["delay"]),$_REQUEST["delay"],30);
$history=@iif(isset($_REQUEST["history"]),$_REQUEST["history"],90);
$trends=@iif(isset($_REQUEST["trends"]),$_REQUEST["trends"],365);
$status=@iif(isset($_REQUEST["status"]),$_REQUEST["status"],0);
$type=@iif(isset($_REQUEST["type"]),$_REQUEST["type"],0);
$snmp_community=@iif(isset($_REQUEST["snmp_community"]),$_REQUEST["snmp_community"],"public");
$snmp_oid=@iif(isset($_REQUEST["snmp_oid"]),$_REQUEST["snmp_oid"],"interfaces.ifTable.ifEntry.ifInOctets.1");
$value_type=@iif(isset($_REQUEST["value_type"]),$_REQUEST["value_type"],0);
$trapper_hosts=@iif(isset($_REQUEST["trapper_hosts"]),$_REQUEST["trapper_hosts"],"");
$snmp_port=@iif(isset($_REQUEST["snmp_port"]),$_REQUEST["snmp_port"],161);
$units=@iif(isset($_REQUEST["units"]),$_REQUEST["units"],'');
$multiplier=@iif(isset($_REQUEST["multiplier"]),$_REQUEST["multiplier"],0);
$hostid=@iif(isset($_REQUEST["hostid"]),$_REQUEST["hostid"],0);
$delta=@iif(isset($_REQUEST["delta"]),$_REQUEST["delta"],0);
$snmpv3_securityname=@iif(isset($_REQUEST["snmpv3_securityname"]),$_REQUEST["snmpv3_securityname"],"");
$snmpv3_securitylevel=@iif(isset($_REQUEST["snmpv3_securitylevel"]),$_REQUEST["snmpv3_securitylevel"],0);
$snmpv3_authpassphrase=@iif(isset($_REQUEST["snmpv3_authpassphrase"]),$_REQUEST["snmpv3_authpassphrase"],"");
$snmpv3_privpassphrase=@iif(isset($_REQUEST["snmpv3_privpassphrase"]),$_REQUEST["snmpv3_privpassphrase"],"")
;
$formula=@iif(isset($_REQUEST["formula"]),$_REQUEST["formula"],"1");
$logtimefmt=@iif(isset($_REQUEST["logtimefmt"]),$_REQUEST["logtimefmt"],"");
$groupid=@iif(isset($_REQUEST["groupid"]),$_REQUEST["groupid"],0);
if(isset($_REQUEST["register"])&&($_REQUEST["register"] == "change"))
{
$result=DBselect("select i.description, i.key_, h.host, h.port, i.delay, i.history, i.status, i.type, i.snmp_community,i.snmp_oid,i.value_type,i.trapper_hosts,i.snmp_port,i.units,i.multiplier,h.hostid,i.delta,i.trends,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.formula,i.logtimefmt from items i,hosts h where i.itemid=".$_REQUEST["itemid"]." and h.hostid=i.hostid");
$row=DBfetch($result);
$description=$row["description"];
$key=$row["key_"];
$host=$row["host"];
$port=$row["port"];
$delay=$row["delay"];
$history=$row["history"];
$status=$row["status"];
$type=iif(isset($_REQUEST["type"]),isset($_REQUEST["type"]),$row["type"]);
$snmp_community=$row["snmp_community"];
$snmp_oid=$row["snmp_oid"];
$value_type=$row["value_type"];
$trapper_hosts=$row["trapper_hosts"];
$snmp_port=$row["snmp_port"];
$units=$row["units"];
$multiplier=$row["multiplier"];
$hostid=$row["hostid"];
$delta=$row["delta"];
$trends=$row["trends"];
$snmpv3_securityname=$row["snmpv3_securityname"];
$snmpv3_securitylevel=$row["snmpv3_securitylevel"];
$snmpv3_authpassphrase=$row["snmpv3_authpassphrase"];
$snmpv3_privpassphrase=$row["snmpv3_privpassphrase"];
$formula=$row["formula"];
$logtimefmt=$row["logtimefmt"];
}
$frmItem = new CFormTable(S_ITEM,"items.php#form");
$frmItem->SetHelp("web.items.item.php");
$frmItem->AddVar("hostid",$hostid);
if(isset($_REQUEST["itemid"]))
$frmItem->AddVar("itemid",$_REQUEST["itemid"]);
$frmItem->AddRow(S_DESCRIPTION, new CTextBox("description",$description,40));
$frmItem->AddRow(S_HOST, array(
new CTextBox("host",$host,30,NULL,'yes'),
new CButton("btn1","Select","window.open('popup.php?form=item&field1=hostid&field2=host','new_win','width=450,height=450,resizable=1,scrollbars=1');","T")
));
/*
$cmbHosts = new CComboBox("hostid",$hostid);
$hosts=DBselect("select hostid,host from hosts where status not in (".HOST_STATUS_DELETED.")order by host");
while($host=DBfetch($hosts))
{
$cmbHosts->AddItem($host["hostid"],$host["host"]);
}
$frmItem->AddRow(S_HOST, $cmbHosts);
*/
$cmbType = new CComboBox("type",$type,"submit()");
$cmbType->AddItem(ITEM_TYPE_ZABBIX,'Zabbix agent');
$cmbType->AddItem(ITEM_TYPE_ZABBIX_ACTIVE,'Zabbix agent (active)');
$cmbType->AddItem(ITEM_TYPE_SIMPLE,'Simple check');
$cmbType->AddItem(ITEM_TYPE_SNMPV1,'SNMPv1 agent');
$cmbType->AddItem(ITEM_TYPE_SNMPV2C,'SNMPv2 agent');
$cmbType->AddItem(ITEM_TYPE_SNMPV3,'SNMPv3 agent');
$cmbType->AddItem(ITEM_TYPE_TRAPPER,'Zabbix trapper');
$cmbType->AddItem(ITEM_TYPE_INTERNAL,'Zabbix internal');
$frmItem->AddRow(S_TYPE, $cmbType);
if(($type==ITEM_TYPE_SNMPV1)||($type==ITEM_TYPE_SNMPV2C))
{
$frmItem->AddVar("snmpv3_securityname",$snmpv3_securityname);
$frmItem->AddVar("snmpv3_securitylevel",$snmpv3_securitylevel);
$frmItem->AddVar("snmpv3_authpassphrase",$snmpv3_authpassphrase);
$frmItem->AddVar("snmpv3_privpassphrase",$snmpv3_privpassphrase);
$frmItem->AddRow(S_SNMP_COMMUNITY, new CTextBox("snmp_community",$snmp_community,16));
$frmItem->AddRow(S_SNMP_OID, new CTextBox("snmp_oid",$snmp_oid,40));
$frmItem->AddRow(S_SNMP_PORT, new CTextBox("snmp_port",$snmp_port,5));
}
else if($type==ITEM_TYPE_SNMPV3)
{
$frmItem->AddRow(S_SNMP_OID, new CTextBox("snmp_oid",$snmp_oid,40));
$frmItem->AddRow(S_SNMPV3_SECURITY_NAME, new CTextBox("snmpv3_securityname",$snmpv3_securityname,64));
$cmbSecLevel = new CComboBox("snmpv3_securitylevel",$snmpv3_securitylevel);
$cmbSecLevel->AddItem(ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV,"NoAuthPriv");
$cmbSecLevel->AddItem(ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV,"AuthNoPriv");
$cmbSecLevel->AddItem(ITEM_SNMPV3_SECURITYLEVEL_AUTHPRIV,"AuthPriv");
$frmItem->AddRow(S_SNMPV3_SECURITY_LEVEL, $cmbSecLevel);
$frmItem->AddRow(S_SNMPV3_AUTH_PASSPHRASE, new CTextBox("snmpv3_authpassphrase",$snmpv3_authpassphrase,64));
$frmItem->AddRow(S_SNMPV3_PRIV_PASSPHRASE, new CTextBox("snmpv3_privpassphrase",$snmpv3_privpassphrase,64));
$frmItem->AddRow(S_SNMP_PORT, new CTextBox("snmp_port",$snmp_port,5));
$frmItem->AddVar("snmp_community",$snmp_community);
}
else
{
$frmItem->AddVar("snmp_community",$snmp_community);
$frmItem->AddVar("snmp_oid",$snmp_oid);
$frmItem->AddVar("snmp_port",$snmp_port);
$frmItem->AddVar("snmpv3_securityname",$snmpv3_securityname);
$frmItem->AddVar("snmpv3_securitylevel",$snmpv3_securitylevel);
$frmItem->AddVar("snmpv3_authpassphrase",$snmpv3_authpassphrase);
$frmItem->AddVar("snmpv3_privpassphrase",$snmpv3_privpassphrase);
}
$frmItem->AddRow(S_KEY, new CTextBox("key",$key,40));
if( ($value_type==ITEM_VALUE_TYPE_FLOAT) || ($value_type==ITEM_VALUE_TYPE_UINT64))
{
$frmItem->AddRow(S_UNITS, new CTextBox("units",$units,40));
$cmbMultipler = new CComboBox("multiplier",$multiplier,"submit()");
$cmbMultipler->AddItem(0,S_DO_NOT_USE);
$cmbMultipler->AddItem(1,S_CUSTOM_MULTIPLIER);
$frmItem->AddRow(S_USE_MULTIPLIER, $cmbMultipler);
}
else
{
$frmItem->AddVar("units",$units);
$frmItem->AddVar("multiplier",$multiplier);
}
if($multiplier == S_CUSTOM_MULTIPLIER)
{
$frmItem->AddRow(S_CUSTOM_MULTIPLIER, new CTextBox("formula",$formula,40));
}
else
{
$frmItem->AddVar("formula",$formula);
}
if($type != ITEM_TYPE_TRAPPER)
{
$frmItem->AddRow(S_UPDATE_INTERVAL_IN_SEC, new CTextBox("delay",$delay,5));
}
else
{
$frmItem->AddVar("delay",$delay);
}
$frmItem->AddRow(S_KEEP_HISTORY_IN_DAYS, new CTextBox("history",$history,8));
$frmItem->AddRow(S_KEEP_TRENDS_IN_DAYS, new CTextBox("trends",$trends,8));
$cmbStatus = new CComboBox("status",$status);
$cmbStatus->AddItem(0,S_MONITORED);
$cmbStatus->AddItem(1,S_DISABLED);
# $cmbStatus->AddItem(2,"Trapper");
$cmbStatus->AddItem(3,S_NOT_SUPPORTED);
$frmItem->AddRow(S_STATUS,$cmbStatus);
$cmbValType = new CComboBox("value_type",$value_type,"submit()");
$cmbValType->AddItem(ITEM_VALUE_TYPE_FLOAT, S_NUMERIC_FLOAT);
$cmbValType->AddItem(ITEM_VALUE_TYPE_UINT64, S_NUMERIC_UINT64);
$cmbValType->AddItem(ITEM_VALUE_TYPE_STR, S_CHARACTER);
$cmbValType->AddItem(ITEM_VALUE_TYPE_LOG, S_LOG);
$frmItem->AddRow(S_TYPE_OF_INFORMATION,$cmbValType);
if($value_type==ITEM_VALUE_TYPE_LOG)
{
$frmItem->AddRow(S_LOG_TIME_FORMAT, new CTextBox("logtimefmt",$logtimefmt,16));
}
else
{
$frmItem->AddVar("logtimefmt",$logtimefmt);
}
if( ($value_type==ITEM_VALUE_TYPE_FLOAT) || ($value_type==ITEM_VALUE_TYPE_UINT64))
{
$cmbDelta= new CComboBox("delta",$delta);
$cmbDelta->AddItem(0,S_AS_IS);
$cmbDelta->AddItem(1,S_DELTA_SPEED_PER_SECOND);
$cmbDelta->AddItem(2,S_DELTA_SIMPLE_CHANGE);
$frmItem->AddRow(S_STORE_VALUE,$cmbDelta);
}
else
{
$frmItem->AddVar("delta",0);
}
if($type==2)
{
$frmItem->AddRow(S_ALLOWED_HOSTS, new CTextBox("trapper_hosts",$trapper_hosts,40));
}
else
{
$frmItem->AddVar("trapper_hosts",$trapper_hosts);
}
$frmRow = array(
new CButton("register","add"),
SPACE,
new CButton("register","add to all hosts","return Confirm('Add item to all hosts?');")
);
if(isset($_REQUEST["itemid"]))
{
array_push($frmRow,
SPACE,
new CButton("register","update"),
SPACE,
new CButton("register","delete","return Confirm('Delete selected item?');")
);
}
$frmItem->AddSpanRow($frmRow,"form_row_last");
$cmbGroups = new CComboBox("groupid",$groupid,"submit()");
$groups=DBselect("select groupid,name from groups order by name");
while($group=DBfetch($groups))
{
// Check if at least one host with read permission exists for this group
$hosts=DBselect("select h.hostid,h.host from hosts h,hosts_groups hg where hg.groupid=".$group["groupid"]." and hg.hostid=h.hostid and h.status<>".HOST_STATUS_DELETED." group by h.hostid,h.host order by h.host");
while($host=DBfetch($hosts))
{
if(check_right("Host","U",$host["hostid"]))
{
$cmbGroups->AddItem($group["groupid"],$group["name"]);
break;
}
}
}
$frmItem->AddRow(S_GROUP,$cmbGroups);
$cmbAction = new CComboBox("action");
$cmbAction->AddItem("add to group",S_ADD_TO_GROUP);
if(isset($_REQUEST["itemid"]))
{
$cmbAction->AddItem("update in group",S_UPDATE_IN_GROUP);
$cmbAction->AddItem("delete from group",S_DELETE_FROM_GROUP);
}
$frmItem->AddItemToBottomRow($cmbAction);
$frmItem->AddItemToBottomRow(SPACE);
$frmItem->AddItemToBottomRow(new CButton("register","do"));
$frmItem->Show();
}
# Insert form for Host Groups
function insert_hostgroups_form($groupid)
{
global $_REQUEST;
$col=0;
if(isset($groupid))
{
$groupid=get_group_by_groupid($groupid);
$name=$groupid["name"];
}
else
{
$name="";
}
show_form_begin("hosts.group");
echo S_HOST_GROUP;
show_table2_v_delimiter($col++);
echo "
";
show_table2_header_end();
}
# Insert form for User Groups
function insert_usergroups_form($usrgrpid)
{
global $_REQUEST;
$col=0;
if(isset($usrgrpid))
{
$usrgrp=get_usergroup_by_usrgrpid($usrgrpid);
$name=$usrgrp["name"];
}
else
{
$name="";
}
show_form_begin("users.groups");
echo S_USER_GROUP;
show_table2_v_delimiter($col++);
echo "";
show_table2_header_end();
}
# Insert form for User permissions
function insert_permissions_form($userid)
{
show_form_begin("users.users");
echo "New permission";
show_table2_v_delimiter();
echo "";
show_table2_header_end();
}
function insert_graph_form()
{
global $_REQUEST;
$name=@iif(isset($_REQUEST["name"]),$_REQUEST["name"],"");
$width=@iif(isset($_REQUEST["width"]),$_REQUEST["width"],900);
$height=@iif(isset($_REQUEST["height"]),$_REQUEST["height"],200);
$yaxistype=@iif(isset($_REQUEST["yaxistype"]),$_REQUEST["yaxistype"],GRAPH_YAXIS_TYPE_CALCULATED);
$yaxismin=@iif(isset($_REQUEST["yaxismin"]),$_REQUEST["yaxismin"],0.00);
$yaxismax=@iif(isset($_REQUEST["yaxismax"]),$_REQUEST["yaxismax"],100.00);
if(isset($_REQUEST["graphid"])&&!isset($_REQUEST["name"]))
{
$result=DBselect("select g.graphid,g.name,g.width,g.height,g.yaxistype,g.yaxismin,g.yaxismax from graphs g where graphid=".$_REQUEST["graphid"]);
$row=DBfetch($result);
$name=$row["name"];
$width=$row["width"];
$height=$row["height"];
$yaxistype=$row["yaxistype"];
$yaxismin=$row["yaxismin"];
$yaxismax=$row["yaxismax"];
}
show_form_begin("graphs.graph");
echo S_GRAPH;
show_table2_v_delimiter();
echo "