Files
web.ems/wxc2_omc/sysDefine/sysParamDef/paramConf.php
T
2024-11-11 17:56:00 +08:00

632 lines
21 KiB
PHP
Executable File

<?php
require("../../inc/header.inc");
?>
<script LANGUAGE="JavaScript">
function chgSysType(){
var baseUrl,urlAdd,url;
baseUrl='<?php echo"$PHP_SELF?sysTypeNo=";?>';
urlAdd=document.confForm.sysTypeNo.options[document.confForm.sysTypeNo.selectedIndex].value;
url=baseUrl+urlAdd;
window.location=url;
}
function chgObj(){
var baseUrl,urlAdd,url;
baseUrl='<?php echo"$PHP_SELF?sysTypeNo=$sysTypeNo&keyId=";?>';
urlAdd=document.confForm.keyId.options[document.confForm.keyId.selectedIndex].value;
url = baseUrl+urlAdd;
window.location=url;
}
function chkValue(term){
term.value = term.value.toUpperCase();
if(term.value.length != (document.confForm.length.value * 2)){
term.style.color = "BLUE";
alert('3.Default Value length error,it must ='+document.confForm.length.value);
return (false);
}
var hexStr = '0123456789ABCDEF';
var checkStr = term.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++){
ch = checkStr.charAt(i);
for (j = 0; j < hexStr.length; j++){
if (ch == hexStr.charAt(j)) break;
}
if (j == hexStr.length){
allValid = false;
break;
}
}
if (!allValid){
alert('Must be a hexadecimal number');
term.focus();
term.style.color = "BLUE";
return (false);
}
term.style.color = "BLACK";
}
function chgValueType(){
var valueType;
valueType=document.confForm.valueType.options[document.confForm.valueType.selectedIndex].value;
if(valueType == '2'){
document.confForm.length.value = 5;
}
}
function hideorshow(thisCheckBox,id)
{
if(thisCheckBox.checked == true)
document.getElementById(id).style.display='';
else
document.getElementById(id).style.display='none';
}
</script>
<!--<br><script language="javascript" src="../../inc/expand.js" ></script> -->
<?php
//------------functions---------------------
function omcGetObjDb($sysTypeNo){
$dbName = 'OBJ_'.$sysTypeNo;
return($dbName);
}
function omcGetObjTbl($sysTypeNo,$tableType){
$dbName = 'OBJ_'.$sysTypeNo;
$tableName = $dbName.'.paramConf';
return($tableName);
}
?>
<body onload="javascript:adjust();" onresize="javascript:adjust();" leftmargin="15" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;">
<?php
adjust_head();
adjust_title_head();
echo "<table id=\"table_up\" border=\"0\" width=\"100%\">";
echo "<tr>";
echo "<td width=\"50%\">";
echo "Template > Template > Parameter > Structure";
echo "</td>";
echo "<td width=\"50%\" align=\"right\" title=\"Help\">";
//showHelp($helpId);
echo "</td>";
echo "</tr>";
echo "</table>";
adjust_title_tail();
adjust_content_head();
echo "<br>";
$DEBUG = 0;
$sysConfTable = 'OMC_PUB.sysConf';
$sysTypeNo = (isset($sysTypeNo)?$sysTypeNo:322);//default is CCF-MSC
$pubDb ='OMC_PUB';
$objDb = omcGetObjDb($sysTypeNo);
$paramConfTable = omcGetObjTbl($sysTypeNo,paramConf);
$maxLevelNum = 10;
if($DEBUG) echo "<br>$paramConfTable<br>";
//----------------------
//选择语言版本
if($language == 'eng'){
$objNameField=name_2; //语种2
}else{
$objNameField=name_1; //语种1(默认语种)
}
//-----------------------
/**************************************删除一个类型说明***********************************************/
if($delete){
$delSql = "DELETE FROM $paramConfTable WHERE keyId='$keyId'";
if($DEBUG) echo "delSql=$delSql<br>";
$delResult = mysqli_query($pubConn ,$delSql);
echo mysqli_error($pubConn);
//------------
if($delResult){
echo "<script LANGUAGE=\"JavaScript\">";
echo "alert('";
echo $strDeleteSuccess;
echo "')";
echo "</script>";
}else{
echo "<script LANGUAGE=\"JavaScript\">";
echo "alert('";
echo $strDeleteFailure;
echo "')";
echo "</script>";
}
} //end if($delete)
/*****************************添加,保存一个新的参数类型或创建新的参数结构表*****************************/
if($save){
if($DEBUG) echo "<br>keyId = $keyId";
if($keyId == 'new'){ //插入一个新类型
$saveSql = "REPLACE INTO $paramConfTable (name_1,name_2,desc_1,desc_2,paramType,number,length,valueType,operType,initValue,minValue,maxValue,setTemplate_1,setTemplate_2,needNote,note_1,note_2,level_1,level_2,level_3,level_4,level_5,level_6,level_7,level_8,level_9,level_10) VALUES('$name_1','$name_2','$desc_1','$desc_2','$paramType','$number','$length','$valueType','$operType','$initValue','$minValue','$maxValue','$setTemplate_1','$setTemplate_2','$needNote','$note_1','$note_2','$level_1','$level_2','$level_3','$level_4','$level_5','$level_6','$level_7','$level_8','$level_9','$level_10')";
$saveResult = mysqli_query($pubConn ,$saveSql);
if($saveResult){
$keyIdSel = "SELECT keyId FROM $paramConfTable WHERE
level_1='$level_1' AND
level_2='$level_2' AND
level_3='$level_3' AND
level_4='$level_4' AND
level_5='$level_5' AND
level_6='$level_6' AND
level_7='$level_7' AND
level_8='$level_8' AND
level_9='$level_9' AND
level_10='$level_10'
";
$keyIdResult = mysqli_query($pubConn,$keyIdSel);
$keyIdeRows = mysqli_fetch_array($keyIdResult);
$keyId = $keyIdeRows[keyId];
}
}elseif($keyId > 0){ //修改已有类型
if($needNote !=1){
$needNote = 0;
}
$saveSql = "UPDATE $paramConfTable
SET
name_1='$name_1',
name_2='$name_2',
desc_1='$desc_1',
desc_2='$desc_2',
paramType='$paramType',
number='$number',
length='$length',
valueType='$valueType',
operType='$operType',
initValue='$initValue',
minValue='$minValue',
maxValue='$maxValue',
needNote='$needNote',
note_1='$note_1',
note_2='$note_2',
level_1='$level_1',
level_2='$level_2',
level_3='$level_3',
level_4='$level_4',
level_5='$level_5',
level_6='$level_6',
level_7='$level_7',
level_8='$level_8',
level_9='$level_9',
level_10='$level_10'
WHERE keyId='$keyId'
";
$saveResult = mysqli_query($pubConn ,$saveSql);
}else{
echo "<br>Error: keyId == NULL";
}
if($DEBUG) echo "<br>$saveSql";
echo mysqli_error($pubConn);
if($saveResult){
/*
//更新备份文件
$csvFileName = '/usr/local/apache/htdocs/db_backup/other/'.$paramConfTable.'.csv';
@unlink($csvFileName);
$csvFileUpdateSql=" SELECT *
INTO OUTFILE '$csvFileName'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM $paramConfTable
";
$csvFileUpdateResult = mysqli_query($pubConn ,$csvFileUpdateSql);
echo mysqli_error($pubConn);
*/
echo "<script LANGUAGE=\"JavaScript\">";
echo "alert('";
echo $strEditSuccess;
echo "')";
echo "</script>";
}else{
echo "<script LANGUAGE=\"JavaScript\">";
echo "alert('";
echo $strEditFailure;
echo "')";
echo "</script>";
}
} //end if($save)
/*****************************创建参数库和参数配置表*****************************/
$dblist = mysqli_query($pubConn, "SHOW DATABASES");
$dbNum = @mysqli_num_rows($dbList);
for($i=0; $i < $dbNum; $i++){
$dbName = mysqli_dbname($dbList, $i);
if($dbName == $objDb){
if($DEBUG) echo "<br>$objDb have be created";
break;
}
if($i == $dbNum-1){
if($DEBUG) echo "<br>$objDb have not be created";
//step 1.create objDb
$sql="CREATE DATABASE $objDb";
mysqli_query($pubConn,$sql);
if($DEBUG) echo "<br>create $objDb sql =$sql";
echo mysqli_error($pubConn);
//step 2.create paramConf table in objDb
$sql="CREATE TABLE paramConf (
keyId int(4) unsigned NOT NULL auto_increment,
name_1 varchar(30) NOT NULL,
name_2 varchar(30) NOT NULL,
desc_1 varchar(255) NOT NULL,
desc_2 varchar(255) NOT NULL,
paramType tinyint(1) DEFAULT '0' NOT NULL,
operType tinyint(1) DEFAULT '0' NOT NULL,
number int(6) DEFAULT '0' NOT NULL,
length smallint(3) DEFAULT '0' NOT NULL,
valueType tinyint(1) DEFAULT '0' NOT NULL,
initValue varchar(255) NOT NULL,
minValue varchar(255) NOT NULL,
maxValue varchar(255) NOT NULL,
setTemplate_1 text NOT NULL,
setTemplate_2 text NOT NULL,
needNote tinyint(1) DEFAULT '0' NOT NULL,
note_1 varchar(200) NOT NULL,
note_2 varchar(200) NOT NULL,
level_1 int(5) DEFAULT '0' NOT NULL,
level_2 int(5) DEFAULT '0' NOT NULL,
level_3 int(5) DEFAULT '0' NOT NULL,
level_4 int(5) DEFAULT '0' NOT NULL,
level_5 int(5) DEFAULT '0' NOT NULL,
level_6 int(5) DEFAULT '0' NOT NULL,
level_7 int(5) DEFAULT '0' NOT NULL,
level_8 int(5) DEFAULT '0' NOT NULL,
level_9 int(5) DEFAULT '0' NOT NULL,
level_10 int(5) DEFAULT '0' NOT NULL,
KEY level_1 (level_1),
KEY level_2 (level_2),
KEY level_3 (level_3),
KEY level_4 (level_4),
KEY level_5 (level_5),
KEY level_6 (level_6),
KEY level_7 (level_7),
KEY level_8 (level_8),
KEY level_9 (level_9),
KEY level_10 (level_10),
KEY id (keyId)
)";
mysqli_query($pubConn,$sql);
if($DEBUG) echo "<br>create paramConf table sql =$sql";
echo mysqli_error($pubConn);
break;
}
}
?>
<form method="POST" name=confForm action="<?php echo"$PHP_SELF";?>" >
<table border="1" width="100%" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#FFFFFF" >
<tr bgcolor="#E6E6E6">
<td width="100%" colspan="2" align="center">
<font size=3><b><?php echo "Object Parameter Configuration"; ?></b></font>
</td>
</tr>
<tr>
<td width="30%">
<?php echo $strSelectDeviceType; ?>
</td>
<td width="70%">
<select size="1" name="sysTypeNo" onChange="javascript:chgSysType()">
<?php
//显示选择设备下拉菜单
$sysTypeSql ="SELECT sysTypeNo,sysTypeName,snmpHead FROM $sysConfTable WHERE needParamConf ='1' ORDER BY sysTypeName";
if($DEBUG) echo "<br>$sysTypeSql";
$sysTypeResult = mysqli_query($pubConn,$sysTypeSql);
$sysTypeRows = @mysqli_fetch_array($sysTypeResult);
do{
if($sysTypeRows[sysTypeNo] == 225 ||
$sysTypeRows[sysTypeNo] == 260 ||
$sysTypeRows[sysTypeNo] == 311 ||
$sysTypeRows[sysTypeNo] == 320 ||
$sysTypeRows[sysTypeNo] == 325 ||
$sysTypeRows[sysTypeNo] == 330 ||
$sysTypeRows[sysTypeNo] == 340 ||
$sysTypeRows[sysTypeNo] == 350 ||
$sysTypeRows[sysTypeNo] == 355 ||
$sysTypeRows[sysTypeNo] == 375 ||
$sysTypeRows[sysTypeNo] == 378 ||
$sysTypeRows[sysTypeNo] == 379 ||
$sysTypeRows[sysTypeNo] == 380 ||
$sysTypeRows[sysTypeNo] == 385 ||
$sysTypeRows[sysTypeNo] == 386 ||
$sysTypeRows[sysTypeNo] == 390
)
continue;
echo "<option value=\"$sysTypeRows[sysTypeNo]\" ";
if($sysTypeRows[sysTypeNo] == $sysTypeNo && isset($sysTypeNo)){
echo"selected";
$snmpHeadStr = $sysTypeRows[snmpHead];
$sysTypeName = $sysTypeRows[sysTypeName];
}
echo ">";
echo "$sysTypeRows[sysTypeName]";
echo "</option>";
}while($sysTypeRows = mysqli_fetch_array($sysTypeResult));
?>
</select>
</td>
</tr>
<tr>
<td width="30%">
<?php echo $strSelectParaType; ?>
</td>
<td width="70%">
<?php
if($DEBUG) echo "$paramConfTable<br>";
echo "<select size=\"1\" name=\"keyId\" onChange=\"javascript:chgObj()\">";
$orderBy = '';
for($i=1;$i<=$maxLevelNum;$i++){
if($i < $maxLevelNum){
$tempStr = ' level_'.$i.',';
}else{
$tempStr = ' level_'.$i;
}
$orderBy .= $tempStr;
}
$objSql = "SELECT * FROM $paramConfTable
ORDER BY $orderBy
";
//echo "$objSql<br>";
$objResult = mysqli_query($pubConn ,$objSql);
//显示选择参数类型下拉菜单
echo"<option value=\"new\">------------------New------------------</option>";
while($objRows = mysqli_fetch_array($objResult)){
echo "<option value=\"$objRows[keyId]\" ";
if($objRows[keyId] == $keyId && $keyId > 0){
echo "selected";
}
echo ">";
$spaceStr = '';
$oidStr='';
for($i= $maxLevelNum; $i>=1; $i--){
$levelEndId = 'level_'.$i;
if($objRows[$levelEndId] > 0){
for($j=1;$j<=$i;$j++){
$spaceStr .='&nbsp&nbsp';
$levelBgnId = 'level_'.$j;
$oidStr .=$objRows[$levelBgnId].'.';
}
$spaceStr .='|--';
break;
}
}
echo "$spaceStr $oidStr $objRows[$objNameField]";
echo"</option>";
}
?>
</select>
<?php
if($DEBUG) echo "<br>selected Id = $keyId";
if($DEBUG) echo "<br>objSql = $objSql";
if($DEBUG) echo mysqli_error($pubConn);
?>
</td>
</tr>
<?php
$objSql = "SELECT * FROM $paramConfTable WHERE keyId = '$keyId'";
if($DEBUG) echo "$objSql<br>";
$objResult = mysqli_query($pubConn ,$objSql);
$objRows = @mysqli_fetch_array($objResult);
?>
<?php //------参数oid----------- ?>
<tr >
<td width="30%"><?php echo "Object Id"?>:</td>
<td width="70%">
<?php
$snmpHeadArr=explode('.',$snmpHeadStr);
for($i=0;$i<sizeof($snmpHeadArr);$i++){
echo "$snmpHeadArr[$i]";
echo "&#8226;"; //dot
}
for($i=1 ; $i <= $maxLevelNum; $i++){
$levelId = 'level_'.$i;
echo "<input type=\"text\" name=\"level_".$i."\" maxLength=3 size=2 value=\"$objRows[$levelId]\" class=\"text\">";
if($i < $maxLevelNum){
echo "&#8226;"; //dot
}
}
?>
</td>
</tr>
<?php //------参数名----------- ?>
<tr>
<td width="30%"><?php echo "Object Name 1"; ?>:</td>
<td width="70%">
<input type="text" name="name_1" size="20" value="<?php echo"$objRows[name_1]";?>" >(Chinese)</td>
</tr>
<tr>
<td width="30%"><?php echo "Object Name 2"; ?>:</td>
<td width="70%">
<input type="text" name="name_2" size="20" value="<?php echo"$objRows[name_2]";?>" >(English)</td>
</tr>
<?php //------参数描述----------- ?>
<tr>
<td width="30%"><?php echo "Object Description 1" ?>:</td>
<td width="70%">
<input type="text" name="desc_1" size="50" value="<?php echo"$objRows[desc_1]";?>" >(Chinese)
</td>
</tr>
<tr >
<td width="30%"><?php echo "Object Description 2" ?>:</td>
<td width="70%">
<input type="text" name="desc_2" size="50" value="<?php echo"$objRows[desc_2]";?>" >(English)
</td>
</tr>
<?php //------参数类型----------- ?>
<tr>
<td width="30%"><?php echo "Parameter Type "; ?>:</td>
<td width="70%">
<select name="paramType" size="1" >
<?php
$paramTypeDefArr = array("subsystem parameter","subsystem public parameter","system public parameter");
for($i=0;$i<sizeof($paramTypeDefArr);$i++){
if(isset($objRows[paramType]) && ($objRows[paramType] == $i)){
echo "<option value=\"$i\" selected>$paramTypeDefArr[$i]</option>";
}/*elseif(2==$i){
echo "<option value=\"$i\" selected>$paramTypeDefArr[$i]</option>";
}*/else{
echo "<option value=\"$i\">$paramTypeDefArr[$i]</option>";
}
}
?>
</select>
</td>
</tr>
<?php //------操作类型----------- ?>
<tr>
<td width="30%">Operation define:</td>
<td width="70%">
<select name="operType" size="1">
<?php
$operTypeArr=array("disable","read only","write only","read and write","not visible in advanced");
for($i=0;$i<sizeof($operTypeArr);$i++){
echo "<option value=\"$i\" ";
if(!isset($objRows[operType]) && $setSelected <= 0 && $i == 3){
echo "selected";
$setSelected = 1;
}elseif($objRows[operType] == $i){
echo "selected";
}
echo ">$operTypeArr[$i]</option>";
}
?>
</select>
</td>
</tr>
<tr bgcolor="#E6E6E6">
<td colspan="2"><font size=2><b>(Needn't fill the follow fields if this object have sub-objects)</b><font>
</td>
</tr>
<?php //------参数个数----------- ?>
<tr>
<td width="30%"><?php echo $strParaNumber; ?>:</td>
<td width="70%">
<input type="text" name="number" size="5" value="<?php echo"$objRows[number]";?>" >
</td>
</tr>
<?php //------参数长度----------- ?>
<tr>
<td width="30%"><?php echo $strParaLength; ?>:</td>
<td width="70%">
<input type="text" name="length" size="5" value="<?php echo"$objRows[length]";?>" >
In default Integer's length is 5
</td>
</tr>
<?php //------参数值类型----------- ?>
<tr>
<td width="30%"><?php echo "Value Type"; ?>:</td>
<td width="70%">
<select size="1" name="valueType" onChange="javascript:chgValueType()">
<?php
$varTypeArr=array(array("4","Octet String"),array("2","Integer"));
for($i=0;$i<sizeof($varTypeArr);$i++){
echo "\n <option value=\"{$varTypeArr[$i][0]}\"";
if($objRows[valueType] == $varTypeArr[$i][0]){
echo " selected ";
}
echo ">{$varTypeArr[$i][1]}</option>";
}
?>
</select>
</td>
</tr>
<?php //------取值范围----------- ?>
<tr>
<td width="30%"><?php echo $strValueRange; ?>:</td>
<td width="70%">
<nobr>
min value = <input type="text" name="minValue" maxlength="256" size="20" value="<?php echo"$objRows[minValue]";?>" onChange="javascript: chkValue(this);">&nbsp;&nbsp;&nbsp;
max value = <input type="text" name="maxValue" maxlength="256" size="20" value="<?php echo"$objRows[maxValue]";?>" onChange="javascript: chkValue(this);">
</nobr>
</td>
</tr>
<tr>
<td width="30%"><?php echo $strDefaultValue; ?>:</td>
<td width="70%">
<input type="text" name="initValue" maxlength="256" size="20" value="<?php echo"$objRows[initValue]";?>" onChange="javascript: chkValue(this);">
</td>
</tr>
<?php //------操作提示----------- ?>
<tr>
<td width="30%">Need Note:</td>
<td width="70%">
<input type="checkbox" name="needNote" value="1" <?php if($objRows[needNote] == '1') echo"checked";?>>
</td>
</tr>
<tr>
<td width="30%">Note Message 1:</td>
<td width="70%">
<input type="txt" name="note_1" size="40" value="<?php echo"$objRows[note_1]";?>">(Chinese)
</td>
</tr>
<tr>
<td width="30%">Note Message 2:</td>
<td width="70%">
<input type="txt" name="note_2" size="40" value="<?php echo"$objRows[note_2]";?>">(English)
</td>
</tr>
<?php //------初始化参数----------- ?>
<tr bgcolor="#E6E6E6">
<td colspan="2">
<input type="checkbox" name="isWantToInitParam" value="ON" onclick="hideorshow(this,'KB4Child');self.scrollBy(0,5000);">
<font size=2><b><?php echo $strDoYouFinishDefinitionOfAllParaType; ?></b></font>
</td>
</tr>
<tr bgcolor="#E6E6E6">
<td colspan="2">
<input type="checkbox" name="InitAllParameter" value="ON" onclick="hideorshow(this,'KB5Child');self.scrollBy(0,5000);">
<font size=2><b><?php echo "Init all system parameters"; ?></b></font>
</td>
</tr>
</table>
<p><input type="submit" value="<?php echo $strSave; ?>" name="save">
<input type="reset" value="<?php echo $strCancel; ?>" name="reset">
<input type="submit" value="<?php echo $strDeleteMode; ?>" name="delete">
</p>
</form>
<form method="POST" name=init action="<?php echo"./paramInit.php";?>">
<table border="1" width="100%" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#ffffff" >
<tr><td id=KB4Child style=display:none >
<b><font color="#FF0000" size="2"><?php echo "$strFillEachKindOfParaWithItsDefault"; ?></font></b>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="dropAndRecreate" value="1">
<font size=2><b><?php echo "Drop and recreate all tables"; ?></b></font>
<input type="hidden" name=sysTypeNo value="<?php echo "$sysTypeNo";?>">
<input type="hidden" name=keyId value="<?php echo "$keyId";?>">
<input type="submit" value="<?php echo "Click here to init all parameter of:$sysTypeName"; ?>" name="initParameter">
</td></tr>
</table>
</form>
<form method="POST" name=init action="<?php echo"./paramInit.php";?>">
<table border="1" width="100%" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#ffffff" >
<tr><td id=KB5Child style=display:none >
<b><font color="#FF0000" size="2"><?php echo "WARNING: all of the devices' parameters which saved in database will be replaced with default values "; ?></font></b>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="dropAndRecreate" value="1">
<font size=2><b><?php echo "Drop and recreate all tables"; ?></b></font>
<input type="hidden" name=sysTypeNo value="<?php echo "$sysTypeNo";?>">
<input type="hidden" name=initAll value="1">
<input type="submit" value="<?php echo "Click here to initial all parameters"; ?>" name="initParameter">
</td></tr>
</table>
</form>
<?php
adjust_content_tail();
?>
</body>
</html>