Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

645 lines
20 KiB

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'-------------------------------------------------------------------------
' Multiple_Log_Details.asp: Serves in listing all the Multiple logs
' Copyright (c) Microsoft Corporation. All rights reserved.
'-------------------------------------------------------------------------
%>
<!-- #include virtual="/admin/inc_framework.asp" -->
<!-- #include virtual="/admin/ots_main.asp" -->
<!-- #include file="loc_Log.asp" -->
<!-- #include file="inc_Log.asp" -->
<%
'-------------------------------------------------------------------------
' Global Constants
'-------------------------------------------------------------------------
Const NAME_COLUMN = 0
Const TYPE_COLUMN = 1
Const DATE_COLUMN = 2
Const SIZE_COLUMN = 3
Const LOGS_PER_PAGE = 100
Dim SOURCE_FILE
Const ENABLE_TRACING = TRUE
SOURCE_FILE = SA_GetScriptFileName()
'-------------------------------------------------------------------------
' Global Variables
'-------------------------------------------------------------------------
Dim page 'Variable for page creation
Dim rc 'Return value for CreatePage
'frame work variables
Dim g_Type
Dim g_bSearchChanged
Dim g_bSearchRequested
Dim g_iSearchCol
Dim g_sSearchColValue
Dim g_bPageChangeRequested
Dim g_sPageAction
Dim g_bPagingInitialized
Dim g_iPageMin
Dim g_iPageMax
Dim g_iPageCurrent
Dim g_iSortCol
Dim g_sSortSequence
Dim G_PageTitle 'To get the title accordingly
Dim G_strLogFilePath 'FilePath
'-------------------------------------------------------------------------
' Form Variables
'-------------------------------------------------------------------------
Dim F_strevent_title 'to get the log name.
Dim L_PAGETITLE_LOGS_TEXT
Dim L_TABLETITLE_TEXT
'Getting the inputs from the earliear form
L_PAGETITLE_LOGS_TEXT= Request.QueryString("title")
L_TABLETITLE_TEXT=Request.QueryString("title")
G_PageTitle = GetTitle(Request.QueryString("Title"))
'-------------------------------------------------------------------------
' Entry Point
'-------------------------------------------------------------------------
' Create Page
Call SA_CreatePage(G_PageTitle ,"",PT_AREA, page )
Call SA_ShowPage( page )
'---------------------------------------------------------------------
' Function name: OnInitPage
' Description: Called to signal first time processing for this page.
' Input Variables: PageIn and EventArg
' Output Variables: PageIn and EventArg
' Return Values: True/False
' Global Variables: None
' Called to signal first time processing for this page. Use this method
' to do first time initialization tasks.
'---------------------------------------------------------------------
Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
g_Type=Request.QueryString("type")
OnInitPage = TRUE
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnInitPage")
End If
F_strevent_title = Request.QueryString("Title")
' Set default values
'
' Sort first column in ascending sequence
g_iSortCol = 0
g_sSortSequence = "A"
'
' Paging needs to be initialized
g_bPagingInitialized = FALSE
'
' Start on page #1
g_iPageCurrent = 1
End Function
'---------------------------------------------------------------------
' Function name: OnServeAreaPage
' Description: Called when the page needs to be served.
' Input Variables: PageIn, EventArg
' Output Variables: PageIn and EventArg
' Return Values: TRUE to indicate no problems occured. FALSE to indicate errors.
' Returning FALSE will cause the page to be abandoned.
' Global Variables: None
'Called when the page needs to be served. Use this method to serve content.
'---------------------------------------------------------------------
Public Function OnServeAreaPage(ByRef PageIn, ByRef EventArg)
Call ServeCommonJavaScript()
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnServeAreaPage")
End If
Dim table
Dim iColumnFleName
Dim iColumnFleType
Dim iColumnDatecreated
Dim iColumnSizeinKB
Dim nReturn
Dim nRowsAdded
Dim iLogCount
Dim objFso
Dim objDir
Dim objFile
Dim strFileType
Dim strLogFileDir
Dim colFlags
Dim oEncoder
Set oEncoder = new CSAEncoder
'Getting the dir path from the registry
strLogFileDir=GetPath(L_TABLETITLE_TEXT)
table = OTS_CreateTable("","")
'Getting the FilePath of the selected log file
G_strLogFilePath=GetPath(F_strevent_title)
G_strLogFilePath = Server.URLEncode(G_strLogFilePath)
'
' If the search criteria changed then we need to recompute the paging range
If ( TRUE = g_bSearchChanged ) Then
'
' Need to recalculate the paging range
g_bPagingInitialized = FALSE
'
' Restarting on page #1
g_iPageCurrent = 1
End If
'
' Create columns and add them to the table
colFlags = (OTS_COL_SEARCH OR OTS_COL_KEY OR OTS_COL_SORT)
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_FILENAME_TEXT, "left",colFlags, 15))
colFlags = (OTS_COL_SEARCH OR OTS_COL_SORT)
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_FILETYPE_TEXT, "left",colFlags, 36))
colFlags = (OTS_COL_SEARCH OR OTS_COL_SORT)
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_DATE_TEXT, "left",colFlags, 30))
colFlags = (OTS_COL_SEARCH OR OTS_COL_SORT)
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_SIZE_TEXT, "left",colFlags, 15))
'
' Set Tasks section title
Call OTS_SetTableTasksTitle(table, L_TASKS_TEXT)
'
' Add the tasks associated with User objects
Call OTS_AddTableTask( table, OTS_CreateTaskEx(L_VIEW_TEXT, _
L_VIEW_TEXT, _
"logs/Single_Log_Details.asp?" & "logtitle=" & L_PAGETITLE_LOGS_TEXT & "&tab1=" & GetTab1() & "&tab2=" & GetTab2() ,_
OTS_PT_AREA,_
"OTS_TaskOne") )
Call OTS_AddTableTask( table, OTS_CreateTaskEx(L_CLEAR_TEXT, _
L_CLEAR_TEXT, _
"logs/Text_Log_clear.asp?FilePath="& G_strLogFilePath & "&tab1=" & GetTab1() & "&tab2=" & GetTab2(),_
OTS_PT_PROPERTY,"OTS_TaskAny") )
Call OTS_AddTableTask( table, OTS_CreateTaskEx(L_DOWNLOAD_DETAILS_TEXT, _
L_DOWNLOAD_DETAILS_TEXT, _
"logs/Text_MultiLog_download.asp?FilePath=" & G_strLogFilePath,_
OTS_PT_AREA,"OTS_TaskOne") )
'Logic for getting the files in the requested directory
set objFso = CreateObject("Scripting.FileSystemObject")
'Checking for the file existence
If objFso.FolderExists(strLogFileDir)=TRUE Then
set objDir = objFso.GetFolder(strLogFileDir).Files
'Initializing the rows added
nRowsAdded = 0
iLogCount = 0
For Each objFile in objDir
'Get the description of the file type
strFileType = GetFileTypeDescription(mid(objFile.Name,1,2))
If ( Len( g_sSearchColValue ) <= 0 ) Then
' Search criteria blank, select all rows
'
iLogCount = iLogCount + 1
' Verify that the current user part of the current page
If ( IsItemOnPage( iLogCount,g_iPageCurrent, LOGS_PER_PAGE) ) Then
Call OTS_AddTableRow( table,Array(objFile.Name,strFileType, _
FormatDateTime(CDate(objFile.DateCreated)),clng(objFile.Size/1024)))
End If
'
Else
'
' Check the Search criteria
'
Select Case (g_iSearchCol)
Case NAME_COLUMN
'( ucase(left( arrServices(intCount,1) , len(g_sSearchColValue) )) = ucase(g_sSearchColValue) )
If ( ucase(left( objFile.Name , len(g_sSearchColValue) )) = ucase(g_sSearchColValue) )then
iLogCount = iLogCount + 1
'
' Verify that the current user part of the current page
If ( IsItemOnPage( iLogCount, g_iPageCurrent, LOGS_PER_PAGE) ) Then
Call OTS_AddTableRow( table,Array(objFile.Name, _
strFileType, FormatDateTime(CDate(objFile.DateCreated)),clng(objFile.Size/1024)))
End If
End If
Case TYPE_COLUMN
If ( ucase(left( strFileType, len(g_sSearchColValue) )) = ucase(g_sSearchColValue) ) Then
iLogCount = iLogCount + 1
'
' Verify that the current user part of the current page
If ( IsItemOnPage( iLogCount, g_iPageCurrent, LOGS_PER_PAGE) ) Then
Call OTS_AddTableRow( table,Array(objFile.Name, _
strFileType,FormatDateTime(CDate(objFile.DateCreated)),clng(objFile.Size/1024)))
End If
End If
Case DATE_COLUMN
If ( InStr(1, objFile.DateCreated, g_sSearchColValue, 1) ) Then
iLogCount = iLogCount + 1
'
' Verify that the current user part of the current page
If ( IsItemOnPage( iLogCount, g_iPageCurrent, LOGS_PER_PAGE) ) Then
Call OTS_AddTableRow( table,Array(objFile.Name, _
strFileType,FormatDateTime(CDate(objFile.DateCreated)),clng(objFile.Size/1024)))
End If
End If
Case SIZE_COLUMN
If ( InStr(1, clng(objFile.Size/1024), g_sSearchColValue, 1) ) Then
iLogCount = iLogCount + 1
'
' Verify that the current user part of the current page
If ( IsItemOnPage( iLogCount, g_iPageCurrent, LOGS_PER_PAGE) ) Then
Call OTS_AddTableRow( table,Array(objFile.Name, _
strFileType,FormatDateTime(CDate(objFile.DateCreated)),clng(objFile.Size/1024)))
End If
End If
Case Else
Call SA_TraceOut(SOURCE_FILE, "Unrecognized search column: " + CStr(g_iSearchCol))
iLogCount = iLogCount + 1
'
' Verify that the current user part of the current page
If ( IsItemOnPage( iLogCount, g_iPageCurrent, LOGS_PER_PAGE) ) Then
Call OTS_AddTableRow( table,Array(objFile.Name, _
strFileType,FormatDateTime(CDate(objFile.DateCreated)),clng(objFile.Size/1024)))
End If
End Select
End If ' end of If ( g_bSearchRequested ) Then
Next ' end of For Each objFile in objDir
End IF 'end of If objFso.FolderExists(strLogFileDir)=TRUE
' Enable paging feature
'
Call OTS_EnablePaging(table, TRUE)
'
' If paging range needs to be initialised then
' we need to figure out how many pages we are going to display
If ( FALSE = g_bPagingInitialized ) Then
g_iPageMin = 1
g_iPageMax = Int(iLogCount / LOGS_PER_PAGE )
If ( (iLogCount MOD LOGS_PER_PAGE) > 0 ) Then
g_iPageMax = g_iPageMax + 1
End If
g_iPageCurrent = 1
Call OTS_SetPagingRange(table, g_iPageMin, g_iPageMax, g_iPageCurrent)
End If
'
' If multiselection was requested then use multiselect OTS table
If ( CInt(Request.QueryString("MultiSelect")) = 1 ) Then
Call OTS_SetTableMultiSelection(Table, TRUE)
End If
'
' Sort the table
'
Call OTS_SortTable(table, g_iSortCol, g_sSortSequence, SA_RESERVED)
'
' Send table to the response stream
'
Call OTS_ServeTable(table)
'Display no log entries message if there are no logs
If iLogCount = 0 then
Response.Write "<Br>" & "&nbsp;&nbsp;&nbsp;" & oEncoder.EncodeElement(L_NOLOGSAVAILABLE_TEXT)
End if
'clean the objects
set objDir = nothing
set objFso = nothing
OnServeAreaPage = TRUE
End Function
'---------------------------------------------------------------------
' Function: OnSearchNotify()
'
' Synopsis: Search notification event handler. When one or more columns are
' marked with the OTS_COL_SEARCH flag, the Web Framework fires
' this event in the following scenarios:
'
' 1) The user presses the search Go button.
' 2) The user requests a table column sort
' 3) The user presses either the page next or page previous buttons
'
' The EventArg indicates the source of this notification event which can
' be either a search change event (scenario 1) or a post back event
' (scenarios 2 or 3)
'
' Returns: Always returns TRUE
'
'---------------------------------------------------------------------
Public Function OnSearchNotify(ByRef PageIn, _
ByRef EventArg, _
ByVal sItem, _
ByVal sValue )
OnSearchNotify = TRUE
'
' User pressed the search GO button
'
If SA_IsChangeEvent(EventArg) Then
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnSearchNotify() Change Event Fired")
End If
g_bSearchChanged = TRUE
g_iSearchCol = Int(sItem)
g_sSearchColValue = CStr(sValue)
'
' User clicked a column sort, OR clicked either the page next or page prev button
ElseIf SA_IsPostBackEvent(EventArg) Then
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnSearchNotify() Postback Event Fired")
End If
g_bSearchChanged = FALSE
g_iSearchCol = Int(sItem)
g_sSearchColValue = CStr(sValue)
'
' Unknown event source
Else
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "Unrecognized Event in OnSearchNotify()")
End If
End IF
End Function
'---------------------------------------------------------------------
' Function: OnPagingNotify()
'
' Synopsis: Paging notification event handler. This event is triggered in one of
' the following scenarios:
'
' 1) The user presses either the page next or page previous buttons
' 2) The user presses the search Go button.
' 3) The user requests a table column sort
'
' The EventArg indicates the source of this notification event which can
' be either a paging change event (scenario 1) or a post back event
' (scenarios 2 or 3)
'
' The iPageCurrent argument indicates which page the user has requested.
' This is an integer value between iPageMin and iPageMax.
'
' Returns: Always returns TRUE
'
'---------------------------------------------------------------------
Public Function OnPagingNotify(ByRef PageIn, _
ByRef EventArg, _
ByVal sPageAction, _
ByVal iPageMin, _
ByVal iPageMax, _
ByVal iPageCurrent )
OnPagingNotify = TRUE
g_bPagingInitialized = TRUE
'
' User pressed either page next or page previous
'
If SA_IsChangeEvent(EventArg) Then
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnPagingNotify() Change Event Fired")
End If
g_bPageChangeRequested = TRUE
g_sPageAction = CStr(sPageAction)
g_iPageMin = iPageMin
g_iPageMax = iPageMax
g_iPageCurrent = iPageCurrent
'
' User clicked a column sort OR the search GO button
ElseIf SA_IsPostBackEvent(EventArg) Then
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnPagingNotify() Postback Event Fired")
End If
g_bPageChangeRequested = FALSE
g_sPageAction = CStr(sPageAction)
g_iPageMin = iPageMin
g_iPageMax = iPageMax
g_iPageCurrent = iPageCurrent
'
' Unknown event source
Else
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "Unrecognized Event in OnPagingNotify()")
End If
End IF
End Function
'---------------------------------------------------------------------
' Function name: OnSearchNotify()
' Description: Search notification event handler. When one or more columns are
' marked with the OTS_COL_SEARCH flag, the Web Framework fires
' this event
' Input Variables: PageIn,EventArg,sItem,sValue
' Output Variables: PageIn,EventArg,sItem,sValue
' Returns: Always returns TRUE
'---------------------------------------------------------------------
Public Function OnSearchNotify(ByRef PageIn, _
ByRef EventArg, _
ByRef sItem, _
ByRef sValue )
OnSearchNotify = TRUE
'
' User pressed the search GO button
'
If SA_IsChangeEvent(EventArg) Then
g_bSearchRequested = TRUE
g_iSearchCol = Int(sItem)
g_sSearchColValue = CStr(sValue)
'
' User clicked a column sort, OR clicked either the page next or page prev button
ElseIf SA_IsPostBackEvent(EventArg) Then
g_bSearchRequested = FALSE
g_iSearchCol = Int(sItem)
g_sSearchColValue = CStr(sValue)
'
' Unknown event source
Else
'Call SA_TraceOut("LOGS_AREA", "Unrecognized Event in OnSearchNotify()")
End IF
End Function
'---------------------------------------------------------------------
' Function: OnPagingNotify()
' Function name: OnPagingNotify()
' Description: Paging notification event handler.
' Input Variables: PageIn,EventArg,sPageAction,iPageMin,iPageMax,iPageCurrent
' Output Variables: PageIn,EventArg
' Return Values: Always returns TRUE
' Global Variables: G_*
'---------------------------------------------------------------------
Public Function OnPagingNotify(ByRef PageIn, _
ByRef EventArg, _
ByVal sPageAction, _
ByVal iPageMin, _
ByVal iPageMax, _
ByVal iPageCurrent )
OnPagingNotify = TRUE
g_bPagingInitialized = TRUE
'
' User pressed either page next or page previous
'
If SA_IsChangeEvent(EventArg) Then
g_bPageChangeRequested = TRUE
g_sPageAction = CStr(sPageAction)
g_iPageMin = iPageMin
g_iPageMax = iPageMax
g_iPageCurrent = iPageCurrent
'
' User clicked a column sort OR the search GO button
ElseIf SA_IsPostBackEvent(EventArg) Then
g_bPageChangeRequested = FALSE
g_sPageAction = CStr(sPageAction)
g_iPageMin = iPageMin
g_iPageMax = iPageMax
g_iPageCurrent = iPageCurrent
'
' Unknown event source
Else
'Call SA_TraceOut("LOGS_AREA", "Unrecognized Event in OnPagingNotify()")
End IF
End Function
'---------------------------------------------------------------------
' Function: OnSortNotify()
' Function name: GetServices
' Description: Sorting notification event handler.
' Input Variables: PageIn,EventArg,sortCol,sortSeq
' Output Variables: PageIn,EventArg
' Return Values: Always returns TRUE
' Global Variables: G_*
'---------------------------------------------------------------------
Public Function OnSortNotify(ByRef PageIn, _
ByRef EventArg, _
ByVal sortCol, _
ByVal sortSeq )
OnSortNotify = TRUE
g_iSortCol = sortCol
g_sSortSequence = sortSeq
End Function
'-------------------------------------------------------------------------
' Function name: GetFileTypeDescription
' Description: gives the description of the type of file
' Input Variables: Filetype
' Output Variables: None
' Return Values: String
' Global Variables: None
'-------------------------------------------------------------------------
Function GetFileTypeDescription( strFileType )
Dim strTemp
'constants used for the description of the type of file
Const CONST_EX = "ex"
Const CONST_IN = "in"
Const CONST_NC = "nc"
select case strFileType
case CONST_EX
strTemp = L_LOGFORMATW3C_TEXT
case CONST_IN
strTemp = L_LOGFORMATIIS_TEXT
case CONST_NC
strTemp = L_LOGFORMATNCSA_TEXT
case else
strTemp = L_LOGFORMATUNKNOWN_TEXT
end select
GetFileTypeDescription=strTemp
End Function
'---------------------------------------------------------------------
' Function: ServeCommonJavaScript
'
' Synopsis: Serve common javascript that is required for this page type.
'
'---------------------------------------------------------------------
Function ServeCommonJavaScript()
%>
<script>
function Init()
{
}
</script>
<%
End Function
'-------------------------------------------------------------------------
' Function name: IsItemOnPage
' Description: Serves in Verifying that the current user part of the current page
' Input Variables: iCurrentItem, iCurrentPage, iItemsPerPage- current item
' Output Variables: None
' Return Values: TRUE/FALSE
' Global Variables: None
' Serves in Verifying that the current user part of the current page
'-------------------------------------------------------------------------
Private Function IsItemOnPage(ByVal iCurrentItem, iCurrentPage, iItemsPerPage)
Dim iLowerLimit
Dim iUpperLimit
iLowerLimit = ((iCurrentPage - 1) * iItemsPerPage )
iUpperLimit = iLowerLimit + iItemsPerPage + 1
If ( iCurrentItem > iLowerLimit AND iCurrentItem < iUpperLimit ) Then
IsItemOnPage = TRUE
Else
IsItemOnPage = FALSE
End If
End Function
%>