home *** CD-ROM | disk | FTP | other *** search
Wrap
/* ====================================================================== DESC: Common Alert Functions for the Administer/Analyze Operations PLATFORMS: >= MS IE 4.0 USAGE NOTES: ====================================================================== */ // Process Customize Template Button Press var savALMode = ""; function processNewTemplateButton() { savALMode = ALMode; // save current mode PopUpContextOpen(); TemplateDef.style.display = ""; processObjectLookupRequest(); } // Process Close Customize Template Button Press function processTemplateDoneButton() { processTemplateResetButton(); TemplateDef.style.display = "none"; ALMode = savALMode; // restore current mode PopUpContextClose(); if (ALMode == "New") { processPopulateTemplateSelect(); } else if (ALMode == "Edit") { getSelectSaName_Desc(AR_RptStoreArr[(RptSelectIdx*ReportRecLength)+4]); processPopulateTemplateSelect(); } else if ( AR_RptSel.style.visibility != "hidden" ) { AR_RptSel.focus(); } } // Process Object Lookup var ObjectLUPreqd = true; var ObjectLupRecCount = 0; var LastObjectName = null; var CurObjName = ""; function processObjectLookupRequest() { if ( ObjectLUPreqd ) { // Need to Lookup Objects ObjectLupRecCount = 0; // clear Lookup record counter AL_OCStoreArr.length = 0; if ( RpmCC_AL.ObjectLookupForObjCompArray("*") ) { ALMode = ""; top.Rstatus.Pstat("Unable to start the Object LOOKUP request",true); } else { ALMode = "ObjectLookup"; // set Mode of operation top.Rstatus.Pstat("One moment while Object LOOKUP request completes"); return; } } else { processCustomInit(); } } // Process Object Lookup Record Event var ObjectRecLength = 6; // Object Lookup record length var AL_OCStoreArr = new Array(); function processObjectLookup(ONme,ODesc,OCIdA) { var onme = "", inme = ""; var warr0 = new Array(); var warr1 = new Array(); var i = ObjectLupRecCount * ObjectRecLength; AL_OCStoreArr[i++] = ONme; AL_OCStoreArr[i++] = ODesc; AL_OCStoreArr[i++] = OCIdA; AL_OCStoreArr[i++] = null; // Parse out Instance name from Object name onme = ""; inme = ""; warr0 = ONme.split("{"); onme = warr0[0]; // Object name if ( warr0.length == 2 ) { warr1 = warr0[1].split("}"); inme = warr1[0]; // Instance name } else if ( warr0.length > 2 ) { warr1 = warr0[2].split("}"); inme = warr0[1]+" {"+warr1[0]+"}"; } AL_OCStoreArr[i++] = onme; AL_OCStoreArr[i] = inme; ++ObjectLupRecCount; // bump record received counter } function processObjectOpComplete() { if (ObjectLupRecCount == 0) { // check if any Object records found top.Rstatus.Pstat("No record matches found for Object LOOKUP request"); alert("No Object/Counter data in the MonitorIT database\n -Install at least one MonitorIT Agent on a server you want to monitor\n -See `Configure Servers/Agents & Devices` to install an Agent"); processCustomInit(); } else { top.Rstatus.Pstat("Done"); // Get name of Last Object in Store LastObjectName = AL_OCStoreArr[(ObjectLupRecCount-1)*ObjectRecLength]; ObjectLUPreqd = false; TreeHTML = ""; processCustomInit(); } } var CurTemplateStoreIdx = 0; function processCustomInit() { AR_TemplateName.style.display = "none"; AR_TemplateSelect.selectedIndex = 0; CurTemplateStoreIdx = 0; AR_TemplateSelect.style.display = ""; if ( AR_SaStoreArr.length == 0 ) { // if no Templates AL_CCOne.innerHTML = ""; // initialize AL_CSelectStore.innerHTML = ""; if ( ObjectLUPreqd ) { // Need to Lookup Objects SetButtonState(TNewButton,"1"); } else { SetButtonState(TNewButton,"0"); } SetButtonState(TEditButton,"1"); SetButtonState(TDeleteButton,"1"); SetButtonState(TUpdateButton,"1"); SetButtonState(TResetButton,"1"); } else { populateInputCustom(0); } } function processTemplateSelect() { var i = AR_TemplateSelect.selectedIndex * SaRecLth; if ( i != CurTemplateStoreIdx ) {// if different from current CurTemplateStoreIdx = i; // Set current selected Sa to just selected one populateInputCustom(i); } } function populateInputCustom(Cidx) { AR_TemplateDesc.value = AR_SaStoreArr[Cidx+2]; if ( RpmCC_AL.CounterDictRecsByAnalysisID(AR_SaStoreArr[Cidx+1]) ) { ALMode = ""; top.Rstatus.Pstat("Unable to start the Counter Dictionary Lookup request",true); } else { ALMode = "CounterDictionaryLookup"; // set Mode of operation top.Rstatus.Pstat("One moment while Counter Dictionary LOOKUP request completes"); } } var CdictArrEntryLength = 18; // size of a dictionary record var CounterParmsNumber = 10; var CdictArr = new Array(); function processCounterDictionaryLookup(CdictStrg) { var DescParse = new Array(); if ( CdictStrg != "" ) { CdictArr = CdictStrg.split("~"); } AL_CCOne.innerHTML = ""; // initialize AL_CSelectStore.innerHTML = ""; FOps = "<table border='0' cellpadding='1' cellSpacing='1' width='100%'><tr>"; FOps += "<td width='36%' align='center' style='background-color:graytext;color:captiontext' class='optextb'>"; FOps += "Object" + "</td>"; FOps += "<td width='36%' align='center' style='background-color:graytext;color:captiontext' class='optextb'>"; FOps += "Counter" + "</td>"; FOps += "<td width='28%' align='center' style='background-color:graytext;color:captiontext' class='optextb'>"; FOps += "Dscription" + "</td>"; FOps += "</tr></table>"; AL_CCOne.insertAdjacentHTML("afterBegin",FOps); for ( var i=1; i<CdictArr.length-1; i+=CdictArrEntryLength ) { var OIname = CdictArr[i+3]+" "+CdictArr[i+5]; OIname = (OIname.length >= 28) ? OIname.substring(0,28)+"...." : OIname; FOps = "<div>"; FOps += "<table border='0' cellpadding='1' cellSpacing='1' width='100%'><tr>"; FOps += "<td width='36%' class='optext' title='"+ CdictArr[i+3]+" "+CdictArr[i+5] +"'>"; FOps += OIname + "</td>"; FOps += "<td width='36%' class='optext'>"; FOps += CdictArr[i+4] + "</td>"; DescParse = CdictArr[i+16].split("'"); CdictArr[i+16] = DescParse.join("`"); FOps += "<td width='28%' class='optext' title='"+CdictArr[i+16]+"'>"; FOps += ( (CdictArr[i+16].length > 22) ? CdictArr[i+16].substring(0,22)+"...." : CdictArr[i+16])+"</td>"; FOps += "</tr></table></div>"; AL_CCOne.insertAdjacentHTML("beforeEnd",FOps); addElementToSelect(AL_CSelectStore,OIname+" - "+CdictArr[i+4]); } if ( CurSelTab == "ParmTab" ) { AR_ObjCSelect.innerHTML = ""; for (var i=0; i < AL_CSelectStore.length; ++i) { addElementToSelect(AR_ObjCSelect,AL_CSelectStore.options[i].text); } AR_ObjCSelect.selectedIndex = 0; } currCSelectIndex = 0; processObjCSelect(); // go display parameters for 1st Object-Counter if ( ObjectLUPreqd ) { // Need to Lookup Objects SetButtonState(TNewButton,"1"); } else { SetButtonState(TNewButton,"0"); } var ix = AR_TemplateSelect.selectedIndex*SaRecLth; // index to current Template selected if ( AR_SaStoreArr[ix+3] == OCXName ) { // if selected Template is a custome one, allow edit&delete SetButtonState(TEditButton,"0"); SetButtonState(TDeleteButton,"0"); } else { // other no edit/delet of shipping templates SetButtonState(TEditButton,"1"); SetButtonState(TDeleteButton,"1"); } SetButtonState(TUpdateButton,"1"); SetButtonState(TResetButton,"1"); processGeneralClick(CounterTab); AR_TemplateSelect.focus(); top.Rstatus.Pstat("Done"); AL_CCOne.style.overflow = (AL_CCOne.scrollHeight >= AL_CCOne.clientHeight) ? "scroll" : ""; } var prevCSelectIndex = -1; var currCSelectIndex = -1; var Oix = 0; var PrmObj = null; function processPreObjCSelect() { currCSelectIndex = AR_ObjCSelect.selectedIndex; processObjCSelect(); } function processObjCSelect() { var warr = new Array; if ( ALMode == "TNew" || ALMode == "TEdit" ) { if ( prevCSelectIndex != -1 && prevCSelectIndex != currCSelectIndex ) { // save current new values PrmObj.options[Oix+0].text = AR_Scale.value; PrmObj.options[Oix+1].text = AR_SampleRate.value; PrmObj.options[Oix+2].text = AR_AvgValue.value; PrmObj.options[Oix+3].text = AR_MaxValue.value; PrmObj.options[Oix+4].text = AR_Comment0.value; PrmObj.options[Oix+5].text = AR_Comment1.value; PrmObj.options[Oix+6].text = AR_Comment2.value; PrmObj.options[Oix+7].text = AR_Comment3.value; PrmObj.options[Oix+8].text = AR_Comment4.value; PrmObj.options[Oix+9].text = AR_Comment5.value; } Oix = AR_ObjCSelect.options[currCSelectIndex].value; warr = Oix.split("~"); // get Object and Counter indices PrmObj = document.all["cparms"+warr[0]] Oix = CounterParmsNumber * parseInt(warr[1],10); AR_Scale.value = PrmObj.options[Oix+0].text; AR_Scale.value = (AR_Scale.value == "") ? document.all[("cima"+warr[0]+"_"+warr[1])].defscale : AR_Scale.value; AR_SampleRate.value = PrmObj.options[Oix+1].text; AR_SampleRate.value = (AR_SampleRate.value == "" || AR_SampleRate.value == "0") ? "30" : AR_SampleRate.value; AR_AvgValue.value = PrmObj.options[Oix+2].text; AR_AvgValue.value = (AR_AvgValue.value == "") ? "0" : AR_AvgValue.value; AR_MaxValue.value = PrmObj.options[Oix+3].text; AR_MaxValue.value = (AR_MaxValue.value == "") ? "0" : AR_MaxValue.value; AR_Comment0.value = AR_Comment0.title = PrmObj.options[Oix+4].text; AR_Comment1.value = AR_Comment1.title = PrmObj.options[Oix+5].text; AR_Comment2.value = AR_Comment2.title = PrmObj.options[Oix+6].text; AR_Comment3.value = AR_Comment3.title = PrmObj.options[Oix+7].text; AR_Comment4.value = AR_Comment4.title = PrmObj.options[Oix+8].text; AR_Comment5.value = AR_Comment5.title = PrmObj.options[Oix+9].text; prevCSelectIndex = AR_ObjCSelect.selectedIndex; // save as previous } else { Oix = 1 + (CdictArrEntryLength * currCSelectIndex); AR_Scale.value = CdictArr[Oix+17]; AR_SampleRate.value = CdictArr[Oix+6]; AR_AvgValue.value = AR_AvgValue.title = CdictArr[Oix+8]; AR_MaxValue.value = AR_MaxValue.title = CdictArr[Oix+9]; AR_Comment0.value = AR_Comment0.title = CdictArr[Oix+10]; AR_Comment1.value = AR_Comment1.title = CdictArr[Oix+11]; AR_Comment2.value = AR_Comment2.title = CdictArr[Oix+12]; AR_Comment3.value = AR_Comment3.title = CdictArr[Oix+13]; AR_Comment4.value = AR_Comment4.title = CdictArr[Oix+14]; AR_Comment5.value = AR_Comment5.title = CdictArr[Oix+15]; } } /* Process Click on selected Tab */ var CurSelTab = null; // current selected tab function processGeneralClick(th) { CounterUI.style.display="none"; ParmUI.style.display="none"; CounterTab.className="TabUnsel"; ParmTab.className="TabUnsel"; th.className="TabSel"; CurSelTab = th.id; switch ( th.id ) { case "CounterTab" : AR_ObjCSelect.style.display = "none"; CounterUI.style.display=""; // Enable this Tab's view AL_CCOne.style.overflow = (AL_CCOne.scrollHeight >= AL_CCOne.clientHeight) ? "scroll" : ""; break; case "ParmTab" : if ( ALMode == "TNew" || ALMode == "TEdit" ) { if ( procCheckedCounterParms() != 0 ) { prevCSelectIndex = -1; currCSelectIndex = AR_ObjCSelect.selectedIndex; processObjCSelect(); } } else { AR_ObjCSelect.innerHTML = ""; for (var i=0; i < AL_CSelectStore.length; ++i) { addElementToSelect(AR_ObjCSelect,AL_CSelectStore.options[i].text); } AR_ObjCSelect.selectedIndex = 0; } AR_ObjCSelect.style.display = ""; ParmUI.style.display = ""; // Enable this Tab's view AR_ObjCSelect.focus(); AL_ParmTable.style.overflow = (AL_ParmTable.scrollHeight >= AL_ParmTable.clientHeight) ? "scroll" : ""; break; } } // Process New Template Button function processTemplateNewButton() { ALMode = "TNew"; // Set Mode of operation AR_TemplateName.value = ""; // clear Name field AR_TemplateName.style.display = ""; AR_TemplateSelect.style.display = "none" AR_TemplateDesc.value = ""; // clear Description field AR_SampleRate.value = "30"; // prime Sample rate field commonTemplateNew_Edit(); // Do common processing AR_TemplateName.focus(); } // Process Edit Template Button function processTemplateEditButton() { ALMode = "TEdit"; // Set Mode of operation AR_TemplateName.style.display = ""; AR_TemplateName.value = AR_TemplateSelect.options[AR_TemplateSelect.selectedIndex].text; AR_TemplateSelect.style.display = "none"; commonTemplateNew_Edit(); // Do common processing TEScdix = 1, TESobjix = 0; // init index TESmode = true; // set mode prevONIN = null; SetCursor("wait"); top.banner.processStartComm(); PopUpMoment.style.display = ""; } var TEScdix = 0; // CounterDictionary Array index var TESobjix = 0; // Object store index var TESmode = false; var prevONIN = null; // previous Object+Instance name var TSid = null; var ONo = null; // current Object var OInme = ""; // current Object+Instance name function processTemplateEditSetup() { TSid = null; var onme = "", inme = "", ix = 0; // Expand All Selected Objects and Check Associated Counters for ( var i=TEScdix; i<CdictArr.length-1; i+=CdictArrEntryLength ) { OInme = CdictArr[i+3]+CdictArr[i+5]; // Object+Instance name if ( OInme == prevONIN ) { continue; // get next } prevONIN = OInme; // save as previous for ( var j=TESobjix; j<ObjectLupRecCount; j++ ) { //ONo = document.all["oexp"+j]; // ix = j * ObjectRecLength; onme = AL_OCStoreArr[ ix + 4]; inme = AL_OCStoreArr[ ix + 5]; //if ( OInme != ONo.objnme+ONo.instnme ) { if ( OInme != onme+inme ) { continue; } // go expand Object goObjImgClick(document.all["oima"+j]); TEScdix = i; // save current indices TESobjix = j; return; } } TESmode = false; PopUpMoment.style.display = "none"; SetCursor("auto"); top.banner.processStopCommX(); } function processTemplateEditSetupCounter() { TSid = null; // clear var PmObj = null; var Oix = 0; // For this Object/Counter entry in the CounterDictionary Array for ( var i=TEScdix; i<CdictArr.length-1; i+=CdictArrEntryLength ) { OInme = CdictArr[i+3]+CdictArr[i+5]; // Object+Instance name if ( OInme != prevONIN ) { // if this Object name different than previous break; // done counters for this expanded Object } // Find this Counter for ( var k=0; k<ONo.cntrcount; k++ ) { COb = document.all["cima"+TESobjix+"_"+k]; if ( COb.CntrNme == CdictArr[i+4] ) { // Counter found procCntrImgClick(COb); // go set Counter checked PmObj = document.all["cparms"+TESobjix]; // save parameters Oix = CounterParmsNumber * k; PmObj.options[Oix+0].text = CdictArr[i+17]; // Scale value PmObj.options[Oix+1].text = CdictArr[i+6]; // Sample Rate PmObj.options[Oix+2].text = CdictArr[i+8]; // Avg value PmObj.options[Oix+3].text = CdictArr[i+9]; // Max value PmObj.options[Oix+4].text = CdictArr[i+10]; // Comment0 PmObj.options[Oix+5].text = CdictArr[i+11]; PmObj.options[Oix+6].text = CdictArr[i+12]; PmObj.options[Oix+7].text = CdictArr[i+13]; PmObj.options[Oix+8].text = CdictArr[i+14]; PmObj.options[Oix+9].text = CdictArr[i+15]; // Comment 6 break; } } } TEScdix = i; // bump indices for next ++TESobjix; TSid = setTimeout("processTemplateEditSetup()",100); // go set the Objects and Counters selected } function commonTemplateNew_Edit() { //Common processing for New and Edit processGeneralClick(CounterTab); // set Counter Tab view SetButtonState(TNewButton,"1"); SetButtonState(TEditButton,"1"); SetButtonState(TDeleteButton,"1"); SetButtonState(TUpdateButton,"0"); SetButtonState(TResetButton,"0"); AR_ObjCSelect.innerHTML = ""; AR_ObjCSelect.className = ""; AL_CCOne.innerHTML = ""; AL_CCOne.style.backgroundColor = "white"; /* enable input fields */ AR_TemplateName.className = ""; AR_TemplateDesc.className = ""; AR_Scale.className = ""; AR_SampleRate.className = ""; AR_AvgValue.className = ""; AR_MaxValue.className = ""; AR_Comment0.className = ""; AR_Comment1.className = ""; AR_Comment2.className = ""; AR_Comment3.className = ""; AR_Comment4.className = ""; AR_Comment5.className = ""; prevCSelectIndex = -1; currCSelectIndex = -1; PrmObj = null; // reset // Go display Object Tree view OLUPindex = 0; SetCursor("wait"); top.banner.processStartComm(); setOutTemplateHeader("Object : Counter Tree"); // define output table header processAATree(); } // Process Template Reset Button function processTemplateResetButton() { ALMode = ""; // Reset Mode of operation AR_TemplateName.style.display = "none"; AR_TemplateSelect.style.display = "" AR_ObjCSelect.innerHTML = ""; AR_ObjCSelect.className = "idis"; AL_CCOne.style.backgroundColor = "activeborder"; /* enable input fields */ AR_TemplateDesc.className = "idis"; AR_Scale.className = "idis"; AR_SampleRate.className = "idis"; AR_AvgValue.className = "idis"; AR_MaxValue.className = "idis"; AR_Comment0.className = "idis"; AR_Comment1.className = "idis"; AR_Comment2.className = "idis"; AR_Comment3.className = "idis"; AR_Comment4.className = "idis"; AR_Comment5.className = "idis"; // Reset for ( var i=3, j=ObjectLupRecCount * ObjectRecLength; i<j; i+=ObjectRecLength ) { AL_OCStoreArr[i] = null; } if ( AR_SaStoreArr.length == 0 ) { // if no Templates AL_CCOne.innerHTML = ""; // initialize AL_CSelectStore.innerHTML = ""; if ( ObjectLUPreqd ) { // Need to Lookup Objects SetButtonState(TNewButton,"1"); } else { SetButtonState(TNewButton,"0"); } SetButtonState(TEditButton,"1"); SetButtonState(TDeleteButton,"1"); SetButtonState(TUpdateButton,"1"); SetButtonState(TResetButton,"1"); } else { AR_TemplateDesc.value = AR_SaStoreArr[CurTemplateStoreIdx+2]; processCounterDictionaryLookup(""); } } // Process template Update Button var OSSelect = "95,98,NTS4,NTS5,NTWS4,NTWS5"; var OCXName = "MIAnalyze.MIAnalyze1Ctrl.1"; var SAaddStrg = ""; var SADid = ""; // Template ID being deleted function processTemplateUpdateButton() { if (AR_TemplateName.value.length == 0) { // if no name entered top.Rstatus.Pstat("Please enter a Template name",true); alert("Please enter a Template name"); AR_TemplateName.focus(); return; } if ( procCheckedCounterParms() == 0 ) { top.Rstatus.Pstat("Please select at least one Counter",true); alert("Please select at least one Counter"); return; } // Check if any parmeters entered if ( ALMode == "TNew" && PrmObj == null ) { /*if ( !confirm("You have not defined parameters for any of the selected Counters.\n -Press OK to continue anyway\n -Press Cancel to stop and go back to add parameters") ) { return; }*/ } else if ( PrmObj != null ) { // make sure last parameters entered are saved prevCSelectIndex = -2; processPreObjCSelect(); } SAaddStrg = AR_TemplateName.value+"~"+AR_TemplateDesc.value+"~"+OSSelect+"~"+OCXName+"~0~0~"; if (ALMode == "TNew") { rstat = RpmCC_AL.SupportAnalysisAdd(SAaddStrg); } else { // "Edit" - Delete then Add SADid = AR_SaStoreArr[(AR_TemplateSelect.selectedIndex*SaRecLth)+1]; // ID rstat = RpmCC_AL.SupportAnalysisDelete(SADid); SAaddStrg += "~"+SADid; } if ( rstat ) { // if unable to initiate request top.Rstatus.Pstat("Unable to start the UPDATE request",true); processTemplateResetButton(); } else { // waiting for OperationCompleteEvent ignoreDBChangeEvent = true; top.Rstatus.Pstat("One moment while UPDATE request completes"); } } var SAAid = ""; // SupportAnalysis Template ID for last added record function processSupportAnalaysisAddOpComplete(AddResp) { var warr = new Array(); warr = AddResp.split("~"); // parse response if ( warr[1] == "OK" ) { // if successful SAAid = warr[0]; // save ID for Template just added processCounterDictionaryAdd(); // go add Counters to the dictionary RIDadjIx = 0; // initialize index for ID adjustment // Schedule Template ID adjust for this "Edited" one in existing Reports TSid = setTimeout("processReportIDAdjustment()",10); } else { alert("Template Add Unsuccessful!\n"+AddResp); processTemplateResetButton(); } } function processCounterDictionaryAdd() { var OCix = ""; var ParmObj = null; var newSR = 15; var warr = new Array(); var warr1 = new Array(); var onme = "", inme = ""; // Build Counter dictionary add string var CDAstrg = SAAid+"~"+OSSelect; // Get paramerts for each selected Counter for ( var i=0; i<AR_ObjCSelect.length; i++ ) { OCix = AR_ObjCSelect.options[i].value; warr = OCix.split("~"); // get Object and Counter indices warr1 = AR_ObjCSelect.options[i].text.split(" - "); // Split Object Name - CounterName ParmObj = document.all["cparms"+warr[0]] OCix = CounterParmsNumber * parseInt(warr[1],10); onme = AL_OCStoreArr[ (warr[0] * ObjectRecLength) + 4 ]; inme = AL_OCStoreArr[ (warr[0] * ObjectRecLength) + 5 ]; //CDAstrg += "~"+document.all["oexp"+warr[0]].objnme+"~"; // Object Name CDAstrg += "~"+onme+"~"; // Object Name CDAstrg += warr1[1]+"~"; // Counter Name //CDAstrg += document.all["oexp"+warr[0]].instnme+"~"; // Instance Name CDAstrg += inme+"~"; // Instance Name newSR = ParmObj.options[OCix+1].text; // Sample Rate newSR = (newSR == "0" || newSR == "") ? "30" : newSR; // Don't let Sample Rate = 0 newScale = ParmObj.options[OCix+0].text; newScale = (newScale == "") ? document.all[("cima"+warr[0]+"_"+warr[1])].defscale : newScale; CDAstrg += newSR+"~"; // Sample Rate CDAstrg += "0~"; // Suggested Monitor Duration CDAstrg += ParmObj.options[OCix+2].text+"~"; // Avg Value CDAstrg += ParmObj.options[OCix+3].text+"~"; // Max value CDAstrg += ParmObj.options[OCix+4].text+"~"; // Comment0 CDAstrg += ParmObj.options[OCix+5].text+"~"; // Comment1 CDAstrg += ParmObj.options[OCix+6].text+"~"; // Comment2 CDAstrg += ParmObj.options[OCix+7].text+"~"; // Comment3 CDAstrg += ParmObj.options[OCix+8].text+"~"; // Comment4 CDAstrg += ParmObj.options[OCix+9].text+"~"; // Comment5 CDAstrg += document.all["cimb"+warr[0]+"_"+warr[1]].title+"~"; // Description CDAstrg += newScale; // Scale } rstat = RpmCC_AL.CounterDictionaryAdd(CDAstrg); if ( rstat ) { // if unable to initiate request top.Rstatus.Pstat("Unable to start the UPDATE request",true); processTemplateResetButton(); } else { // waiting for OperationCompleteEvent ignoreDBChangeEvent = true; top.Rstatus.Pstat("One moment while UPDATE request completes"); } } function processCounterDictionaryAddOpComplete(AddResp) { var warr = new Array(); warr = AddResp.split("~"); // parse response if ( warr[0] == "OK" ) { // if successful processTSALookup("Add"); // go relookup the Templates } else { alert("Template Counter Dictionary Add Unsuccessful!\n"+AddResp); processTemplateResetButton(); } } function processTSALookup(Sarg) { SALop = Sarg; // save last function type, Add or Delete AR_SaStoreArr.length = 0; // clear AR_TemplateSelect.innerHTML = ""; // reset SALupRecCount = 0; // clear Lookup record counter if ( RpmCC_AL.SupportAnalysisLookup("","") ) { top.Rstatus.Pstat("Unable to start the Template LOOKUP request",true); processTemplateResetButton(); } else { ALMode = "TLookupSA"; // set Mode of operation top.Rstatus.Pstat("One moment while Template LOOKUP request completes"); } } var SALop = ""; function processTemplateLookupComplete() { if (SALupRecCount == 0) { // check if any records found top.Rstatus.Pstat("No record matches found for Template LOOKUP request",true); } else { // look for Template just added AR_TemplateSelect.selectedIndex = 0; // select 1st by default if ( SALop == "Add" ) { for ( var i=0; i<AR_TemplateSelect.length; i++ ) { if ( AR_TemplateSelect.options[i].text == AR_TemplateName.value ) { AR_TemplateSelect.selectedIndex = i; // select it break; } } } CurTemplateStoreIdx = -1; // force a lookup processTemplateSelect(); // display selected entry } processTemplateResetButton(); } // Process Template Delete Button function processTemplateDeleteButton() { ALMode = "TDelete"; // Set Mode of operation if ( !confirm("Are you sure you want to delete the Template named '"+AR_TemplateSelect.options[AR_TemplateSelect.selectedIndex].text+"'?\n -Press OK to Delete\n -Press Cancel to Stop") ) { return; } var TDid = AR_SaStoreArr[(AR_TemplateSelect.selectedIndex*SaRecLth)+1]; // ID rstat = RpmCC_AL.SupportAnalysisDelete(TDid); if ( rstat ) { // if unable to initiate request top.Rstatus.Pstat("Unable to start the DELETE request",true); processTemplateResetButton(); } else { // waiting for OperationCompleteEvent ignoreDBChangeEvent = true; top.Rstatus.Pstat("One moment while DELETE request completes"); } } function processSupportAnalysisDeleteOpComplete(DelResp) { var warr = new Array(); warr = DelResp.split("~"); // parse response if ( warr[1] == "OK" ) { // if successful if (ALMode == "TEdit") { // If Edit, go do add rstat = RpmCC_AL.SupportAnalysisAdd(SAaddStrg); if ( rstat ) { // if unable to initiate request top.Rstatus.Pstat("Unable to start the UPDATE request",true); processTemplateResetButton(); } else { // waiting for OperationCompleteEvent ignoreDBChangeEvent = true; top.Rstatus.Pstat("One moment while UPDATE request completes"); } } else { processTSALookup("Del"); // go relookup the Templates } } else { alert("Template Delete Unsuccessful!\n"+warr[1]); processTemplateResetButton(); } } // Find Report Records with ID of Template Just Edited (Deleted then Re-Added) and Replace with The Added One var RIDadjIx = 0; function processReportIDAdjustment() { TSid = null; // clear for ( var i=RIDadjIx; i<AR_RptStoreArr.length; i+=ReportRecLength ) { if ( AR_RptStoreArr[i+4] == SADid ) { AR_RptStoreArr[i+4] = SAAid; // Update template ID in the Store & in the DB rstat = RpmCC_AL.AdminReportsReplace(AR_RptStoreArr[i+1], // Report ID AR_RptStoreArr[i+0], // Report Name AR_RptStoreArr[i+2], // Report Desc SAAid, // ID of Newly Added Template AR_RptStoreArr[i+5]); if ( rstat ) { // if unable to initiate request continue; // if NG on this, check next } else { // waiting for OperationCompleteEvent RIDadjIx = ++i; // save index ignoreDBChangeEvent = true; return; // do next on OpComplete } } } RIDadjIx = 0; // Clear/reset index/flag } function getComputerName(Cid) { for ( var i=0; i<AC_CompStoreArr.length; i+=CompRecLength ) { if ( AC_CompStoreArr[i] == Cid ) { return AC_CompStoreArr[i+2]; } } return ""; } // Process and Display the Object:Counter:Computer Tree var ALupMode = ""; var OLUPindex = 0; var AATreeBusy = false; function processAATree() { var warr0 = new Array(); var warr1 = new Array(); Tid = null; // clear timeout ID AATreeBusy = true; if ( AC_CompStoreArr.length == 0 ) { processInitialLookup("DRCompLookup"); return; } AATreeBusy = true; var i = OLUPindex; var j = i * ObjectRecLength; var loopcount = 0; for ( ; i<ObjectLupRecCount && loopcount < 25; loopcount++, i++, j+=ObjectRecLength) { // Get description Odsc = AL_OCStoreArr[j+1]; // get description if ( Odsc.charAt(0) == "{" ) { // if instance var k = j; // get/preserve Object index while ( (k-=ObjectRecLength) >= 0 ) { // find decription for the instance if ( AL_OCStoreArr[k+1] == Odsc ) { continue; // if another instance } else { Odsc = AL_OCStoreArr[k+1]; break; } } // end While } Odsc += "\n\nObject Available on Following Servers/Workstations:"; var carr = new Array(); var ocar = new Array(); var csortarr = new Array(); var ocid; carr = AL_OCStoreArr[j+2].split(";"); for ( var n=0; n<carr.length; n++ ) { ocar = carr[n].split(","); csortarr[n] = getComputerName(ocar[1]).toUpperCase(); } csortarr.sort(); for ( var n=0, p=0; n<carr.length; n++ ) { if ( csortarr[n] == "" ) continue; if ( p%3 == 0 ) Odsc += "\n"+csortarr[n]; else Odsc += ", "+csortarr[n]; ++p; } CCEs += "<table border='0' cellpadding='0' cellSpacing='0' width='550'>"; CCEs += "<tr title='" + Odsc + "'><td width='15'> </td>"; if ( LastObjectName == AL_OCStoreArr[j] ) { // if last Object Iprefx = "L"; } else { Iprefx = "T"; } CCEs += "<td width='20' align='center'><img id='oima" + i + "' expanded='0' src='images/" + Iprefx + "plus.gif' style='cursor:hand' onclick='procObImgClick(this)' width='19' height='20'></td>"; CCEs += "<td width='20' align='center'><img id='oimb" + i + "' src='images/Objects.gif' style='cursor:hand' onclick='procObImgClick(this)' width='16' height='16'></td>"; // Parse out Instance name from Object name //var onme = "", inme = ""; //warr0 = AL_OCStoreArr[j].split("{"); //onme = warr0[0]; // Object name //if ( warr0.length == 2 ) { // warr1 = warr0[1].split("}"); // inme = warr1[0]; // Instance name //} //else if ( warr0.length > 2 ) { // warr1 = warr0[2].split("}"); // inme = warr0[1]+" {"+warr1[0]+"}"; //} onme = AL_OCStoreArr[ (i * ObjectRecLength) + 4]; inme = AL_OCStoreArr[ (i * ObjectRecLength) + 5]; CCEs += "<td width='495' class='optext'>" + onme+" "+inme + "</td>"; CCEs += "</tr></table>"; CCEs += "<div id='oexp" + i + "' objnme='"+onme+"' instnme='"+inme+"' cntrcount='0' cntrchkcount='0'></div>"; CCEs += "<select style='display:none' id='cparms" + i + "' init='0'></select>"; } AL_CCOne.insertAdjacentHTML("beforeEnd",CCEs); AL_CCOne.style.overflow = "scroll"; OLUPindex = i; CCEs = ""; if ( i < ObjectLupRecCount ) { // not done TSid = setTimeout("processAATree()",50); // delay 50 ms. then continue process Tree return; } //Done AATreeBusy = false; if ( ALMode == "TEdit" ) { TSid = setTimeout("processTemplateEditSetup()",50); // go set the Objects and Counters selected } SetCursor("auto"); top.banner.processStopCommX(); } /* Display Header for Service and Object:Counter Trees */ function setOutTemplateHeader(Tstrg) { CCEs = "<table border='0' cellpadding='0' cellSpacing='0' width='550'>"; CCEs += "<tr><td width='15'> </td><td width='20' height='20' align='center'><img src='images/topopen.gif' width='19' height='20'></td><td colspan='2' width='515' class='optextb'>" + Tstrg + "</td></tr></table>"; } /* Process Click to Expand or Contract an Object */ function procObImgClick(OIm) { if ( PopUpMoment.style.display == "" || AATreeBusy ) { return; // ignore } goObjImgClick(OIm); } function goObjImgClick(OIm) { isx = OIm.id; if ( isx.charAt(0) != "o" || ALupMode != "") // if not a "oimaxx" return; isx = isx.substring(4,isx.length); // Strip off storage index cx = eval(isx); // Index for object var WrkArr = new Array(); // working array var OCWrkArr = new Array(); // working array CurObjIx = cx; CurObjName = AL_OCStoreArr[cx*ObjectRecLength]; //Object Expanded Oprfx = ( LastObjectName == CurObjName ) ? "L" : "T"; // Determine if last object var OObj = document.all["oima"+CurObjIx]; var EObj = document.all["oexp"+CurObjIx]; var CPObj = document.all["cparms"+CurObjIx]; // save Object that was "touched" by an Expand/Contract AL_OCStoreArr[ (CurObjIx * ObjectRecLength) + 3 ] = EObj; if ( OObj.expanded == "1" ) { // if currently expanded OObj.src = "images/" + Oprfx + "plus.gif"; OObj.expanded = "0"; // Set contracted EObj.style.display = "none"; } else { // otherwise Expand OObj.src = "images/" + Oprfx + "minus.gif"; OObj.expanded = "1"; // Set expanded if ( CPObj.init == "0" ) { // if need to looked up counters /* Lookup Counter Name and Description */ //CLOs = getObjIDArr(CurObjIx); CCEs = ""; // initialize output string and counter CurCntrIx = 0; var Wrk = new Array(); var OCA = AL_OCStoreArr[(ObjectRecLength*CurObjIx)+2].split(";"); //ObjID,CmpID Wrk = OCA[0].split(","); // get Object ID from pair of "ObjID,CompID" if ( RpmCC_AL.CounterLookupForObjCntrArray("ObjectID,"+Wrk[0]) ) { ALupMode = ""; top.Rstatus.Pstat("Unable to start the Counter LOOKUP request",true); } else { ALupMode = "CounterLookupEdit"; // set Mode of operation top.Rstatus.Pstat("One moment while Counter LOOKUP request completes"); } } else { EObj.style.display = ""; } } } /* Compute an ObjectID string array from the ObjId,CompID array in the Store */ //function getObjIDArr(COix) { // var Wrk0 = new Array(); // var OCA = AL_OCStoreArr[(ObjectRecLength*COix)+2].split(";"); //ObjID,CmpID /* Compute Array of Computer IDs */ //var scid = ""; // Object ID Array //var smax = --OCA.length; // adjust for null last entry //for ( var i=0; i<smax; i++ ) { // Wrk0 = OCA[i].split(","); // get Object ID from pair of "ObjID,CompID" // if ( i > 0) { // scid += ","; // array id separator // } // scid += Wrk0[0]; //} // Wrk0 = OCA[0].split(","); // var scid = Wrk0[0]; // return scid; //} function processCounterLookup(CntrNme,CntrDesc,OA) { var wrkarr = new Array(); var wrkarr1 = new Array(); CCEs += "<table border='0' cellpadding='0' cellSpacing='0' width='550'>"; linG = (LastObjectName == CurObjName) ? "White" : "I"; var CDs = CntrDesc.split("'"); // filter out single-quotes by convereting CntrDesc = CDs.join("`"); wrkarr = OA.split(";"); // get typical default scale value for this Counter wrkarr1 = wrkarr[0].split(","); var defscale = (wrkarr1.length >= 3) ? wrkarr1[2] : "0"; CCEs += "<tr title='"+ CntrDesc + "'>"; CCEs += "<td width='15'> </td>" CCEs += "<td width='20' height='20' align='center'><img src='images/" + linG + ".gif' width='19' height='20'></td>"; CCEs += "<td width='20' height='20' align='center'><img id='cima" + CurObjIx + "_" + CurCntrIx; CCEs += "' src='images/Unchecked.gif' checked='0' CntrNme='"+ CntrNme; CCEs += "' defscale='"+defscale+"' style='cursor:hand' onclick='procCntrImgClick(this)' width='9' height='9'></td>"; CCEs += "<td width='20' align='center'><img id='cimb" + CurObjIx + "_" + CurCntrIx + "' src='images/Counter.gif' style='cursor:hand' onclick='procCntrImgClick(this)' width='17' height='16' </td>"; CCEs += "<td width='474' class='optext'>" + CntrNme + "</td>"; CCEs += "</tr></table>"; ++CurCntrIx; // bump index } /* Read of Counters complete; Output formatted Counters */ function processCounterOpComplete() { if ( CurCntrIx == 0 ) { // if no counters ALupMode = ""; top.Rstatus.Pstat("No Counters for this Object",true); return; } //EObj = document.all["oexp"+CurObjIx]; EObj = AL_OCStoreArr[ (CurObjIx * ObjectRecLength) + 3 ]; EObj.insertAdjacentHTML("AfterBegin",CCEs); document.all["oima"+CurObjIx].scrollIntoView(true); EObj.style.display = ""; EObj.cntrcount = CurCntrIx; // save count of counters //refrCCOne = AL_CCOne.innerHTML; // refresh to elimninate blank line after expanded counters //AL_CCOne.innerHTML = refrCCOne; var CPObj = document.all["cparms"+CurObjIx]; if ( CPObj.init == "0" ) { // initilaize Counter parameter storage var Pmax = CounterParmsNumber * CurCntrIx; for ( var i=0; i<Pmax; i++ ) { addElementToSelect(CPObj,""); } CPObj.init = "1"; } ALupMode = ""; top.Rstatus.Pstat("Request Completed"); if ( TESmode ) { // if Template Edit Setup ONo = EObj; // save object TSid = setTimeout("processTemplateEditSetupCounter()",50); // get next Object expand } } /* Process Click to Check or Uncheck a Counter */ function procCntrImgClick(CmpIm) { isx = CmpIm.id; if ( isx.charAt(0) != "c") // if not a "cimaxx_yy" return; var cx = isx.substring(4,isx.length); // Strip off index lx = cx.lastIndexOf("_"); // derive suffix to the Object DIV ID var dx = cx.substring(0,lx); CObj = document.all["cima"+cx]; // Clicked Counter Entry //DObj = document.all["oexp"+dx]; // Associated Object DObj = AL_OCStoreArr[ (dx * ObjectRecLength) + 3 ]; if ( CObj.checked == "1" ) { // if currently Checked, Uncheck CObj.src = "images/Unchecked.gif"; CObj.checked = "0"; // Set Unchecked --DObj.cntrchkcount; // decrement count of counters checked } else { // otherwise Check CObj.src = "images/Checked.gif"; CObj.checked = "1"; // Set Checked ++DObj.cntrchkcount; // increment count of computers checked } } function procCheckedCounterParms() { var POb = null, COb = null; var OIname = ""; AR_ObjCSelect.innerHTML = ""; for ( var i=0, k=0; i<ObjectLupRecCount; i++) { //POb = document.all["oexp"+i]; POb = AL_OCStoreArr[ (i * ObjectRecLength) + 3 ]; if ( POb == null ) { continue; } if ( POb.cntrchkcount > 0 ) { for ( var j=0, n=0; j<POb.cntrcount; j++ ) { COb = document.all["cima"+i+"_"+j]; if ( COb.checked == "1" ) { OIname = POb.objnme+" "+POb.instnme; OIname = (OIname.length >= 28) ? OIname.substring(0,28)+"...." : OIname; addElementToSelect(AR_ObjCSelect,OIname+" - "+COb.CntrNme); AR_ObjCSelect.options[k++].value = i+"~"+j; // save Object and Counter Indices if ( ++n >= POb.cntrchkcount) { break; // stop if already found all the checked Counters for this Object } } } } } return k; // return number of checked counters }