function customize() { taskDiv.style.display="none"; tableDiv.style.display="none"; drillDownDiv.style.display="none"; scrollBar.style.display = "none"; customizeDiv.style.display=""; doChooseColumnButton.disabled = true; cancelChooseColumnButton.disabled = true; doSortButton.disabled = true; cancelSortButton.disabled = true; } function backToViewer() { if(customizeDiv.style.display!="none") { customizeDiv.style.display="none"; taskDiv.style.display=""; tableDiv.style.display=""; drillDownDiv.style.display=""; scrollBar.style.display = ""; return window.setTimeout("postBackToViewer()", 0); } } function postBackToViewer() { if ((connectionOn == "EEL" && eventLogType[1].checked) || (connectionOn == "NT" && eventLogType[0].checked)) { customizationNeedsRefresh = false; return ; } if(eventLogType[0].checked == true) { selectedFieldsForSortDiv.innerHTML = selectedSortEEL; AvailableFieldsForSortDiv.innerHTML = availableSortEEL; selectedFieldsForChooseColumnOrderDiv.innerHTML = selectedChooseEEL; AvailableFieldsForChooseColumnOrderDiv.innerHTML = availableChooseEEL; } else { selectedFieldsForSortDiv.innerHTML = selectedSortNT; AvailableFieldsForSortDiv.innerHTML = availableSortNT; selectedFieldsForChooseColumnOrderDiv.innerHTML = selectedChooseNT; AvailableFieldsForChooseColumnOrderDiv.innerHTML = availableChooseNT; } updateSortOrderType(); if (customizationNeedsRefresh == true) { if((connectionOn != "0") && (numEELRecords != 0)) executeQuery("true"); else { customizationNeedsRefresh = false; setArrPos(); } } } function clearSortStatesInHeader(nodeToUpdate) { // select all the property nodes. var nodePropertyList = nodeToUpdate.selectNodes ("/CIM/Actions/INSTANCE/PROPERTY") ; var tempCnt = nodePropertyList.length; for (pos=0; pos < tempCnt; pos++) { node = nodePropertyList.item (pos); node.setAttribute("Sort","none"); } } //----------------------------------------------------------------------------- // doSnglSortBy () // This function does single column sorting of the main table. // The name of the column is passed in as a parameter. // This function will modify the "order-by" clause in the xsl file and reappply the // modified one. //----------------------------------------------------------------------------- function doSingleClickSorting () { if (window.event.ctrlKey || window.event.shiftKey || window.event.altKey) return; var id = window.event.srcElement.id; if(id == "") id = window.event.srcElement.parentElement.id; var sortPrefix = ""; // find the sorting order of new sorting sortNode = getDataNode().selectSingleNode ("CIM/Actions/INSTANCE/PROPERTY[nodeColPosition='" + (id - 1) + "']") ; if (sortNode.getAttribute("Sort") == "ascending") sortPrefix = "-"; var name = sortNode.getAttribute("NAME"); clearSortStatesInHeader(getDataNode()); if (sortPrefix == "-") sortNode.setAttribute("Sort","descending"); else sortNode.setAttribute("Sort","ascending"); sortOrderValue = sortPrefix + name; updateSortingSelectionInCustamization(name, sortPrefix); performSortingOnData(sortOrderValue); fHeaderNeedsRefresh = true; if ((connectionOn == "0") || (numEELRecords == 0)) { setArrPos(); } else executeQuery("true"); } //----------------------------------------------------------------------------- // doChooseColumns () // // This function lets user choose the columns to be displayed. // BUGBUG : need to rename this functions as it is doing // more than choosing columns //----------------------------------------------------------------------------- function doChooseColumns () { highlightRow () ; } //----------------------------------------------------------------------------- // selectRow () // // Click a table element to select the row //----------------------------------------------------------------------------- function selectRow (e) { if(connectionOn == 0)return; event.cancelBubble = true ; // if the row is not a data row then return if (TABLE1.rows(e.parentNode.rowIndex).style.dataRow == "0") return ; // if there is a currently selected row, we need to clear it (or return if it is same) if (selectedRow != -1) { if (selectedRow == e.parentNode.rowIndex) { // we may have gone to a new page so don't return //return ; } else { // now clear the highlight in old row. for (j=0; j < TABLE1.rows(selectedRow).cells.length; j++) { TABLE1.rows(selectedRow).cells(j).style.background="rgb(255,255,255)" ; } } } selectedRow = e.parentNode.rowIndex ; if(numEELRecords - scrollBar.value < PAGE_SIZE) selectedRow = Math.min(selectedRow,numEELRecords - scrollBar.value); selectedRecord = scrollBar.value + selectedRow; selectedRecordIndex = selectedRow; highlightRow () ; } function ignoreEvent () { window.event.cancelBubble = true ; window.event.returnValue = false; return false ; } //----------------------------------------------------------------------------- // doDrillDown () // // Dbl Click a table element to do drill down //----------------------------------------------------------------------------- function doDrillDown () { // now get the value of the eventId, I am assuming that this gives us unique element. // BUGBUG! Localization?? // if seleted row is beyond the table, clear out drill down if (selectedRow == -1) { // pass it to the drill down pane. showDrillDown (null) ; return ; } kalpaxml.wmiSetCursor(1); if (highlightRowstart == false) { drillDownKey = "" ; var testRowIndex = selectedRow - 1; if (actionId == "EEL") { drillDownNode = getDrillDownNode(TABLEBODY1.rows(testRowIndex).cells(RECORDNUMBER_INDEX).innerText,""); } else { drillDownNode = getDrillDownNode(TABLEBODY1.rows(testRowIndex).cells(RECORDNUMBER_INDEX).innerText,TABLEBODY1.rows(testRowIndex).cells(LOGFILE_INDEX).innerText); } if( drillDownNode == null ){ //BUGBUG : set appropriate error ? showDrillDown (null) ; kalpaxml.wmiRestoreCursor(); return ; } // now query the node which we drill down on. // get the number of PROPERTY.OBJECT nodes this has nodes = drillDownNode.selectNodes (".//PROPERTY.OBJECT") ; num = nodes.length ; // nothing to do if there isn't any embedded objects. if (num == 0) { showDrillDown (null) ; kalpaxml.wmiRestoreCursor(); return ; } maxSet = false ; for (i=0; i= TABLE1.rows.length) { doDrillDown () ; return ; } //var temp = TABLE1.rows(selectedRow).cells.length; for (j=0; j < numColumns ; j++) { TABLE1.rows(selectedRow).cells(j).style.background="rgb(198,231,247)" ; } // now do drill down if (highlightRowstart == false) doDrillDown () ; } //----------------------------------------------------------------------------- // makeConnection() // // connect to the machine and executes the default query //----------------------------------------------------------------------------- function makeConnection(classView) { kalpaxml.wmiSetCursor(1); // classView is passed in as a parameter scrollBar.value = 0; tableIsEmpty = false; //WhiteSpaceDiv.style.display = "none"; errorMessageDiv.innerText = ""; if (eventLogType[0].checked) { actionId = "EEL"; nameSpace = "root\\EMM"; }else { actionId = "NT"; nameSpace = "root\\cimv2"; } var query = ""; if(MachineName.value == "") MachineName.value = "localhost"; machineName = getMachineName(); if (viewEELPrelude(actionId, classView, machineName, query, nameSpace,sortFieldValue, getSelectedFieldsForQuery()) == false) { fMadeConnection = false; handleErrorConditionInConnection(actionId); kalpaxml.wmiRestoreCursor(); return false; } // for displaying status var eventLogTypeName; //why is the below not localised if (eventLogType[0].checked == true) eventLogTypeName = " for Enterprise Event Log"; else eventLogTypeName = " for NT Event Log"; taskDiv.document.all.NoConnectionSetup.innerText=L_NoConnectionSet_TEXT + " " + L_lt_TEXT + "\\\\" + machineName + "\\" + nameSpace+ L_gt_TEXT + eventLogTypeName; getCurrentRecords(); searchStatus.innerText = L_SearchStatusMessage_TEXT + " " + L_LastUpdatedAtMessage_TEXT + " " + getCurrentTime() + "."; searchStatus.title=""; mostRecentSearchStatus = searchStatus.innerText; if (connectionOn != actionId) { clearQuery(); populateSavedQueriesName(actionId); } if(actionId == "EEL") { EventTypeSelectionDiv.style.visibility = "hidden"; eventTypeName.style.visibility = "hidden"; connectionOn = actionId; //bugbug - do we NEED to call this selectEEL(); } else { EventTypeSelectionDiv.style.visibility = "visible"; eventTypeName.style.visibility = "visible"; connectionOn = actionId; selectNT(); } fMadeConnection = true; // TABLEBODY1.rows(selectedRow - 1).cells(0).focus(); refreshButton.disabled = true; previousQuery = ""; kalpaxml.wmiRestoreCursor(); } //----------------------------------------------------------------------------- // executeQuery() // //----------------------------------------------------------------------------- function executeQuery(refreshingSearch) { if(executeQueryInProgress == true) return; if ((connectionOn == "0") || (connectionOn == "EEL" && eventLogType[1].checked) || (connectionOn == "NT" && eventLogType[0].checked)) { return false; } executeQueryInProgress = true; kalpaxml.wmiSetCursor(1); searchStatus.innerText=L_SearchInProgressMessage_TEXT; if(refreshingSearch != "true") addAndToSearchCriteria(); return window.setTimeout("postExecuteQuery('" + refreshingSearch +"')",0); } function postExecuteQuery(refreshingSearch) { tableIsEmpty = false; //WhiteSpaceDiv.style.display = "none"; errorMessageDiv.innerText = ""; scrollBar.value = 0; machineName = getMachineName(); if (connectionOn == "EEL"){ nameSpace = "root\\EMM"; classView = "All"; } else { nameSpace = "root\\cimv2"; classView = EventTypeSelection.options(EventTypeSelection.selectedIndex).id; } var query = ""; if(refreshingSearch == "true") { query = previousQuery; classView = "All"; } else { query = getSearchCriteria(); queryToDisplay = getDisplayableSearchCriteria(); if (connectionOn == "NT"){ if (queryToDisplay != "") queryToDisplay = " and \n" + queryToDisplay; queryToDisplay = "(LogType equals '" + EventTypeSelection.options(EventTypeSelection.selectedIndex).text + "') " + queryToDisplay; } } if (viewEELPrelude(connectionOn, classView, machineName, query, nameSpace, sortFieldValue, getSelectedFieldsForQuery()) == false) { numEELRecords=0; } if(numEELRecords == 0 ) zeroSearchRecords(); else searchStatus.innerHTML=L_CurrentSearchLastUpdated_TEXT + " " + getCurrentTime() + " " ; searchStatus.title = queryToDisplay; getCurrentRecords(); previousQuery = query; if((connectionOn == "NT") && (classView != "All")) previousQuery = "(Logfile = '" + classView + "') and" + previousQuery; if(previousQuery != "") refreshButton.disabled = false; else refreshButton.disabled = true; kalpaxml.wmiRestoreCursor(); executeQueryInProgress = false; } //----------------------------------------------------------------------------- // refreshSearch() // for reruning the latest search //----------------------------------------------------------------------------- function refreshSearch() { return executeQuery("true"); } //----------------------------------------------------------------------------- // showHideConnection() // for making the connection display a collapsable one //----------------------------------------------------------------------------- function showHideConnection() { if (taskDiv.document.all.CONNECTIONTBODY.style.display == "") { taskDiv.document.all.ConnectionImage.src = "images/arrowrgt.gif" taskDiv.document.all.CONNECTIONTBODY.style.display="none"; taskDiv.document.all.ConnectionImage.title = L_ConnectionArrowRightImageTitle_TEXT; } else { taskDiv.document.all.ConnectionImage.src = "images/downgif.gif" taskDiv.document.all.CONNECTIONTBODY.style.display=""; taskDiv.document.all.ConnectionImage.title = L_ConnectionArrowDownImageTitle_TEXT; } window.onresize () ; } //----------------------------------------------------------------------------- // showHideSearch() // for making the search display a collapsable one //----------------------------------------------------------------------------- function showHideSearch() { if (connectionOn == "0") { searchStatus.innerText=L_NoConnectionIsSetMessage_TEXT; return false; } if ( (taskDiv.document.all.SEARCHDIV.style.display == "")){ taskDiv.document.all.SearchImage.src = "images/arrowrgt.gif" taskDiv.document.all.SEARCHDIV.style.display="none"; taskDiv.document.all.SearchImage.title = L_SearchArrowRightImageTitle_TEXT; } else { taskDiv.document.all.SearchImage.src = "images/downgif.gif" taskDiv.document.all.SEARCHDIV.style.display=""; taskDiv.document.all.SearchImage.title = L_SearchArrowDownImageTitle_TEXT; highlightSearchRow(0); } window.onresize () ; } //----------------------------------------------------------------------------- // showHideTableView() // for making the table view a collapsable one //----------------------------------------------------------------------------- function showHideTableView() { if ( (customizeDiv.document.all.tableViewBodyDiv.style.display == "")){ taskDiv.document.all.tableViewCollapseImg.src = "images/arrowrgt.gif" taskDiv.document.all.tableViewBodyDiv.style.display="none"; taskDiv.document.all.tableViewCollapseImg.title = L_TableViewImageRightImageTitle_TEXT; } else { taskDiv.document.all.tableViewCollapseImg.src = "images/downgif.gif" taskDiv.document.all.tableViewBodyDiv.style.display=""; taskDiv.document.all.tableViewCollapseImg.title = L_TableViewImageDownImageTitle_TEXT; } //window.onresize () ; } function enableSearch() { if (mostRecentSearchStatus != "empty") { searchStatus.innerText = mostRecentSearchStatus; mostRecentSearchStatus = "empty"; } searchEnabled = "true"; EventTypeSelection.disabled = false; FieldInput.disabled=false; OperatorType.disabled = false; valueInput.disabled = false; addOrButton.disabled = false; addAndButton.disabled = false; executeButton.disabled = false; removeButton.disabled = false; clearButton.disabled = false; savedSearches.disabled = false; saveButton.disabled = false; saveAs.disabled = false; if(previousQuery != "") refreshButton.disabled = false; EventTypeSelection.title = L_EventTypeSelectionTitle_TEXT; FieldInput.title=L_FieldInputTitle_TEXT; OperatorType.title = L_OperatorTypeTitle_TEXT; valueInput.title = L_ValueInputTitle_TEXT; valueInput.title = L_ValueInputTitle_TEXT; addOrButton.title = L_AddORToSearchButtonTitle_TEXT; addAndButton.title = L_AddANDToSearchButtonTitle_TEXT; executeButton.title = L_ExecuteButtonTitle_TEXT; removeButton.title = L_RemoveButtonTitle_TEXT; clearButton.title = L_ClearButtonTitle_TEXT; return; } //----------------------------------------------------------------------------- // addOrToSearchCriteria() // // For adding to currently entered search criteria // The new search condition is 'or'ed with most recently entered search condition //----------------------------------------------------------------------------- function addOrToSearchCriteria() { if (getValueInputValue() == "") return false; var inputFieldValue = getValueInputValue(); inputFieldValue = inputFieldValue + " OR "; while((orPositionInValue = inputFieldValue.indexOf(" ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + inputFieldValue.substr(orPositionInValue+1,inputFieldValue.length); } while((orPositionInValue = inputFieldValue.indexOf(" or ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + " OR " + inputFieldValue.substr(orPositionInValue+4,inputFieldValue.length); } while((orPositionInValue = inputFieldValue.indexOf(" OR OR ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + inputFieldValue.substr(orPositionInValue+3,inputFieldValue.length); } valueInput.focus(); setValueInputValue(inputFieldValue); FieldInput.disabled=true; OperatorType.disabled = true; while((orPositionInValue = inputFieldValue.indexOf(" OR ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + " \n" + inputFieldValue.substr(orPositionInValue+4,inputFieldValue.length); } SearchTable.rows(curSearchRowSelected).cells(0).innerText = FieldInput.options(FieldInput.selectedIndex).text; SearchTable.rows(curSearchRowSelected).cells(1).innerText = OperatorType.options(OperatorType.selectedIndex).text; SearchTable.rows(curSearchRowSelected).cells(2).innerText = insertORsInSearchValue(inputFieldValue) + " OR "; } //----------------------------------------------------------------------------- // addAndToSearchCriteria() // For adding to currently entered search criteria //----------------------------------------------------------------------------- function addAndToSearchCriteria() { if ((getValueInputValue() == "") || (getValueInputValue() == L_DDMMYY_TEXT)) return false; var inputFieldValue = getValueInputValue(); while((orPositionInValue = inputFieldValue.indexOf(" ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + inputFieldValue.substr(orPositionInValue+1,inputFieldValue.length); } while((orPositionInValue = inputFieldValue.indexOf(" or ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + " OR " + inputFieldValue.substr(orPositionInValue+4,inputFieldValue.length); } while((orPositionInValue = inputFieldValue.indexOf(" OR OR ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + inputFieldValue.substr(orPositionInValue+3,inputFieldValue.length); } setValueInputValue(inputFieldValue); while((orPositionInValue = inputFieldValue.indexOf(" OR ")) != -1) { inputFieldValue = inputFieldValue.substr(0,orPositionInValue) + " \n" + inputFieldValue.substr(orPositionInValue+4,inputFieldValue.length); } if (SearchTable.rows.length <= (currentSearchTableRow+1)) { newRow = SearchTable.insertRow(); newRow.attachEvent('onclick', searchRowSelected); for ( i = 0; i < 3; i++) { var newCell = newRow.insertCell(); newCell.className = "searchTableDataAlignLeft"; newCell.innerHTML = "
"; } } SearchTable.rows(curSearchRowSelected).cells(0).innerText = FieldInput.options(FieldInput.selectedIndex).text; SearchTable.rows(curSearchRowSelected).cells(1).innerText = OperatorType.options(OperatorType.selectedIndex).text; SearchTable.rows(curSearchRowSelected).cells(2).innerText = insertORsInSearchValue(inputFieldValue); if (currentSearchTableRow >= searchFieldsCount) increaseSearchFieldSize(); searchFieldNames[curSearchRowSelected] = FieldInput.selectedIndex; searchFieldOperators[curSearchRowSelected] = OperatorType.selectedIndex; if ((getValueInputValue().indexOf(" OR ") != -1) && (getValueInputValue().substr(getValueInputValue().length-4,getValueInputValue().length).indexOf(" OR ") != -1)) searchFieldValues[curSearchRowSelected] = getValueInputValue().substr(0,getValueInputValue().length-4); else searchFieldValues[curSearchRowSelected] = getValueInputValue(); if (curSearchRowSelected == currentSearchTableRow) currentSearchTableRow++; highlightSearchRow(currentSearchTableRow); FieldInput.disabled=false; OperatorType.disabled = false; setValueInputValue(""); } //----------------------------------------------------------------------------- //increaseSearchFieldSize() // // For scaling up search conditions table (maintained internally) when the // number of search conditions exceeded the expected //----------------------------------------------------------------------------- function increaseSearchFieldSize() { // 3 is added in below code to handle the case when numEELColumns is 0 var newSize = searchFieldsCount + numEELColumns + 3; var tempValues = new Array (newSize); // searchFieldNames for( i = 0; i < searchFieldsCount; i++) { tempValues[i] = searchFieldNames[i]; } searchFieldNames = new Array (newSize); for( i = 0; i < searchFieldsCount; i++) { searchFieldNames[i] = tempValues[i]; } // searchFieldOperators for( i = 0; i < searchFieldsCount; i++) { tempValues[i] = searchFieldOperators[i]; } searchFieldOperators = new Array (newSize); for( i = 0; i < searchFieldsCount; i++) { searchFieldOperators[i] = tempValues[i]; } // searchFieldValues for( i = 0; i < searchFieldsCount; i++) { tempValues[i] = searchFieldValues[i]; } searchFieldValues = new Array (newSize); for( i = 0; i < searchFieldsCount; i++) { searchFieldValues[i] = tempValues[i]; } searchFieldsCount = newSize; } //----------------------------------------------------------------------------- //insertORsInSearchValue(value) // // for converting the input string into displayable format //----------------------------------------------------------------------------- function insertORsInSearchValue(value) { var s1 = ""; cloneValue = value +" \n"; valueSeperatorIndex = cloneValue.indexOf("\n"); while( valueSeperatorIndex != -1) { if (cloneValue.substr(0,valueSeperatorIndex-1) != "") { if ( s1 != "") s1 = s1 + " OR\n" + cloneValue.substr(0,valueSeperatorIndex-1); else s1 = cloneValue.substr(0,valueSeperatorIndex-1); } cloneValue = cloneValue.substr(valueSeperatorIndex+1, cloneValue.length); valueSeperatorIndex = cloneValue.indexOf("\n"); } return s1; } //----------------------------------------------------------------------------- // getSearchCriteria() // // for forming the search query expression from the search conditions entered by user //----------------------------------------------------------------------------- function getSearchCriteria() { var inputValue = ""; var subvalue = ""; var s1 = ""; for ( i = 0; i < currentSearchTableRow; i++) { var ithFieldHasValueMap = false; if ((connectionOn =="EEL") && getQualifierValueArray(connectionOn,FieldInput.options(searchFieldNames[i]).value , "Values") != null ) { ithFieldHasValueMap = true; } inputValue = searchFieldValues[i] + "\n"; while((orPositionInValue = inputValue.indexOf(" OR ")) != -1) { inputValue = inputValue.substr(0,orPositionInValue) + "\n" + inputValue.substr(orPositionInValue+4,inputValue.length); } s1 = s1 + "("; valueSeperatorIndex = inputValue.indexOf("\n"); s3 = ""; while( valueSeperatorIndex != -1) { subvalue = inputValue.substr(0,valueSeperatorIndex); inputValue = inputValue.substr(valueSeperatorIndex+1, inputValue.length); if(ithFieldHasValueMap == true) subvalue = convertValueToValueMap(FieldInput.options(searchFieldNames[i]).value, subvalue); if ( (subvalue != "") && (subvalue != "\n") && (subvalue != " ")) { switch (SearchTable.rows(i).cells(1).innerText) { case L_Contains_TEXT: s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " LIKE '%" + subvalue + "%' ) "; break ; case L_NotContains_TEXT: s2 = "not ( (" + FieldInput.options(searchFieldNames[i]).value + " LIKE '%" + subvalue + "%' )) "; break ; case L_StartsWith_TEXT: s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " LIKE '" + subvalue + "%' ) "; break ; case L_Equals_TEXT : if(subvalue.toLowerCase() != 'null') s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " " +" = '" + subvalue + "') "; else s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " " +" = " + subvalue + ") "; break ; case L_NotEquals_TEXT: if(subvalue.toLowerCase() != 'null') s2 = "not (" + "(" + FieldInput.options(searchFieldNames[i]).value + " " +" = '" + subvalue + "' ) )"; else s2 = "not (" + "(" + FieldInput.options(searchFieldNames[i]).value + " " +" = " + subvalue + " ) )"; break ; case L_GreaterThan_TEXT: s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " " +" > " + subvalue + " ) "; break ; case L_LesserThan_TEXT: s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " " +" < " + subvalue + " ) "; break ; case L_DatedOn_TEXT: s2 = "((" + FieldInput.options(searchFieldNames[i]).value + " " +" > '" + subvalue + "' ) " + " and " + "(" + FieldInput.options(searchFieldNames[i]).value + " " +" < '" + subvalue + " " + L_LastSecInDay_TEXT+ "' ) )"; break ; case L_DatedAfter_TEXT: s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " " +" > '" + subvalue + "' ) "; break ; case L_DatedBefore_TEXT: s2 = "(" + FieldInput.options(searchFieldNames[i]).value + " " +" < '" + subvalue + "' ) "; break ; } if ( s3 == "") s3 = s2; else s3 = s3 + " or " + s2; } valueSeperatorIndex = inputValue.indexOf("\n"); } s1 = s1 + s3 + ")"; if ( i != (currentSearchTableRow-1)) s1 = s1+ " and "; } return s1; } //----------------------------------------------------------------------------- // getDisplayableSearchCriteria() // // for forming the search query expression from the search conditions entered by user //----------------------------------------------------------------------------- function getDisplayableSearchCriteria() { var inputValue = ""; var subvalue = ""; var s1 = ""; for ( i = 0; i < currentSearchTableRow; i++) { inputValue = searchFieldValues[i] + "\n"; while((orPositionInValue = inputValue.indexOf(" OR ")) != -1) { inputValue = inputValue.substr(0,orPositionInValue) + "\n" + inputValue.substr(orPositionInValue+4,inputValue.length); } s1 = s1 + "("; valueSeperatorIndex = inputValue.indexOf("\n"); s3 = ""; while( valueSeperatorIndex != -1) { subvalue = inputValue.substr(0,valueSeperatorIndex); inputValue = inputValue.substr(valueSeperatorIndex+1, inputValue.length); if ( (subvalue != "") && (subvalue != "\n") && (subvalue != " ")) { if (FieldInput.options(searchFieldNames[i]).className != "integer") s2 = "(" + FieldInput.options(searchFieldNames[i]).text + " " + SearchTable.rows(i).cells(1).innerText + " '" + subvalue + "') "; else s2 = "(" + FieldInput.options(searchFieldNames[i]).text + " " + SearchTable.rows(i).cells(1).innerText + " " + subvalue + ") "; } if ( s3 != "") s3 = s3 + " or "; s3 = s3 + s2; valueSeperatorIndex = inputValue.indexOf("\n"); } s1 = s1 + s3 + ")"; if ( i != (currentSearchTableRow-1)) s1 = s1+ " and \n"; } return s1; } //----------------------------------------------------------------------------- // displayOperatorType() // To display operator corresponding to a field //----------------------------------------------------------------------------- function displayOperatorType() { // At first, decide whether the field has any value map // if so, display drop down menu var previousValueInputIsAValueMap = currentValueInputIsAValueMap; if (FieldInput.options.length == 0) return; if (getQualifierValueArray(connectionOn,FieldInput.options(FieldInput.selectedIndex).value, "Values") != null) { ValueInputDiv.innerHTML = prepareDropDownMenuForValueMap(); valueInput.selectedIndex = -1; currentValueInputIsAValueMap = true; } else { if(previousValueInputIsAValueMap == true) ValueInputDiv.innerHTML = nonValueMapValueInputStr; currentValueInputIsAValueMap = false; } var fieldType = FieldInput.options(FieldInput.selectedIndex).className; if ((previousFielDInputType == fieldType) && (previousValueInputIsAValueMap == currentValueInputIsAValueMap)) return false; if (previousFielDInputType == "datetime") dateValueFocussed(); valueInput.title = ""; for (i = OperatorType.options.length; i != -1; i--) { OperatorType.options.remove(OperatorType.options(i)); } if (currentValueInputIsAValueMap == true){ OperatorType.options.add(createOption("Equals",L_Equals_TEXT)); OperatorType.options.add(createOption("NotEquals",L_NotEquals_TEXT)); } else if (fieldType == "string") { OperatorType.options.add(createOption("Equals",L_Equals_TEXT)); OperatorType.options.add(createOption("NotEquals",L_NotEquals_TEXT)); OperatorType.options.add(createOption("Contains",L_Contains_TEXT)); OperatorType.options.add(createOption("NotContains",L_NotContains_TEXT)); OperatorType.options.add(createOption("StartsWith",L_StartsWith_TEXT)); } else if (fieldType == "datetime") { OperatorType.options.add(createOption("DatedAfter",L_DatedAfter_TEXT)); OperatorType.options.add(createOption("DatedBefore",L_DatedBefore_TEXT)); OperatorType.options.add(createOption("DatedOn",L_DatedOn_TEXT)); valueInput.title = L_ValueInputTitle_TEXT; setValueInputValue(L_DDMMYY_TEXT); valueInput.style.color='gray'; valueInput.attachEvent('onfocus', dateValueFocussed); } else if (fieldType == "integer"){ OperatorType.options.add(createOption("Equals",L_Equals_TEXT)); OperatorType.options.add(createOption("NotEquals",L_NotEquals_TEXT)); OperatorType.options.add(createOption("GreaterThan",L_GreaterThan_TEXT)); OperatorType.options.add(createOption("LessThan",L_LesserThan_TEXT)); } previousFielDInputType = fieldType; return true; } function createOption(value, text) { var oOption = document.createElement("OPTION"); oOption.value=value; oOption.text=text; return oOption; } function dateValueFocussed() { valueInput.style.color='black'; valueInput.detachEvent('onfocus', dateValueFocussed); setValueInputValue(""); } //----------------------------------------------------------------------------- // clearQuery() // // for clearing a latest query entered by user //----------------------------------------------------------------------------- function clearQuery() { firstOrInRow = "1"; currentSearchTableRow = 0; i = 4; tableLength = SearchTable.rows.length; for (i = tableLength-1; i > 3; i--) { SearchTable.deleteRow(i); } for ( i = 0 ; i < 4; i++) { for ( j = 0; j < 3; j++) SearchTable.rows(i).cells(j).innerHTML = "
"; } if(FieldInput.options.length != 0) FieldInput.options(0).selected = "true"; if(OperatorType.options.length) OperatorType.options(0).selected = "true"; setValueInputValue(""); clearSearchCriteriaRow(curSearchRowSelected); curSearchRowSelected = "-1"; highlightSearchRow(0); FieldInput.disabled=false; displayOperatorType(); OperatorType.disabled = false; } //----------------------------------------------------------------------------- // searchRowSelected() // // for selecting a row in the search table displayed to user //----------------------------------------------------------------------------- function searchRowSelected() { rowNumber = event.srcElement.parentElement.rowIndex; if (rowNumber == curSearchRowSelected) return false; if (rowNumber > currentSearchTableRow) return false; if ( curSearchRowSelected < currentSearchTableRow) addAndToSearchCriteria(); else if ( curSearchRowSelected == currentSearchTableRow) removeSearchCondition(); highlightSearchRow(rowNumber); FieldInput.options(searchFieldNames[rowNumber]).selected = "true"; displayOperatorType(); OperatorType.options(searchFieldOperators[rowNumber]).selected = "true"; setValueInputValue( searchFieldValues[rowNumber]); if (rowNumber == currentSearchTableRow) { setValueInputValue(""); } } function highlightSearchRow(rowNumber) { if (rowNumber > currentSearchTableRow) return false; // clear current row clearSearchCriteriaRow(curSearchRowSelected); curSearchRowSelected = rowNumber; // select new row for (j=0; j < SearchTable.rows(rowNumber).cells.length; j++) { SearchTable.rows(rowNumber).cells(j).style.background="rgb(198,231,247)" ; } } //----------------------------------------------------------------------------- // clearSearchCriteriaRow(rowNumber) // // //----------------------------------------------------------------------------- function clearSearchCriteriaRow(rowNumber) { if ((rowNumber != "-1") && (rowNumber < SearchTable.rows.length)) for (j=0; j < SearchTable.rows(rowNumber).cells.length; j++) { SearchTable.rows(rowNumber).cells(j).style.background="rgb(255,255,255)" ; } } //----------------------------------------------------------------------------- // removeSearchCondition() // for removing the currently selected search condition from search conditions table //----------------------------------------------------------------------------- function removeSearchCondition() { if ((currentSearchTableRow < curSearchRowSelected) || (curSearchRowSelected == "-1")) { return false; } FieldInput.disabled=false; OperatorType.disabled = false; valueInput.disabled = false; if (currentSearchTableRow == curSearchRowSelected) { for ( j = 0; j < 3; j++) SearchTable.rows(currentSearchTableRow).cells(j).innerHTML = "
"; setValueInputValue(""); return; } for ( i = curSearchRowSelected ; i < (currentSearchTableRow-1); i++) { searchFieldNames[i] = searchFieldNames[i+1]; searchFieldOperators[i] = searchFieldOperators[i+1]; searchFieldValues[i] = searchFieldValues[i+1]; } for ( i = curSearchRowSelected ; i < (currentSearchTableRow); i++) { for ( j = 0; j < 3; j++) SearchTable.rows(i).cells(j).innerHTML = SearchTable.rows(i+1).cells(j).innerHTML; } if (SearchTable.rows.length > 4) SearchTable.deleteRow(SearchTable.rows.length-1); else { for ( j = 0; j < 3; j++) SearchTable.rows(currentSearchTableRow-1).cells(j).innerHTML = "
"; } clearSearchCriteriaRow(curSearchRowSelected); if (curSearchRowSelected > 0) { curSearchRowSelected = curSearchRowSelected-1; } currentSearchTableRow--; if ( (currentSearchTableRow > 0) && (curSearchRowSelected >= 0) ) { FieldInput.options(searchFieldNames[curSearchRowSelected]).selected = "true"; displayOperatorType(); OperatorType.options(searchFieldOperators[curSearchRowSelected]).selected = "true"; setValueInputValue( searchFieldValues[curSearchRowSelected]); } else { FieldInput.options(0).selected = "true"; displayOperatorType(); setValueInputValue(""); } highlightSearchRow(curSearchRowSelected); } function getCurrentTime() { var d, currentDate = ""; d = new Date(); currentDate += (d.getMonth() + 1) + "/"; return (d.getHours() + ":"+ d.getMinutes() + ":" + d.getSeconds() + " " + currentDate + d.getDate() + "/" + d.getYear()); } function hideDrillDown() { drillDownDiv.style.height = 0; highlightRowstart=true; window.onresize () ; // give focus back to table body. However, this function may get called // when we have no data (to hide the drilldown that may have been on). So we // check to make sure we have a valid selectedRow. if ((selectedRow >= 0) && (selectedRow < TABLEBODY1.rows.length)) { TABLEBODY1.focus(); } } function startDrillDown(e) { highlightRowstart=false; selectRow(e); } function showDrillDown (nodeToShow) { if (nodeToShow == null) { drillDownDiv.innerHTML = "" ; return ; } drillDownSelectIndexStack = new Stack(); // first remove the old root if there is one. node = eelNode.XMLDocument.selectSingleNode("/INSTANCE"); if (node != null) { eelNode.XMLDocument.removeChild (node) ; } // now append the passed in node eelNode.XMLDocument.appendChild (nodeToShow) ; // find and stash away the node which is the @cur one navigateNode = eelNode.XMLDocument.selectSingleNode("//@cur"); initNode = eelNode.XMLDocument.selectSingleNode("//@init"); // show the result. if( actionId == "EEL" ){ result = eelNode.transformNode (eelDrillDownView.documentElement) ; } else { result = eelNode.transformNode (ntDrillDownView.documentElement) ; } // BUGBUG! hard coded heights. Need to figure out a better way to do this. drillDownDiv.style.height = drillDownViewHeight; drillDownDiv.innerHTML = result ; //window.onresize () ; } function Stack(){this.initStack();} function Stack_initStack(){this.A = new Array();} function Stack_IsEmpty(){return this.A.length == 0;} function Stack_length(){return this.A.length;} function Stack_Top(){return this.A[this.A.length - 1];} function Stack_Pop(){ var N=this.A.length-1; var X=this.A[N]; this.A.length=N; return X; } // classical push, pushes one item only function Stack_Push(A){var N=this.A.length; this.A.length=N+1; this.A[N]=A;} // more powerful push, so S.push(A,B,C) pushes A, then B, then C function stk_push(){ for(var i=0;i=0;i--) if(f(X,this.A[i])) return i; return -1; } // Now we install all of them as properties of the prototype: Stack.prototype.initStack = Stack_initStack; Stack.prototype.isEmpty = Stack_IsEmpty; Stack.prototype.top = Stack_Top; Stack.prototype.pop = Stack_Pop; Stack.prototype.length = Stack_length; // Stack.prototype.push = Stack_Push; // commented out in favor of the more powerful one Stack.prototype.push = stk_push; Stack.prototype.toString = Stack_toString; Stack.prototype.toArray = Stack_toArray; Stack.prototype.indexOf = Stack_indexOf; /* function navigateUp () { val = new Number (navigateNode.value) ; val += 1 ; navigateNode.value = val.toString () ; // show the result. result = eelNode.transformNode (drillDownView.documentElement) ; drillDownDiv.innerHTML = result ; } */ function navigatePrevious () { val = new Number (drillDownSelectIndexStack.pop()) ; drillDownIndexBeforeChange = val; if( drillDownSelectIndexStack.isEmpty() ) { initNode.value = "0" ; } navigateNode.value = val.toString(); // show the result. if( actionId == "EEL" ){ result = eelNode.transformNode (eelDrillDownView.documentElement) ; } else { result = eelNode.transformNode (ntDrillDownView.documentElement) ; } drillDownDiv.innerHTML = result ; } function navigateDirect () { drillDownSelectIndexStack.push(drillDownIndexBeforeChange); val = new Number (drillDownSelect.selectedIndex) ; drillDownIndexBeforeChange = val; initNode.value = "1"; navigateNode.value = val.toString(); // show the result. if( actionId == "EEL" ){ result = eelNode.transformNode (eelDrillDownView.documentElement) ; } else { result = eelNode.transformNode (ntDrillDownView.documentElement) ; } drillDownDiv.innerHTML = result ; } function navigateDown () { drillDownSelectIndexStack.push(drillDownIndexBeforeChange); initNode.value = "1"; val = new Number (navigateNode.value) ; val -= 1 ; drillDownIndexBeforeChange = val; navigateNode.value = val.toString () ; // show the result. if( actionId == "EEL" ){ result = eelNode.transformNode (eelDrillDownView.documentElement) ; } else { result = eelNode.transformNode (ntDrillDownView.documentElement) ; } drillDownDiv.innerHTML = result ; } function highlightButton(btn) { btn.style.border='1 outset rgb(214,222,222)'; } function removeHighlightButton(btn) { btn.style.border='0'; } function addSortField() { var firstSelectedPosition = AvailableFieldsForSort.selectedIndex; if (firstSelectedPosition == -1) return; i = 0; while ( i < AvailableFieldsForSort.options.length) { if ( AvailableFieldsForSort.options(i).selected == true) { selectedIndex = i; } else { i++; selectedIndex = -1; continue; } var newOption = customizeDiv.document.createElement("OPTION"); newOption.id= AvailableFieldsForSort.options(selectedIndex).id; newOption.text=AvailableFieldsForSort.options(selectedIndex).text; newOption.selected = "true"; newOption.value = "ascending"; if(selectedFieldsForSort.selectedIndex != -1) selectedFieldsForSort.options(selectedFieldsForSort.selectedIndex).selected = false; selectedFieldsForSort.add(newOption); updateSortOrderType(); AvailableFieldsForSort.remove(selectedIndex); } doSortButton.disabled = false; cancelSortButton.disabled = false; resetSortButton.disabled = false; if (firstSelectedPosition >= AvailableFieldsForSort.length) { if (firstSelectedPosition == 0) return; else firstSelectedPosition = AvailableFieldsForSort.length - 1; } AvailableFieldsForSort.options(firstSelectedPosition).selected = true; } function removeSortField() { var firstSelectedPosition = selectedFieldsForSort.selectedIndex; if (firstSelectedPosition === -1) { return; } i = 0; while ( i < selectedFieldsForSort.options.length) { if ( selectedFieldsForSort.options(i).selected == true) { selectedIndex = i; } else { i++; selectedIndex = -1; continue; } var newOption = customizeDiv.document.createElement("OPTION"); newOption.id= selectedFieldsForSort.options(selectedIndex).id; newOption.text=selectedFieldsForSort.options(selectedIndex).text; newOption.selected = "true"; var positionToInsert = 0; for (positionToInsert = 0; positionToInsert < AvailableFieldsForSort.options.length; positionToInsert++) { if (AvailableFieldsForSort.options(positionToInsert).text > newOption.text) break; } if(AvailableFieldsForSort.selectedIndex != -1) AvailableFieldsForSort.options(AvailableFieldsForSort.selectedIndex).selected = false; AvailableFieldsForSort.add(newOption,positionToInsert); selectedFieldsForSort.remove(selectedIndex); } doSortButton.disabled = false; cancelSortButton.disabled = false; resetSortButton.disabled = false; if (firstSelectedPosition >= selectedFieldsForSort.length) { if (firstSelectedPosition == 0) return; else firstSelectedPosition = selectedFieldsForSort.length - 1; } selectedFieldsForSort.options(firstSelectedPosition).selected = true; updateSortOrderType(); } function doSorting() { if(eventLogType[0].checked == true) { selectedSortEEL = selectedFieldsForSortDiv.innerHTML; availableSortEEL = AvailableFieldsForSortDiv.innerHTML; } else { selectedSortNT = selectedFieldsForSortDiv.innerHTML; availableSortNT = AvailableFieldsForSortDiv.innerHTML; } var sortFieldsListLength = selectedFieldsForSort.options.length; sortOrderValue = ""; for ( i = 0; i < sortFieldsListLength; i++) { if (selectedFieldsForSort.options(i).value == "ascending") sortPrefix = ""; else sortPrefix = "-"; if (sortOrderValue != "") sortOrderValue = sortOrderValue + "; " ; sortOrderValue = sortOrderValue + sortPrefix + selectedFieldsForSort.options(i).id ; } customizationNeedsRefresh = true; clearSortStatesInHeader(getDataNode()); setSortStatesInHeader(); performSortingOnData(sortOrderValue); doSortButton.disabled = true; cancelSortButton.disabled = true; resetSortButton.disabled = false; } function performSortingOnData(sortOrderValue) { sortFieldValue = sortOrderValue; return true; } function setSortStatesInHeader() { var temp = selectedFieldsForSort.options.length var i = 0; var nodeToUpdate = ""; if(connectionOn != "0") { if((connectionOn == "NT") && (eventLogType[0].checked == true)) nodeToUpdate = eelCustomizeCols; else if((connectionOn == "EEL") && (eventLogType[1].checked == true)) nodeToUpdate = ntCustomizeCols; else nodeToUpdate = getDataNode().selectSingleNode("/CIM"); }else nodeToUpdate = getDataNode().selectSingleNode("/CIM"); node = nodeToUpdate.selectNodes ("Actions/INSTANCE/PROPERTY"); var len = node.length; for( i = 0;i1) { ChooseColumnDiv.document.all.item("moveSortFieldUpButton").disabled = true; ChooseColumnDiv.document.all.item("moveDownSortFieldButton").disabled = true; return; } numberOfFieldsSelected++; previousField=i; } } ChooseColumnDiv.document.all.item("moveSortFieldUpButton").disabled = false; ChooseColumnDiv.document.all.item("moveDownSortFieldButton").disabled = false; updateSortOrderType(); } function updateSortingSelectionInCustamization(name, sortPrefix) { clearSortingSelectionInCustamization(); for (i = 0; i < AvailableFieldsForSort.options.length; i++) { if (AvailableFieldsForSort.options(i).id == name) { AvailableFieldsForSort.options(AvailableFieldsForSort.selectedIndex).selected = false; AvailableFieldsForSort.options(i).selected = true; break; } } addSortField(); AvailableFieldsForSort.options(AvailableFieldsForSort.selectedIndex).selected = false; AvailableFieldsForSort.options(0).selected = true; if (sortPrefix == "-") { selectedFieldsForSort.options(0).value = "descending"; SortOrderType[1].checked = true; } else { selectedFieldsForSort.options(0).value = "ascending"; SortOrderType[0].checked = true; } if(eventLogType[0].checked == true) { selectedSortEEL=selectedFieldsForSortDiv.innerHTML; availableSortEEL=AvailableFieldsForSortDiv.innerHTML; } else { selectedSortNT=selectedFieldsForSortDiv.innerHTML; availableSortNT=AvailableFieldsForSortDiv.innerHTML; } } function descendingSelected() { if (selectedFieldsForSort.selectedIndex == -1) return; selectedFieldsForSort.options(selectedFieldsForSort.selectedIndex).value = "descending"; doSortButton.disabled = false ; cancelSortButton.disabled = false ; } function ascendingSelected() { if (selectedFieldsForSort.selectedIndex == -1) return; selectedFieldsForSort.options(selectedFieldsForSort.selectedIndex).value = "ascending"; doSortButton.disabled = false ; cancelSortButton.disabled = false ; } function addChooseColumnOrderField() { var firstSelectedPosition = AvailableFieldsForChooseColumnOrder.selectedIndex; if (firstSelectedPosition === -1) return; i = 0; while ( i < AvailableFieldsForChooseColumnOrder.options.length) { if ( AvailableFieldsForChooseColumnOrder.options(i).selected == true) { selectedIndex = i; } else { i++; selectedIndex = -1; continue; } var newOption = taskDiv.document.createElement("OPTION"); newOption.id= AvailableFieldsForChooseColumnOrder.options(selectedIndex).id; newOption.text=AvailableFieldsForChooseColumnOrder.options(selectedIndex).text; newOption.selected = "true"; if(selectedFieldsForChooseColumnOrder.selectedIndex != -1) selectedFieldsForChooseColumnOrder.options(selectedFieldsForChooseColumnOrder.selectedIndex).selected = false; selectedFieldsForChooseColumnOrder.add(newOption); AvailableFieldsForChooseColumnOrder.remove(selectedIndex); } doChooseColumnButton.disabled = false; cancelChooseColumnButton.disabled = false; resetChooseColumnButton.disabled = false; if (firstSelectedPosition >= AvailableFieldsForChooseColumnOrder.length) { if (firstSelectedPosition == 0) return; else firstSelectedPosition = AvailableFieldsForChooseColumnOrder.length - 1; } AvailableFieldsForChooseColumnOrder.options(firstSelectedPosition).selected = "true"; } function removeChooseColumnOrderField() { var firstSelectedPosition = selectedFieldsForChooseColumnOrder.selectedIndex; if (firstSelectedPosition === -1) return; i = 0; while ( i < selectedFieldsForChooseColumnOrder.options.length) { if ( selectedFieldsForChooseColumnOrder.options(i).selected == true) { selectedIndex = i; } else { i++; selectedIndex = -1; continue; } var newOption = taskDiv.document.createElement("OPTION"); newOption.id= selectedFieldsForChooseColumnOrder.options(selectedIndex).id; newOption.text=selectedFieldsForChooseColumnOrder.options(selectedIndex).text; newOption.selected = "true"; var positionToInsert = 0; for (positionToInsert = 0; positionToInsert < AvailableFieldsForChooseColumnOrder.options.length; positionToInsert++) { if (AvailableFieldsForChooseColumnOrder.options(positionToInsert).text > newOption.text) break; } if(AvailableFieldsForChooseColumnOrder.selectedIndex != -1) AvailableFieldsForChooseColumnOrder.options(AvailableFieldsForChooseColumnOrder.selectedIndex).selected = false; AvailableFieldsForChooseColumnOrder.add(newOption,positionToInsert); selectedFieldsForChooseColumnOrder.remove(selectedIndex); } if (selectedFieldsForChooseColumnOrder.options.length == 0) doChooseColumnButton.disabled = true; else doChooseColumnButton.disabled = false; cancelChooseColumnButton.disabled = false; resetChooseColumnButton.disabled = false; if (firstSelectedPosition >= selectedFieldsForChooseColumnOrder.length) { if (firstSelectedPosition == 0) return; else firstSelectedPosition = selectedFieldsForChooseColumnOrder.length - 1; } selectedFieldsForChooseColumnOrder.options(firstSelectedPosition).selected = "true"; } function doChooseColumnOrdering() { var i; var field; updateSelectedFieldsForQuery(); if (getDataNode().selectSingleNode("/CIM/Actions/INSTANCE") == null) return false; customizationNeedsRefresh = true; updateChooseColumnOrderingInHeader(); resetChooseColumnButton.disabled=false; doChooseColumnButton.disabled = true; cancelChooseColumnButton.disabled = true; if(eventLogType[0].checked == true) { selectedChooseEEL = selectedFieldsForChooseColumnOrderDiv.innerHTML; availableChooseEEL= AvailableFieldsForChooseColumnOrderDiv.innerHTML; } else { selectedChooseNT = selectedFieldsForChooseColumnOrderDiv.innerHTML; availableChooseNT= AvailableFieldsForChooseColumnOrderDiv.innerHTML; } } function updateChooseColumnOrderingInHeader() { var i; var field; if ((connectionOn == "0") && (selectedFieldsForChooseColumnOrder.options.length == 0)) return; var nodeToUpdate = "" for (i = 0; i < selectedFieldsForChooseColumnOrder.options.length; i++) { field = selectedFieldsForChooseColumnOrder.options(i).id; var node=null; if(connectionOn != "0") { if((connectionOn == "NT") && (eventLogType[0].checked == true)) node = eelCustomizeCols.selectSingleNode("Actions/INSTANCE/PROPERTY[@NAME='"+field+"']"); else if((connectionOn == "EEL") && (eventLogType[1].checked == true)) { node = ntCustomizeCols.selectSingleNode("Actions/INSTANCE/PROPERTY[@NAME='"+field+"']") ; } else node = getDataNode().selectSingleNode("/CIM/Actions/INSTANCE/PROPERTY[@NAME='"+field+"']") ; } else node = getDataNode().selectSingleNode("/CIM/Actions/INSTANCE/PROPERTY[@NAME='"+field+"']") ; if (node == null) continue; node.setAttribute("show", "true"); var nodeColPosition = getDataNode().createElement ("nodeColPosition") ; nodeColPosition.text = i; // if ( i < 10) // nodeColPosition.text = "0" + nodeColPosition.text; if (node.childNodes.item(0) != null) node.removeChild(node.childNodes.item(0)); node.appendChild(nodeColPosition); } var count = i; for (i = 0; i < AvailableFieldsForChooseColumnOrder.options.length; i++) { field = AvailableFieldsForChooseColumnOrder.options(i).id ; if(connectionOn != "0") { if((connectionOn == "NT") && (eventLogType[0].checked == true)) node = eelCustomizeCols.selectSingleNode("Actions/INSTANCE/PROPERTY[@NAME='"+field+"']"); else if((connectionOn == "EEL") && (eventLogType[1].checked == true)) node = ntCustomizeCols.selectSingleNode("Actions/INSTANCE/PROPERTY[@NAME='"+field+"']") ; else node = getDataNode().selectSingleNode("/CIM/Actions/INSTANCE/PROPERTY[@NAME='"+field+"']") ; } else node = getDataNode().selectSingleNode("/CIM/Actions/INSTANCE/PROPERTY[@NAME='"+field+"']") ; if (node == null) continue; node.setAttribute("show", "false"); var nodeColPosition = getDataNode().createElement ( "nodeColPosition") ; nodeColPosition.text = count + i; if ( (count +i) < 10) nodeColPosition.text = "0" + nodeColPosition.text ; if (node.childNodes.item(0) != null) node.removeChild(node.childNodes.item(0)); node.appendChild(nodeColPosition); } } function resetChooseColumns() { //clearChooseColumnOrderingSelectionInCustamization(); if(eventLogType[0].checked == true) { selectedFieldsForChooseColumnOrderDiv.innerHTML = resetSelectedChooseColumnsEEL; AvailableFieldsForChooseColumnOrderDiv.innerHTML = resetAvailableChooseColumnsEEL; } else { selectedFieldsForChooseColumnOrderDiv.innerHTML = resetSelectedChooseColumnsNT; AvailableFieldsForChooseColumnOrderDiv.innerHTML = resetAvailableChooseColumnsNT; } doChooseColumnButton.disabled=false; cancelChooseColumnButton.disabled=false; resetChooseColumnButton.disabled=true; } function clearChooseColumnOrderingSelectionInCustamization() { var chooseColumnOrderFieldsListLength = AvailableFieldsForChooseColumnOrder.options.length; for ( i = 0; i < chooseColumnOrderFieldsListLength; i++) { AvailableFieldsForChooseColumnOrder.options(i).selected = true; } addChooseColumnOrderField(); } function moveChooseColumnOrderFieldUp() { var selectedIndex = selectedFieldsForChooseColumnOrder.selectedIndex; var numberOfFieldsSelected = 0; if (selectedIndex < 1){ return; } for ( i = 1; i < selectedFieldsForChooseColumnOrder.options.length; i++) { if (selectedFieldsForChooseColumnOrder.options(i).selected == true) { numberOfFieldsSelected++; lastSelectedField=i; } } var newOption = taskDiv.document.createElement("OPTION"); newOption.id= selectedFieldsForChooseColumnOrder.options(selectedIndex-1).id; newOption.text=selectedFieldsForChooseColumnOrder.options(selectedIndex-1).text; newOption.selected = false; selectedFieldsForChooseColumnOrder.add(newOption,lastSelectedField+1); selectedFieldsForChooseColumnOrder.remove(selectedIndex - 1); doChooseColumnButton.disabled = false; cancelChooseColumnButton.disabled = false; resetChooseColumnButton.disabled = false; } function moveChooseColumnOrderFieldDown() { var selectedIndex = selectedFieldsForChooseColumnOrder.selectedIndex; var numberOfFieldsSelected = 0; if (selectedIndex == -1) return; for ( i = 0; i < selectedFieldsForChooseColumnOrder.options.length; i++) { if (selectedFieldsForChooseColumnOrder.options(i).selected == true) { numberOfFieldsSelected++; lastSelectedField = i; } } if (lastSelectedField < selectedFieldsForChooseColumnOrder.options.length-1){ var newOption = taskDiv.document.createElement("OPTION"); newOption.id= selectedFieldsForChooseColumnOrder.options(lastSelectedField+1).id; newOption.text=selectedFieldsForChooseColumnOrder.options(lastSelectedField+1).text; newOption.selected = false; selectedFieldsForChooseColumnOrder.add(newOption,selectedIndex); selectedFieldsForChooseColumnOrder.remove(lastSelectedField+2); } doChooseColumnButton.disabled = false; cancelChooseColumnButton.disabled = false; resetChooseColumnButton.disabled = false; } function disableUpDownChooseColumn() { numberOfFieldsSelected = 0; for (i = 0; i < selectedFieldsForChooseColumnOrder.options.length; i++) { if (selectedFieldsForChooseColumnOrder.options(i).selected == true) { if (numberOfFieldsSelected ==0) previousField=i; if ((i-previousField)>1) { ChooseColumnDiv.document.all.item("moveChooseColumnFieldUpButton").disabled = true; ChooseColumnDiv.document.all.item("moveChooseColumnFieldDownButton").disabled = true; return; } numberOfFieldsSelected++; previousField=i; } } moveChooseColumnFieldUpButton.disabled=false; moveChooseColumnFieldDownButton.disabled=false; } function cancelChooseColumnOrderingSelection() { if(eventLogType[0].checked == true) { selectedFieldsForChooseColumnOrderDiv.innerHTML = selectedChooseEEL; AvailableFieldsForChooseColumnOrderDiv.innerHTML = availableChooseEEL; } else { selectedFieldsForChooseColumnOrderDiv.innerHTML = selectedChooseNT; AvailableFieldsForChooseColumnOrderDiv.innerHTML = availableChooseNT; } resetChooseColumnButton.disabled=false; } function hideByteDisplay() { drillDownDiv.document.all.dataInByteSpan.style.display= "none"; drillDownDiv.document.all.dataInByteSpan.style.visibility = "hidden"; drillDownDiv.document.all.dataInWordSpan.style.display= "inline" ; drillDownDiv.document.all.dataInWordSpan.style.visibility = "visible"; drillDownDiv.document.all.dataInAsciiSpan.style.visibility = "hidden"; } function hideWordDisplay() { drillDownDiv.document.all.dataInWordSpan.style.visibility = "hidden"; drillDownDiv.document.all.dataInWordSpan.style.display = "none"; drillDownDiv.document.all.dataInByteSpan.style.display= "inline" ; drillDownDiv.document.all.dataInByteSpan.style.visibility = "visible"; drillDownDiv.document.all.dataInAsciiSpan.style.visibility = "visible"; } function prepareValuesList(attributeName, qualifierName) { var qualifierValue = getQualifierValueArray(connectionOn,attributeName, "Values"); if (qualifierValue == null) return false; qualifierArrayValues = qualifierValue.selectNodes("VALUE.ARRAY/VALUE"); //optionsStr = ""; optionsStr = ""; for ( i = 0; i < qualifierArrayValues.length; i++) { optionsStr = optionsStr + ""; } return optionsStr; } function convertValueToValueMap(attributeName, valuesValue) { if (prevValueMapsAttrName != attributeName) { attrValueMap = getQualifierValueArray(connectionOn,attributeName,"ValueMap" ); attrValues = getQualifierValueArray(connectionOn,attributeName,"Values" ); prevValueMapsAttrName = attributeName; } valueNodes = attrValues.selectNodes("VALUE.ARRAY/VALUE"); for (valueIndex = 0; valueIndex < valueNodes.length; valueIndex++) { if (valueNodes.item(valueIndex).text == valuesValue) break } if ( valueIndex == valueNodes.length) return -1; if (attrValueMap == null) return valueIndex; returnValue = attrValueMap.selectNodes("VALUE.ARRAY/VALUE").item(valueIndex).text; return returnValue; } function prepareDropDownMenuForValueMap() { attributeName = FieldInput.options(FieldInput.selectedIndex).value; selectStr = ""; valueMapInputValue = ""; return valueMapMenu; } function valueMapValueSelected() { return; } function setValueInputValue(valueInputValue) { if (valueInput.type != "select-one") valueInput.value = valueInputValue; else { valueMapInputValue = valueInputValue; valueInput.selectedIndex = -1; } } function getValueInputValue() { if (valueInput.type != "select-one") { var valueWithOutBlanks = removeBlankCharacters(valueInput.value, "LEADING_AND_TRAILING"); return valueWithOutBlanks; } else { if (valueMapInputValue == "") { if(valueInput.selectedIndex != -1) return valueInput.options(valueInput.selectedIndex).text; else return ""; } else if ( (valueInput.selectedIndex != -1)){ return valueMapInputValue + " OR " + valueInput.options(valueInput.selectedIndex).text; } else return valueMapInputValue; } } function handleErrorConditionInConnection(connectionOn) { // empty the table NoConnectionSetup.innerText = L_NoConnectionSetup_TEXT; searchStatus.innerText = L_NoConnectionSetup_TEXT; selectedRow = -1; clearDrillDown(); if (actionId == "EEL") emptyTable("EEL",getErrorMessage()); else emptyTable("NT",getErrorMessage()); } function handleErrorConditionInSearch(connectionOn) { if (actionId == "EEL") emptyTable("EEL",getErrorMessage()); else emptyTable("NT",getErrorMessage()); } function saveQuery() { saveAs.value = removeBlankCharacters(saveAs.value, "LEADING_AND_TRAILING"); if (saveAs.value == "") return; loadQueryDisabled = true; addAndToSearchCriteria(); // prepare xml node queryElement = savedQueries.createElement("Query"); queryElement.setAttribute("name", saveAs.value); queryElement.setAttribute("version", getEELSchemaVersion()); queryElement.setAttribute("time", getCurrentTime()); if (connectionOn == "NT") { eventTypeElement = savedQueries.createElement("EventType"); eventTypeElement.setAttribute("value",EventTypeSelection.options(EventTypeSelection.selectedIndex).id); queryElement.appendChild(eventTypeElement); } for ( i=0; i < currentSearchTableRow; i++) { searchConditionElement = savedQueries.createElement("SearchCondition"); fieldElement = savedQueries.createElement("Field"); fieldElement.setAttribute("value",searchFieldNames[i]); fieldElement.setAttribute("name",SearchTable.rows(i).cells(0).innerText ); operatorElement = savedQueries.createElement("Operator"); operatorElement.setAttribute("value",searchFieldOperators[i]); operatorElement.setAttribute("name",SearchTable.rows(i).cells(1).innerText ); valueElement = savedQueries.createElement("Value"); valueElement.setAttribute("value",searchFieldValues[i]); valueElement.setAttribute("name",SearchTable.rows(i).cells(2).innerText ); searchConditionElement.appendChild(fieldElement); searchConditionElement.appendChild(operatorElement); searchConditionElement.appendChild(valueElement); queryElement.appendChild(searchConditionElement); } // attach node to file if (connectionOn == "EEL") { node = savedQueries.XMLDocument.selectSingleNode("EELViewerQueries/EELQueries"); } else if (connectionOn == "NT") { node = savedQueries.XMLDocument.selectSingleNode("EELViewerQueries/NTQueries"); } if (node == null) return; duplicateChild = node.selectSingleNode("Query[@name='" + saveAs.value + "']"); if (duplicateChild != null) { node.replaceChild(queryElement, duplicateChild); } else { // add the entry to Saved Queries menu savedSearchName = createOption(" ",saveAs.value); savedSearchName.selected = true; for (i=0; i saveAs.value) break; } if (i == savedSearches.options.length) { savedSearches.options.add(savedSearchName); node.appendChild(queryElement); } else { savedSearches.options.add(savedSearchName,i); node.insertBefore(queryElement, node.childNodes.item(i-1)); } } savedSearches.focus(); saveSavedQueriesXML(); loadQueryDisabled = false; } function loadQuery() { if (loadQueryDisabled == true) return; saveAs.value = savedSearches.options(savedSearches.selectedIndex).text; if (savedSearches.options(savedSearches.selectedIndex).text == "") return; clearQuery(); if (connectionOn == "EEL") selectedQueryNode = savedQueries.XMLDocument.selectSingleNode("EELViewerQueries/EELQueries/Query[@name='" + savedSearches.options(savedSearches.selectedIndex).text + "']" ); else selectedQueryNode = savedQueries.XMLDocument.selectSingleNode("EELViewerQueries/NTQueries/Query[@name='" + savedSearches.options(savedSearches.selectedIndex).text + "']" ); if (selectedQueryNode == null) return; // find eventtype/logtype and set it if (connectionOn == "NT") { savedEventTypeValue = selectedQueryNode.selectSingleNode("EventType").getAttribute("value"); for (i = 0; i < EventTypeSelection.options.length; i++) { if (EventTypeSelection.options(i).id == savedEventTypeValue) { EventTypeSelection.options(i).selected = true; } } } searchConditionNodes = selectedQueryNode.selectNodes("SearchCondition"); for ( i = SearchTable.rows.length, j = searchConditionNodes.length; i <=j; i++ ) { addNewEmptyRowToSearchTable(); } for (i=0; i < searchConditionNodes.length; i++) { fieldName = searchConditionNodes.item(i).selectSingleNode("Field").getAttribute("name"); fieldValue = searchConditionNodes.item(i).selectSingleNode("Field").getAttributeNode("value").nodeValue; operatorName = searchConditionNodes.item(i).selectSingleNode("Operator").getAttribute("name"); operatorValue = searchConditionNodes.item(i).selectSingleNode("Operator").getAttribute("value"); valueName = searchConditionNodes.item(i).selectSingleNode("Value").getAttribute("name"); valueValue = searchConditionNodes.item(i).selectSingleNode("Value").getAttribute("value"); searchFieldNames[i] = new Number(fieldValue) ; SearchTable.rows(i).cells(0).innerText = fieldName; searchFieldOperators[i] = new Number(operatorValue); SearchTable.rows(i).cells(1).innerText = operatorName; searchFieldValues[i] = valueValue; SearchTable.rows(i).cells(2).innerText = valueName; } currentSearchTableRow = searchConditionNodes.length; highlightSearchRow(currentSearchTableRow); } function saveSavedQueriesXML() { if ((placeOfSavedQueries == null)) { placeOfSavedQueries = getSavedQueriesFilePath(); } if (placeOfSavedQueries == null) return null; try { kalpaxml.wmiSaveQuery (placeOfSavedQueries, savedQueries.XMLDocument.xml) ; } catch (e) { return null ; } } function populateSavedQueriesName(connectionType) { var savedQueryNodes; loadQueryDisabled = true; if (connectionType == "EEL") { savedQueryNodes = savedQueries.XMLDocument.selectNodes("EELViewerQueries/EELQueries/Query"); }else { savedQueryNodes = savedQueries.XMLDocument.selectNodes("EELViewerQueries/NTQueries/Query"); } for ( i = 0; i < savedSearches.options.length; ) { savedSearches.options.remove(savedSearches.options(i)); } savedSearches.options.add(createOption(" ","")); for ( i = 0; i < savedQueryNodes.length; i++) { if (savedQueryNodes.item(i).getAttribute("version") == getEELSchemaVersion()) savedSearches.options.add(createOption(" ",savedQueryNodes.item(i).getAttribute("name"))); } loadQueryDisabled = false; loadQuery(); } function addNewEmptyRowToSearchTable() { newRow = SearchTable.insertRow(); newRow.attachEvent('onclick', searchRowSelected); var i; for ( i = 0; i < 3; i++) { var newCell = newRow.insertCell(); newCell.className = "searchTableDataAlignLeft"; newCell.innerHTML = "
"; } } function getEELSchemaVersion() { return "EEL_06"; } function clearDrillDown() { hideDrillDown(); } function removeBlankCharacters(value,leadingOrTrailing) { if (value == "") return value; if ((leadingOrTrailing == "LEADING") || (leadingOrTrailing == "LEADING_AND_TRAILING")) { indexOfNonBlank = 0; while(value.charAt(indexOfNonBlank) == " ") { indexOfNonBlank++; } value = value.substr(indexOfNonBlank,value.length); } if ((leadingOrTrailing == "TRAILING") || (leadingOrTrailing == "LEADING_AND_TRAILING")) { indexOfNonBlank = value.length-1; while(value.charAt(indexOfNonBlank) == " ") { indexOfNonBlank--; } value = value.substr(0,indexOfNonBlank+1); } return value; } function updateFieldListInSearch(eventLogName) { fieldInputLength = FieldInput.options.length; for (j=0; j < fieldInputLength; j++) { FieldInput.options.remove(0); } getFieldsList(eventLogName, "sorted","PROPERTY|EMBEDDEDPROPERTY","FieldInput"); return true; } function moveRow(e,change) { oldSelectedRow = TABLEBODY1.rows(selectedRow-1).rowIndex; var presentScrollBarValue = scrollBar.value; var newScrollBarValue = null; var old_INDEX_DATA=INDEX_DATA; if (change==PAGE_SIZE) { if (e=="up") { if(oldSelectedRow==1) { newScrollBarValue = Math.max(scrollBar.value-change,0); } newSelectedRow=1; } else { if(oldSelectedRow==PAGE_SIZE) { newScrollBarValue = Math.min(scrollBar.value+change,numEELRecords-PAGE_SIZE); } newSelectedRow=PAGE_SIZE; } } else { //for change = 1 if (e=="up") { if( presentScrollBarValue!=(selectedRecord - selectedRecordIndex)) { newScrollBarValue=Math.max(selectedRecord - selectedRecordIndex,0); newSelectedRow=Math.max(selectedRecordIndex - change,1); } else { if(oldSelectedRow == 1) { newScrollBarValue = Math.max(scrollBar.value - change,0); newSelectedRow = 1; } else newSelectedRow = oldSelectedRow - 1; } } else { if(presentScrollBarValue!=(selectedRecord - selectedRecordIndex) ) { newScrollBarValue=Math.min(selectedRecord - selectedRecordIndex ,numEELRecords-PAGE_SIZE); newSelectedRow=Math.min(selectedRecordIndex + change,PAGE_SIZE); } else { if(oldSelectedRow == PAGE_SIZE) { newScrollBarValue = Math.min(scrollBar.value + change,numEELRecords); newSelectedRow = PAGE_SIZE; } else newSelectedRow = oldSelectedRow+1; } } } if(newScrollBarValue != null) scrollBar.value = newScrollBarValue; selectRow(TABLEBODY1.rows(newSelectedRow-1).cells(0)) ; //TABLEBODY1.rows(selectedRow-1).cells(0).focus(); TABLEBODY1.rows(0).cells(0).focus(); } function test() { if (window.event.keyCode=="18") ctrlflag = 1; if ((window.event.keyCode=="46")&& (ctrlflag == 0)) {removeSearchCondition();} if ((window.event.keyCode=="46") && (ctrlflag == 1)) {clearQuery();ctrlflag=0;} } function enterForDrillDown(e) { if (window.event.keyCode=="13") startDrillDown(e); if (window.event.keyCode=="38") moveRow("up",1); if (window.event.keyCode=="40") moveRow("dn",1); if (window.event.keyCode=="33") moveRow("up",PAGE_SIZE); if (window.event.keyCode=="34") moveRow("dn",PAGE_SIZE); if( (window.event.srcElement.className == 'tableDataAlignLeft') && (window.event.keyCode=="32")) { window.event.cancelBubble = true; window.event.returnValue = false; } } function getSelectedFieldsForQuery() { return selectedFieldsForQuery; } function updateSelectedFieldsForQuery() { selectedFieldsForQuery = ""; var i; var selectedFieldsForChooseColumnOrderLength = selectedFieldsForChooseColumnOrder.options.length; for (i = 0; i < selectedFieldsForChooseColumnOrderLength; i++) { if (selectedFieldsForQuery != "") selectedFieldsForQuery = selectedFieldsForQuery + ", "; selectedFieldsForQuery = selectedFieldsForQuery + selectedFieldsForChooseColumnOrder.options(i).id; } } function zeroSearchRecords() { selectedRow = -1; clearDrillDown(); searchStatus.innerHTML = L_CurrentSearchNoRecords_TEXT; setErrorMessage(L_RecordsNotFoundMessage_TEXT,""); handleErrorConditionInSearch(connectionOn); } function bringUpHelp() { currentHelpFilePath = kalpaxml.wmiGetWindir() + "\\wbem\\eelview\\help/eelviewr.chm"; helpPath = "mk:@MSITStore:" + currentHelpFilePath; window.showHelp(helpPath); } function getMachineName() { var machineNameValue = MachineName.value; if(machineNameValue.indexOf("\\\\") == 0) machineNameValue = machineNameValue.substr(2); return machineNameValue; }