windows-nt/Source/XPSP1/NT/admin/eelvewer/ia64/free/tablview.js
2020-09-26 16:20:57 +08:00

2583 lines
85 KiB
JavaScript

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<drillDownNode.attributes.length; i++) {
if ("max" == drillDownNode.attributes[i].name) {
maxSet = true ;
break ;
}
};
// if the attribute was not set, create the max and cur attributes
if (!maxSet) {
var attribMax = getDataNode().createNode (2, "max", "") ;
attribMax.nodeTypedValue = "" + (num-1) ;
var attribCur = getDataNode().createNode (2, "cur", "") ;
attribCur.nodeTypedValue = "0" ;
var attribInit = getDataNode().createNode (2, "init", "") ;
attribInit.nodeTypedValue = "0" ;
// attach the attribute to the drill down node.
var y = drillDownNode.attributes ;
y.setNamedItem (attribMax) ;
y.setNamedItem (attribCur) ;
y.setNamedItem (attribInit) ;
// also add a level atteribute to each PROPERTY.OBJECT node
var tempCnt = nodes.length
for (i=0; i< tempCnt; i++) {
node = nodes.item (i) ;
var attribLevel = getDataNode().createNode (2, "lev", "") ;
attribLevel.nodeTypedValue = "" + i ;
y = node.attributes ;
y.setNamedItem (attribLevel) ;
}
}
// clone it
drillDownNode = drillDownNode.cloneNode (true) ;
// pass it to the drill down pane.
showDrillDown (drillDownNode) ;
}
kalpaxml.wmiRestoreCursor();
calcPageSize();
setScrollBarParameters();
}
//-----------------------------------------------------------------------------
// highlightRow ()
//
// highlights the selected row.
//-----------------------------------------------------------------------------
function highlightRow () {
if (selectedRow == -1)
return ;
// if selectedRow is beyond the table, show nothing
if (selectedRow >= 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 = "<BR/>";
}
}
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 = "<BR/>";
}
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 = "<BR/>";
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 = "<BR/>";
}
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 = "<SPAN></SPAN>" ;
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<stk_push.arguments.length;i++)
this.A[this.A.length]=stk_push.arguments[i];
}
function Stack_toString(C){if(!C)C=","; return this.A.join(C);}
function Stack_toArray(C){return this.A;} // somewhat dangerous; returns a _reference_
// we can use functions as arguments, for instance to find stuff within a stack:
function Stack_indexOf(X,f){
for(var i=this.A.length-1;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;i<len;i++)
node.item(i).setAttribute("Sort","none");
for ( i = 0; i < temp ; i++) {
node = nodeToUpdate.selectSingleNode ("Actions/INSTANCE/PROPERTY[@NAME='"+selectedFieldsForSort.options(i).id+"']");
if (node == null ) continue;
node.setAttribute("Sort", selectedFieldsForSort.options[i].value);
}
}
function cancelSortingSelection() {
if(eventLogType[0].checked == true)
{
selectedFieldsForSortDiv.innerHTML = selectedSortEEL;
AvailableFieldsForSortDiv.innerHTML = availableSortEEL;
}
else
{
selectedFieldsForSortDiv.innerHTML = selectedSortNT;
AvailableFieldsForSortDiv.innerHTML = availableSortNT;
}
resetSortButton.disabled=false;
updateSortOrderType();
}
function resetSortFields() {
if(eventLogType[0].checked == true)
{
selectedFieldsForSortDiv.innerHTML = resetSelectedSortColumnsEEL;
AvailableFieldsForSortDiv.innerHTML = resetAvailableSortColumnsEEL;
}
else
{
selectedFieldsForSortDiv.innerHTML = resetSelectedSortColumnsNT;
AvailableFieldsForSortDiv.innerHTML = resetAvailableSortColumnsNT;
}
updateSortOrderType();
doSortButton.disabled=false;
resetSortButton.disabled=true;
cancelSortButton.disabled=false;
}
function clearSortingSelectionInCustamization() {
var sortFieldsListLength = selectedFieldsForSort.options.length;
for ( i = 0; i < sortFieldsListLength; i++) {
selectedFieldsForSort.options(i).selected = true;
}
removeSortField();
}
function moveSortingFieldUp() {
var selectedIndex = selectedFieldsForSort.selectedIndex;
var numberOfFieldsSelected = 0;
if (selectedIndex < 1) return;
for ( i = 1; i < selectedFieldsForSort.options.length; i++) {
if (selectedFieldsForSort.options(i).selected == true) {
numberOfFieldsSelected++;
lastSelectedField=i;
}
}
var newOption = taskDiv.document.createElement("OPTION");
newOption.id= selectedFieldsForSort.options(selectedIndex-1).id;
newOption.text=selectedFieldsForSort.options(selectedIndex-1).text;
newOption.selected = false;
newOption.value = selectedFieldsForSort.options(lastSelectedField-1).value;
selectedFieldsForSort.add(newOption,lastSelectedField+1);
selectedFieldsForSort.remove(selectedIndex - 1);
updateSortOrderType();
doSortButton.disabled = false;
cancelSortButton.disabled = false;
resetSortButton.disabled = false;
}
function moveSortingFieldDown() {
var selectedIndex = selectedFieldsForSort.selectedIndex;
var numberOfFieldsSelected = 0;
if (selectedIndex == -1) return;
for ( i = 0; i < selectedFieldsForSort.options.length; i++) {
if (selectedFieldsForSort.options(i).selected == true) {
numberOfFieldsSelected++;
lastSelectedField = i;
}
}
if (lastSelectedField < selectedFieldsForSort.options.length-1){
var newOption = taskDiv.document.createElement("OPTION");
newOption.id= selectedFieldsForSort.options(lastSelectedField+1).id;
newOption.text=selectedFieldsForSort.options(lastSelectedField+1).text;
newOption.selected = false;
newOption.value = selectedFieldsForSort.options(lastSelectedField+1).value;
selectedFieldsForSort.add(newOption,selectedIndex);
selectedFieldsForSort.remove(lastSelectedField+2);
}
updateSortOrderType();
doSortButton.disabled = false;
cancelSortButton.disabled = false;
resetSortButton.disabled = false;
}
function disableUpDownSort() {
numberOfFieldsSelected = 0;
for (i = 0; i < selectedFieldsForSort.options.length; i++) {
if (selectedFieldsForSort.options(i).selected == true) {
if (numberOfFieldsSelected ==0) previousField=i;
if ((i-previousField)>1) {
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 = "<OPTION style=\"display:hidden\" id=" + qualifierArrayValues.length + ">" + "" + "</OPTION>";
optionsStr = "";
for ( i = 0; i < qualifierArrayValues.length; i++) {
optionsStr = optionsStr + "<OPTION id=\"" + i + "\" onlosecapture=\"valueMapValueSelected()\">" + qualifierArrayValues.item(i).text + "</OPTION>";
}
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 = "<select class=\"ValueInputClass\" name=\"valueInput\" onclick=\"valueMapValueSelected()\">";
valueMapMenu = selectStr + prepareValuesList(attributeName,"Values") + "</select>";
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<savedSearches.options.length; i++) {
if (savedSearches.options(i).text > 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 = "<BR/>";
}
}
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;
}
<!-- ******************************************************** -->
<!-- -->
<!-- Copyright (c) 1999-2000 Microsoft Corporation -->
<!-- -->
<!-- tablview.js -->
<!-- -->
<!-- Build Type : Free -->
<!-- Build Number : 0707 -->
<!-- Build Date : 07/07/2000 -->
<!-- ******************************************************* -->