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', 1 & $items, S_ADD), new CCheckBox('items_update', 2 & $items, S_UPDATE), new CCheckBox('items_delete', 4 & $items, S_DELETE) )); $frmTemplate->AddRow(S_TRIGGERS,array( new CCheckBox('triggers_add', 1 & $triggers, S_ADD), new CCheckBox('triggers_update',2 & $triggers, S_UPDATE), new CCheckBox('triggers_delete',4 & $triggers, S_DELETE), )); $frmTemplate->AddRow(S_GRAPHS,array( new CCheckBox('graphs_add', 1 & $graphs, S_ADD), new CCheckBox('graphs_update', 2 & $graphs, S_UPDATE), new CCheckBox('graphs_delete', 4 & $graphs, S_DELETE), )); $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) { $frm_title = S_USER; if(isset($userid)&&$_REQUEST["form"]!=1) { $user=get_user_by_userid($userid); $frm_title = S_USER." \"".$user["alias"]."\""; } if(isset($userid)&&$_REQUEST["form"]!=1) { $alias = $user["alias"]; $name = $user["name"]; $surname = $user["surname"]; $password = ""; $url = $user["url"]; $autologout = $user["autologout"]; $lang = $user["lang"]; $refresh = $user["refresh"]; } else { $alias = get_request("alias",""); $name = get_request("name",""); $surname = get_request("surname",""); $password = ""; $url = get_request("url",""); $autologout = get_request("autologout","900"); $lang = get_request("lang","en_gb"); $refresh = get_request("refresh","30"); } $frmUser = new CFormTable($frm_title); $frmUser->SetHelp("web.users.users.php"); $frmUser->AddVar("config",get_request("config",0)); if($profile==0) $frmUser->SetAction("users.php"); else $frmUser->SetAction("profile.php"); 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("password1",$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 CButtonDelete( "Delete selected user?",url_param("config").url_param("userid"))); } $frmUser->AddItemToBottomRow(SPACE); $frmUser->AddItemToBottomRow(new CButtonCancel(url_param("config"))); $frmUser->Show(); } # Insert form for User Groups function insert_usergroups_form($usrgrpid) { global $_REQUEST; $frm_title = S_USER_GROUP; if(isset($usrgrpid)) { $usrgrp=get_usergroup_by_usrgrpid($usrgrpid); $frm_title = S_USER_GROUP." \"".$usrgrp["name"]."\""; } if(isset($usrgrpid)&&$_REQUEST["form"]!=1) { $name = $usrgrp["name"]; } else { $name = get_request("name",""); } $frmUserG = new CFormTable($frm_title,"users.php"); $frmUserG->SetHelp("web.users.groups.php"); $frmUserG->AddVar("config",get_request("config",2)); if(isset($usrgrpid)) { $frmUserG->AddVar("usrgrpid",$usrgrpid); } $frmUserG->AddRow(S_GROUP_NAME,new CTextBox("name",$name,30)); $form_row = array(); $users=DBselect("select distinct userid,alias from users order by alias"); while($user=DBfetch($users)) { if(isset($_REQUEST["usrgrpid"])) { $sql="select count(*) as count from users_groups where userid=". $user["userid"]." and usrgrpid=".$_REQUEST["usrgrpid"]; $result=DBselect($sql); $res_row=DBfetch($result); array_push($form_row, new CCheckBox($user["userid"],$res_row["count"], $user["alias"]), BR); } else { array_push($form_row, new CCheckBox($user["userid"], isset($_REQUEST[$user["userid"]]),$user["alias"]), BR); } } $frmUserG->AddRow(S_USERS,$form_row); $frmUserG->AddItemToBottomRow(new CButton("save",S_SAVE)); if(isset($_REQUEST["usrgrpid"])) { $frmUserG->AddItemToBottomRow(SPACE); $frmUserG->AddItemToBottomRow(new CButtonDelete( "Delete selected group?",url_param("config").url_param("usrgrpid"))); } $frmUserG->AddItemToBottomRow(SPACE); $frmUserG->AddItemToBottomRow(new CButtonCancel(url_param("config"))); $frmUserG->Show(); } # Insert form for Item information function insert_item_form() { global $_REQUEST; $hostid=@iif(isset($_REQUEST["hostid"]),$_REQUEST["hostid"],0); $description=@iif(isset($_REQUEST["description"]),$_REQUEST["description"],""); $key=@iif(isset($_REQUEST["key"]),$_REQUEST["key"],""); $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); $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); $host=@iif(isset($_REQUEST["host"]),$_REQUEST["host"],NULL); if(is_null($host)&&$hostid>0){ $host_info = get_host_by_hostid($hostid); $host = $host_info["host"]; } if(isset($_REQUEST["itemid"])&&($_REQUEST["form"] != 1)) { $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?');") ); } array_push($frmRow, SPACE, new CButtonCancel(url_param("groupid").url_param("hostid"))); $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"])) continue; $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 User permissions function insert_permissions_form($userid) { $frmPerm = new CFormTable("New permission","users.php"); $frmPerm->SetHelp("web.users.users.php"); if(isset($userid)) { $frmPerm->AddVar("userid",$userid); } $cmbRes = new CComboBox("right"); $cmbRes->AddItem("Configuration of Zabbix","Configuration of Zabbix"); $cmbRes->AddItem("Default permission","Default permission"); $cmbRes->AddItem("Graph","Graph"); $cmbRes->AddItem("Host","Host"); $cmbRes->AddItem("Screen","Screen"); $cmbRes->AddItem("Service","IT Service"); $cmbRes->AddItem("Item","Item"); $cmbRes->AddItem("Network map","Network map"); $cmbRes->AddItem("Trigger comment","Trigger comment"); $cmbRes->AddItem("User","User"); $frmPerm->AddRow(S_RESOURCE,$cmbRes); $cmbPerm = new CComboBox("permission"); $cmbPerm->AddItem("R","Read-only"); $cmbPerm->AddItem("U","Read-write"); $cmbPerm->AddItem("H","Hide"); $cmbPerm->AddItem("A","Add"); $frmPerm->AddRow(S_PERMISSION,$cmbPerm); $frmPerm->AddRow("Resource ID (0 for all)",new CTextBox("id",0)); $frmPerm->AddItemToBottomRow(new CButton("register","add permission")); $frmPerm->Show(); } function insert_login_form() { $frmLogin = new CFormTable('Login','index.php'); $frmLogin->SetHelp('web.index.login'); $frmLogin->AddRow('Login name', new CTextBox('name')); $frmLogin->AddRow('Password', new CPassBox('password')); $frmLogin->AddItemToBottomRow(new CButton('register','Enter')); $frmLogin->Show(); } /* # Insert form for Problem function insert_problem_form($problemid) { show_form_begin(); echo "Problem definition"; show_table2_v_delimiter(); echo "