|
|
<%@ Language=VBScript %> <% '================================================== ' Microsoft Server Appliance ' Alert Details Page ' Copyright (c) Microsoft Corporation. All rights reserved. '================================================== %> <% Option Explicit %> <!-- #include file="inc_framework.asp" --> <% Dim page Dim g_sCookie Dim g_sAction Dim g_sReturnURL Dim g_bAlertCleared Dim g_sPageDescription Dim g_sPageTitle Dim g_sPageImage Dim g_bIsAreaPage Dim L_CLEARALERT_TEXT Dim L_ALERTVWRTITLE_TEXT Dim L_CLEARDESC_TEXT Dim L_PAGETITLE g_sAction = Request.Form("Method") g_sReturnURL = Request("ReturnURL") g_sCookie= Request("Cookie")
If ( UCase(g_sAction) = "CLEAR" ) Then ClearAlert(g_sCookie) g_bAlertCleared = TRUE If ( Len(g_sReturnURL) > 0 ) Then ' ' Area Page uses ServeClose ' Call ServeClose() Response.End Else ' ' Pagelet uses top.location.refresh() ' See OnServePageletPage() End If Else g_bAlertCleared = FALSE End If
L_PAGETITLE = GetLocString("sakitmsg.dll", "&H4001002C", "")
If ( UCase(g_sAction) = "CLEAR" ) Then ' Skip getting page image and title if we just cleared it. This is the case ' when we are dealing with a pagelet. Else Call GetPageImageAndTitle(g_sCookie, g_sPageImage, g_sPageTitle, g_sPageDescription) End If If ( Len(g_sReturnURL) > 0 ) Then ' ' Area page ' g_bIsAreaPage = TRUE Call SA_TraceOut("SH_ALERTDETAILS", "Creating as Area page") Call SA_CreatePage(g_sPageTitle, g_sPageImage, PT_AREA, page) Call SA_ShowPage(page) Else ' ' Pagelet ' g_bIsAreaPage = FALSE Call SA_TraceOut("SH_ALERTDETAILS", "Creating as Pagelet") Call SA_CreatePage(g_sPageTitle, g_sPageImage, PT_PAGELET, page) Call SA_ShowPage(page) End If
Public Function OnInitPage(ByRef pageIn, ByRef EventArg) OnInitPage = TRUE
L_CLEARALERT_TEXT = GetLocString("sakitmsg.dll", "&H4001002D", "") L_ALERTVWRTITLE_TEXT = GetLocString("sakitmsg.dll", "&H4001002E", "") L_CLEARDESC_TEXT = GetLocString("sakitmsg.dll", "&H4001002F", "")
End Function
Public Function OnServeAreaPage(ByRef PageIn, ByRef EventArg) OnServeAreaPage = TRUE Call ServeAlertDetailsPage() 'Call SA_ServeBackButton(FALSE, g_sReturnURL) End Function
Public Function OnServePageletPage(ByRef PageIn, ByRef EventArg) OnServePageletPage = TRUE
If ( TRUE = g_bAlertCleared ) Then %> <script language='javascript'> function Init() { top.location.reload(); } </script> <% Else Call ServeAlertDetailsPage() End If
End Function
Private Function ServeAlertDetailsPage() ServeAlertDetailsPage = TRUE on error resume next Err.Clear Dim objAlert Dim objElementCol Dim objElement Dim strAlertSrc Dim intAlertID Dim intAlertType Dim strElementID Dim strContainerPrefix Dim varReplacementStrings Dim varReplacementStringsNone Dim bVirtualRootIsNeeded Dim returnURL
Dim objElements Dim objItem Dim arrTitle Dim arrURL Dim arrHelpText Dim blnEnabled Dim i Dim oValidator Dim oEncoder Dim strIconPath
Set oValidator = New CSAValidator Set oEncoder = New CSAEncoder
Set objAlert = GetObject("WINMGMTS:" & SA_GetWMIConnectionAttributes() & "!\\" & GetServerName & "\root\cimv2:Microsoft_SA_Alert.Cookie=" & g_sCookie ) If ( Err.Number <> 0 ) Then ServeAlertNotFound() Exit Function End If strAlertSrc = objAlert.AlertLog intAlertID = objAlert.AlertID intAlertType = objAlert.AlertType If ( Err.Number <> 0 ) Then ServeAlertNotFound() Exit Function End If
strElementID = strAlertSrc & Hex(intAlertID)
strContainerPrefix = Request.QueryString("AlertDefinitions") If ( Len(strContainerPrefix) > 0 ) Then If ( oValidator.IsValidIdentifier(strContainerPrefix) ) Then ' Valid container prefix name, use it. Else ' Invalid container prefix name Call SA_TraceOut("inc_alertdetails.asp", "Function ServeAlertDetailsPage detected invalid QueryString(AlertDefinitions) value: " & strContainerPrefix) ' Use default strContainerPrefix = "AlertDefinitions" End If Else ' Use default alert container name strContainerPrefix = "AlertDefinitions" End If
Set objElementCol = GetElements(strContainerPrefix) Set objElement = objElementCol.Item(strContainerPrefix+strElementID) If ( Err.Number <> 0 ) Then Err.Clear strContainerPrefix = "" Set objElement = objElementCol.Item(strElementID) If (Err.Number <> 0) Then ServeAlertDetailsPage = FALSE Exit Function End If End If Set objAlert = Nothing Set objElementCol = Nothing Set objElement = Nothing %> <script language="JavaScript"> function ClickClear() { document.TVData.Method.value="CLEAR"; document.TVData.submit(); } </script> <INPUT type=hidden name="Method" value=''> <INPUT type=hidden name="ReturnURL" value="<%=g_sReturnURL%>"> <INPUT type=hidden name="Cookie" value="<%=g_sCookie%>">
<% ' User Actions - keys off of AlertSource + AlertID (hex) intAlertID = Hex(intAlertID) Set objElements = GetElements(strContainerPrefix & strAlertSrc & intAlertID)
Response.Write(oEncoder.EncodeElement(g_sPageDescription)) Response.Write("<br>") Response.Write("<table class=TasksBody border=0 cellspacing=0>"+vbCrLf) Response.Flush
returnURL = g_sReturnURL If ( Len(returnURL) <= 0 ) Then returnURL = "statuspage.asp" bVirtualRootIsNeeded = TRUE Else bVirtualRootIsNeeded = FALSE End If Call SA_TraceOut(SA_GetScriptFileName(), "ReturnURL: " + returnURL)
Call SA_MungeURL(returnURL, "Tab1", GetTab1()) Call SA_MungeURL(returnURL, SAI_FLD_PAGEKEY, SAI_GetPageKey()) For Each objItem in objElements blnEnabled = true If Err <> 0 Then blnEnabled = True Err.Clear End If If blnEnabled Then Response.Write("<tr>") Response.Write("<td height=28 valign=middle> </td>") Response.Write("<td height=28 valign=middle>") strSourceName = "" strSourceName = objItem.GetProperty ("Source") If strSourceName = "" Then strSourceName = "svrapp" End If arrTitle = GetLocString(strSourceName, objItem.GetProperty("CaptionRID"), "") arrHelpText = GetLocString(strSourceName, objItem.GetProperty("DescriptionRID"), "") arrURL = objItem.GetProperty("URL") Call SA_MungeURL( arrURL, "Tab1", GetTab1()) Call SA_MungeURL( arrURL, "Tab2", GetTab2()) Call SA_MungeURL( arrURL, "Cookie", g_sCookie) Call SA_MungeURL( arrURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
Dim bEmbedded Dim sPageType bEmbedded = TRUE sPageType = objItem.GetProperty("PageType") If ( Len(sPageType) > 0 ) Then If ( UCase(sPageType) = "NORMAL" ) Then bEmbedded = FALSE End IF End If
If ( TRUE = bEmbedded ) Then If (TRUE = bVirtualRootIsNeeded) Then returnURL = m_VirtualRoot + returnURL End If If ( Left(returnURL, 1) <> "/") Then returnURL = "/" + returnURL End If %> <a class="PageBodyLink" href="JavaScript:OpenPage('<%=m_VirtualRoot%>', '<%=oEncoder.EncodeJScript(arrURL)%>', '<%=oEncoder.EncodeJScript(returnURL)%>', '<%=oEncoder.EncodeJScript(arrTitle)%>');" title=<%=oEncoder.EncodeAttribute(arrHelpText)%> onMouseOver="window.status='<%=Server.HTMLEncode(EscapeQuotes(arrHelpText))%>';return true;"> <% Else
Call SA_MungeURL( arrURL, "ReturnURL", returnURL) Call SA_TraceOut("SH_ALERTDETAILS", "Details URL: " + arrURL) %> <a class="PageBodyLink" href="JavaScript:OpenNormalPage('<%=m_VirtualRoot%>', '<%=oEncoder.EncodeJScript(arrURL) %>');" title=<%=oEncoder.EncodeAttribute(arrHelpText)%> onMouseOver="window.status='<%=Server.HTMLEncode(SA_EscapeQuotes(arrHelpText))%>';return true;"> <% End If Response.Write(oEncoder.EncodeElement(arrTitle)) Response.Write("</a>") Response.Write("</td></tr>"+vbCrLf) End If Next Response.Write("<tr><td> </td></tr>"+vbCrLf)
Set objElements = Nothing Set objItem = Nothing Response.Flush
Response.Write("<tr><td height=28 colspan=2>" & oEncoder.EncodeElement(L_CLEARDESC_TEXT)) %> </td></tr><tr><td></td><td> <a class="PageBodyLink" href="JavaScript:ClickClear();" title=<%=oEncoder.EncodeAttribute(L_CLEARALERT_TEXT)%> onMouseOver="window.status='<%=Server.HTMLEncode(SA_EscapeQuotes(L_CLEARALERT_TEXT))%>';return true;"> <%=oEncoder.EncodeElement(L_CLEARALERT_TEXT)%></a></td></tr>
<%
Response.Write("<tr><td> </td></tr>"+vbCrLf) Response.Write("<tr><td> </td></tr>"+vbCrLf) Response.Write("</table>"+vbCrLf)
%> <script> function Init() { } </script> <%
Set oValidator = Nothing Set oEncoder = Nothing
End Function
Private Function ServeAlertNotFound() ' ' If alert is not found then all we need to output ' is the default Javascript. Call SA_ServeDefaultClientScript()
End Function
Private Function ClearAlert(Cookie) on error resume next err.clear Dim objAM Dim rc
Set objAM = GetObject("WINMGMTS:" & SA_GetWMIConnectionAttributes() & "!\\" & GetServerName & "\root\cimv2:Microsoft_SA_Manager=@" ) If ( Err.Number <> 0 ) Then Call SA_TraceOut(SA_GetScriptFileName(), "Get Microsoft_SA_Manager failed: " + CStr(Hex(Err.Number)) + " " + Err.Description) Exit Function End If rc = objAM.ClearAlert(CInt(Cookie)) If rc = 0 And Err = 0 Then ClearAlert = True Else ClearAlert = False End If Set objAM = Nothing
End Function
Private Function GetPageImageAndTitle(ByVal sCookie, ByRef sImage, ByRef sTitle, sDescription) GetPageImageAndTitle = TRUE on error resume next Err.Clear Dim objAlert Dim objElementCol Dim repStrings Dim objElement Dim strAlertSrc Dim intAlertID Dim intAlertType Dim strElementID Dim strContainerPrefix Set objAlert = GetObject("WINMGMTS:" & SA_GetWMIConnectionAttributes() & "!\\" & GetServerName & "\root\cimv2:Microsoft_SA_Alert.Cookie=" & sCookie ) If ( Err.Number <> 0 ) Then sImage = "images/alert.gif" sTitle = GetLocString("sacoremsg.dll", "C02003ED", "") Exit Function End If strAlertSrc = objAlert.AlertLog intAlertID = objAlert.AlertID intAlertType = objAlert.AlertType
strElementID = strAlertSrc & Hex(intAlertID)
strContainerPrefix = Request.QueryString("AlertDefinitions") If ( Len(strContainerPrefix) <= 0 ) Then strContainerPrefix = "AlertDefinitions" End If
Set objElementCol = GetElements(strContainerPrefix) Set objElement = objElementCol.Item(strContainerPrefix+strElementID) If ( Err.Number <> 0 ) Then Err.Clear strContainerPrefix = "" Set objElement = objElementCol.Item(strElementID) If (Err.Number <> 0) Then GetPageImageAndTitle = FALSE Exit Function End If Else strAlertSrc = objElement.GetProperty("Source") End If repStrings = objAlert.ReplacementStrings sTitle = GetLocString(strAlertSrc, objElement.GetProperty("CaptionRID"), repStrings) sDescription = GetLocString(strAlertSrc, objElement.GetProperty("DescriptionRID"), repStrings) Set objAlert = Nothing Set objElementCol = Nothing Set objElement = Nothing
Select Case intAlertType Case 0 sImage = "images/alert.gif" Case 1 sImage = "images/critical_error.gif" Case 2 sImage = "images/information.gif" Case Else sImage = "images/information.gif" Call SA_TraceOut(SA_GetScriptFileName(), "Unexpected AlertType: " + CStr(intAlertType)) End Select
End Function
Private Function ServeCommonElements()
%> <script> function Init() { } </script> <% End Function %>
|