Subversion Repositories DevTools

Rev

Rev 6877 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'
'  Build Status Information
'
'=====================================================
%>
<%
Option explicit
' Good idea to set when using redirect
Response.Expires = 0  ' always load the page, dont store
%>
<!--#include file="common/conf.asp"-->
<!--#include file="common/globals.asp"-->
<!--#include file="common/formating.asp"-->
<!--#include file="common/qstr.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/_form_window_common.asp"-->
<!--#include file="_action_buttons.asp"-->
<!--#include file="class/classActionButtonControl.asp"-->
<!--#include file="common/daemon_instructions.asp"-->
<!--#include file="common/common_daemon.asp"-->
<% '------------ ACCESS CONTROL ------------------ %>
<!--#include file="_access_control_login_optional.asp"-->
<!--#include file="_access_control_general.asp"-->
<!--#include file="_access_control_action_project.asp"-->
<% '------------ Scripts -------------------------- %>
<%
'------------ Variable Definition -------------
Dim rsQry
Dim parRtagId
Dim query_string
Dim rcon_id
Dim shref_base
Dim canControl
'------------ Constants Declaration -----------
'------------ Variable Init -------------------
parRtagId = Request("rtag_id")
objPMod.PersistInQryString("rtag_id")
canControl = canActionControlInProject("BuildControl")
'----------------------------------------------
Sub IncludePackages()

   On Error Resume Next
   objEH.ErrorRedirect = TRUE
   OraDatabase.Parameters.Add "PV_ID_LIST",  Request("pv_id_list"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
   OraDatabase.Parameters.Add "RTAG_ID",     parRtag_id,  ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId,  ORAPARM_INPUT, ORATYPE_NUMBER

   objEH.TryORA ( OraSession )
   OraDatabase.ExecuteSQL "BEGIN  Ripple_Package( :PV_ID_LIST, :RTAG_ID, :USER_ID );  END;"
   objEH.CatchORA ( OraSession )

   OraDatabase.Parameters.Remove "PV_ID_LIST"
   OraDatabase.Parameters.Remove "RTAG_ID"
   OraDatabase.Parameters.Remove "USER_ID"

End Sub
'--------------------------------------------------------------------------------------------------------------------------
'------------ RUN BEFORE PAGE RENDER ----------
shref_base = "http://" & archive_server & "/devl/abtlog/"

'----------------------------------------------------
' --- RUN onPostBack ---
If Request("action") <> "" AND objAccessControl.UserLogedIn Then

  If objEH.Finally Then
    If Request("action") = "include" Then
      Call IncludePackages ()
      ' Redirect to the current page so that a refesh will not
      ' cause a form re-submit.
      Call Destroy_All_Objects
      Response.Redirect(ScriptName & "?rtag_id=" & parRtagId)
    Else
      Call OpenInWindow ( "dependencies.asp?rtag_id="& parRtagId )
    End If
  End If

End If

'----------------------------------------------
Sub ShowBuildStatus
    <!-- FORM START -->
    objFormComponent.FormName = "FormName"
    objFormComponent.Action = ScriptName &"?rtag_id="& parRtagId
    Call objFormComponent.FormStart()
    %>
    <div>
        <div class=panel>
            <div class=rounded_box_caption>
                BUILD STATUS INFORMATION
            </div>
            <div class="rounded_box">
                <div class='rounded_box_pad listPanel'>
                    <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                    <!--#include file="messages/_msg_inline.asp"-->
                    <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                    <table width="100%" border="0" cellspacing="2" cellpadding="0">
                        <tr>
                            <td colspan=4 class='err_alert'><font size='2'><b>Packages Excluded From Build</b></font></td>
                        </tr>
                        <tr>
                        <td></td>
                        <td  colspan=3 class="body_row">
                           <fieldset class="fset" align="right" style=" border: 1px groove;">
                                Show
                                <input type="checkbox" checked value=0 name="showManual"   id="manualCause"   onClick="toggleDispClass('manualCause',1);">Manual Exclusions
                                <input type="checkbox" checked value=0 name="showCause"    id="rootCause"     onClick="toggleDispClass('rootCause',1);">Config Errors
                                <input type="checkbox" checked value=0 name="showNoEnv"    id="rootNoEnv"     onClick="toggleDispClass('rootNoEnv',1);">Env Errors
                                <input type="checkbox" checked value=0 name="showFile"     id="rootFile"      onClick="toggleDispClass('rootFile',1);">Build Errors
                                <input type="checkbox" checked value=0 name="showIndirect" id="rootIndirect"  onClick="toggleDispClass('rootIndirect',1);">Indirect Exclusions
                           </fieldset>
                           </td>
                        </tr>

                       <tr>
                          <td class="head err_alert">Directly</td>
                          <td class='head'>Package</td>
                          <td class='head'>Version</td>
                          <td class='head'>Root Cause</td>
                       </tr>
                       <tr>
       <%
       query_string = " select pkg.pkg_name, pv.pkg_version, pv.pv_id, dnr.rtag_id, dnr.root_cause, dnr.root_file, pv.pv_description, dnr.root_pv_id"&_
                      "   from do_not_ripple dnr, package_versions pv, packages pkg"&_
                      "  where dnr.rtag_id = "& parRtagId &_
                      "    and pv.pv_id    = dnr.pv_id"&_
                      "    and pkg.pkg_id  = pv.pkg_id"&_
                      "    and nvl(dnr.root_pv_id, -1) < 0 " &_
                      "  order by pkg_name"
       Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
       '--- Render rows ---
       Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
        Dim rowClass
        Dim rowData
        '
        ' Manually excluded packages have no root_cause or root_file or root_pv_id
        '
        ' root_file, if supplied, indicates a build failure log file exists
        ' this should always prevail over the textual root_cause
        '
        If (IsNull(rsQry("root_file")) AND IsNull(rsQry("root_cause"))) Then
            rowData = "Manually Excluded"
            rowClass = "manualCause"

        ElseIf IsNull(rsQry("root_file")) Then
           rowData = rsQry("root_cause")
           If InStr(rowData, "no build env") Then
               rowClass = "rootNoEnv"
           Else
               rowClass = "rootCause"
           End If

        Else
            rowClass = "rootFile"
            rowData = "<a class=""txt_linked"" title=""" & rsQry("root_file") &_
                      " Log file may have expired."" " &_
                      "href=""" & shref_base & rsQry("root_file") & """>" &_
                      "Build Failure Log File</a>"
        End If

        Dim checkBoxData, checkBoxClass
        If NiceInt(rsQry("root_pv_id"), -1) = -1   Then
            checkBoxData = ""
            checkBoxClass = "directInclude"
        Else
            checkBoxData = "disabled"
            checkBoxClass = ""    
        End If

       %>
          <tr class=" border <%=rowClass%>">
             <td nowrap width="1%">
                <a name="PkgName_<%=rsQry("pkg_name")%>">
                <input class="<%=checkBoxClass%>" type="checkbox" value="<%=rsQry("pv_id")%>" name="pv_id_list" <%=checkBoxData%>>
                </a>
             </td>
             <td><a class="txt_linked" href="dependencies.asp?pv_id=<%=rsQry("pv_id")%>&rtag_id=<%=rsQry("rtag_id")%>" title="<%=rsQry("pv_description")%>"><%=rsQry("pkg_name")%></a></td>
             <td><%=rsQry("pkg_version")%></td>
             <td><%=rowData%></td>
          </tr>
       <%
        rsQry.MoveNext
       Loop

       query_string = " select pv.pv_id, pkg.pkg_name, pv.pkg_version, qkg.pkg_name, dnr.rtag_id, pv.pv_description"&_
                      "   from do_not_ripple dnr, package_versions pv, package_versions qv, packages pkg, packages qkg"&_
                      "  where dnr.rtag_id = "& parRtagId &_
                      "    and pv.pv_id    = dnr.pv_id"&_
                      "    and pkg.pkg_id  = pv.pkg_id"&_
                      "    and qv.pv_id    = dnr.root_pv_id"&_
                      "    and qkg.pkg_id  = qv.pkg_id"&_
                      "    and nvl(dnr.root_pv_id, -1) > 0"&_
                      "  order by pkg.pkg_name"
       Dim rsQry2
       Set rsQry2 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
       ' -- DISPLAY INDIRECTLY EXCLUDED PACKAGES
       '--- Render rows ---
        If rsQry2.recordCount > 0    Then 
        %>
          <tr>
          <td class='head err_alert'>Indirectly</td>
          <td class='head'>Package</td>
          <td class='head'>Version</td>
          <td class='head'>Root Cause Package</td>
          </tr>
       <%
        End If
       Do While (NOT rsQry2.BOF) AND (NOT rsQry2.EOF)%>
          <tr class=" border rootIndirect">
             <td><input type="checkbox" value=0 disabled=true name="notused"></td>
             <td><a class="txt_linked" href="dependencies.asp?pv_id=<%=rsQry2(0)%>&rtag_id=<%=rsQry2(4)%>" title="<%=rsQry2(5)%>"><%=rsQry2(1)%></a></td>
             <td><%=rsQry2(2)%></td>
             <td><a href="#PkgName_<%=rsQry2(3)%>" style="text-decoration: none;">&raquo;&nbsp;<%=rsQry2(3)%></a></td>
          </tr>
          <%
          rsQry2.MoveNext
       Loop%>
         <tr class=foot>
             <td><input id="toggleDirect" 
                        <%=Iif(rsQry.RecordCount > 0, "", " disabled ")%>
                        type="checkbox" title="Toggle all visible directly excluded packages"></td>
             <td colspan=3 class="right">
                <%
                Response.Write(objFormComponent.SubmitButton ( "Include", "name='IncludeSubmit' id='IncludeSubmit' class='form_btn' disabled style='color:silver' onClick=""return vixConfirm('Are you sure you want to include these packages for building?',{title:'Include Packages', post : 'FormName'})""" ))
                %>
             </td>
         </tr>
     </table>
    </div>
    </div>
    </div>
    </div>
    <!-- ACTION BUTTONS ---------------------------------------------->
    <input type="hidden" name="action" value="include">
    <!-- ACTION BUTTONS END  ------------------------------------------>
    <%Response.Write(objPMod.ComposeHiddenTags())%>
    <%Call objFormComponent.FormEnd()%>
    <!-- FORM END ----------------------------------------------------->
    <%
    rsQry.Close()
    Set rsQry = nothing
    rsQry2.Close()
    Set rsQry2 = nothing
End Sub
'-------------------------------------------------
' 
Sub ShowDaemonStatus
%>
<div>
    <div class="panel">
        <div class=rounded_box_caption>
                <table align="center" class="full_table">
                   <tr>
                      <td nowrap class="form_ttl"><p>DAEMON STATUS INFORMATION</p>
                      </td>
                      <td  valign="bottom" class="body_rowg">
                        Last Build: <%=GetLastBuildAge(parRtagId)%> [<%=GetModifiedSeqNo(parRtagId)%>]
                      </td>
                      <td align="right" valign="bottom">
                        <a class="txt_linked" href="<%=scriptName%>?rtag_id=<%=parRtagId%>" title="Refresh Page">[Refresh]</a>
                      </td>
                   </tr>
                </table>
        </div>
        <div class='rounded_box'>
            <div  class=listPanel>
                <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                <!--#include file="messages/_msg_inline.asp"-->
                <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                <table width="100%" border="0" cellspacing="2" cellpadding="0">
                   <%
                   Dim bInactiveMachine : bInactiveMachine = false
                   Dim indefinitelyPaused : indefinitelyPaused = Indefinitely_Paused()
                   ' Insert a warning into the page if the build daemons are indefintely paused.
                   If indefinitelyPaused Then %>
                      <tr>
                         <span class='err_alert'>
                            <font size='2'><b>WARNING: Build Daemons are all stopped - please contact an administrator</b></font>
                         </span>
                      </tr>
                   <%End If
                   %>
                   <td width="9%" valign="top"></td>
                   <thead>
                      <th>Daemon Host</th>
                      <th>Machine Type</th>
                      <th>Mode</th>
                      <th>Run Level</th>
                      <th>Current Package</th>
                      <th>Est Duration<%=Quick_Help("h_buildtime")%></th>
                      <th>Last Change<%=Quick_Help("h_lastchange")%></th>
                      <th>Control State</th>
                   </thead>
                   <%
                   ' Get Build Information for this Release
                   query_string = _
                        "SELECT rc.rcon_id, display_name, gbe_value, daemon_mode, NVL(ACTIVE, 'U') AS ACTIVE," &_
                        "       rl.pause, rl.current_run_level, rl.current_pkg_id_being_built, TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) AS delta," &_
                        "       pk.pkg_name, rl.current_pv_id, pv.build_time, TRUNC (86400*(SYSDATE - rl.LAST_BUILD)) AS build_delta" &_
                        " FROM release_config rc," &_
                        "   gbe_machtype gm," &_
                        "   build_machine_config bm," &_
                        "   run_level rl," &_
                        "   packages pk," &_
                        "   package_versions pv" &_
                        " WHERE rc.rtag_id     = " & parRtagId &_
                        "  AND gm.gbe_id        = rc.gbe_id" &_
                        "  AND rl.rcon_id(+)    = rc.rcon_id" &_
                        "  AND rc.bmcon_id      =bm.bmcon_id(+)" &_
                        "  AND pk.pkg_id(+)     = rl.current_pkg_id_being_built" &_
                        "  AND rl.current_pv_id = pv.pv_id(+)" &_
                        " ORDER BY bm.display_name, rc.rcon_id"

                   Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )

                   Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                      Dim pkgName
                      Dim pkgPvid
                      Dim pkgBuildTime
                      Dim currentRunLevel
                      Dim daemonState
                      Dim delta
                      Dim PkgBuildDelta
                      Dim pkgId
                      Dim bActive
                      Dim estDuration
                      Dim daemonMode 
                      Dim lastChange

                      rcon_id = rsQry("rcon_id")
                      ' = rsQry("display_name")
                      ' = rsQry("gbe_value")
                      daemonMode = rsQry("daemon_mode")
                      bActive = rsQry("ACTIVE")
                      daemonState = rsQry("pause")
                      currentRunLevel = rsQry("current_run_level")
                      pkgId = rsQry("current_pkg_id_being_built")
                      delta = rsQry("delta")
                      pkgName = rsQry("pkg_name")
                      pkgPvid = rsQry("current_pv_id")
                      pkgBuildTime = rsQry("build_time")
                      PkgBuildDelta = rsQry("build_delta")
                      lastChange = NULL
                      estDuration = NULL

                      If bActive = "N" Then bInactiveMachine = true
                      If IsNull(daemonState) Then daemonState = 0
                      If daemonState = "2" Then pkgId = Null
                      If IsNull(currentRunLevel) Then currentRunLevel = -1
                      If daemonMode = "M" AND not IsNull(pkgName) Then estDuration = pkgBuildTime & "[" & PkgBuildDelta & "]"
                      If bActive <> "U" Then lastChange = PrettyDelta(delta, daemonState,pkgName )

                      ' --- Now render HTML for this release configuration ---
                      %>
                      <tr class=border>
                         <td><%=rsQry("display_name")%></td>
                         <td><%=rsQry("gbe_value")%></td>
                         <td><%=Get_Daemon_Mode(daemonMode)%></td>
                         <td><%=Get_Run_Level(currentRunLevel, indefinitelyPaused, daemonState, bActive)%></td>
                         <td><%=Get_Package_Name(pkgName,parRtagId,pkgPvid, daemonState, bActive)%></td>
                         <td><%=estDuration%></td>
                         <td><%=lastChange%></td>
                         <td>
                            <%
                            If NOT indefinitelyPaused  Then
                                If bActive = "U" Then
                                ElseIf bActive = "N" Then
                                    Call Action_Buttons ( "Daemon Unavailable" )
                                ElseIf daemonState = 0 Then
                                    Call Action_Buttons_State ( "Daemon Pause", canControl )
                                ElseIf daemonState = 1 Then
                                    Call Action_Buttons_State ( "Daemon Resume", canControl )
                                ElseIf daemonState = 2 Then
                                    Call Action_Buttons_State ( "Daemon Start", canControl )
                                Else
                                    Call Action_Buttons_State ( "Daemon Resume", canControl )
                              End If
                            Else
                               %>Unavailable<%
                            End If
                            %>
                         </td>
                      </tr>
                      <%
                      rsQry.MoveNext
                   Loop
                   %>
                   <tr class=foot>
                     <td colspan=7>
                     <%If CheckConfigErrors(parRtagId) OR bInactiveMachine Then%><span class="err_alert">&nbsp;Daemon configuration errors detected</span>
                        <a class="txt_linked" href="release_config.asp?rtag_id=<%=parRtagId%>">
                            <img src="images/i_link.gif" hspace="2" border="0" align="absmiddle" title="Goto Configuration">
                        </a>
                     <%End If%>
                     </td>
                     <td>
                     <%
                       If (rsQry.RecordCount > 0) AND NOT indefinitelyPaused Then
                           Call Action_Buttons_State ( "Daemon Control All", objAccessControl.UserLogedIn AND canControl )
                       Else
                         %>&nbsp<%
                       End If
                     %>
                     </td>
                   </tr>
                   <%
                     rsQry.Close()
                     Set rsQry = nothing
                   %>
                </table>
            </div>
        </div>
    </div>
</div>
<%
End Sub
'-------------------------------------------------
'
Sub ShowDaemonInstructions
%>
<!-- Daemon Instructions Display -->
<div>
    <div class=panel>
        <div class=rounded_box_caption>
            DAEMON INSTRUCTIONS FOR THIS RELEASE
        </div>
            <div class='rounded_box'>
                <div class=listPanel>
                    <table width="100%" border="0" cellspacing="2" cellpadding="0">
                       <thead>
                          <th>Operation</th>
                          <th>Package</th>
                          <th>Version</th>
                          <th>Scheduled Time<%=Quick_Help("SchedTime")%>
                          <th>Repeat</th>
                          <th>In Progress</th>
                       </thead>
                       <%
                       Dim PkgVersion
                       Dim UserName
                       Dim UserEmail
                       Dim bInProgress
                       Dim bIsOverdue
                       Dim bIsReady

                       Set rsQry = OraDatabase.DbCreateDynaset( "SELECT DAEMON_INSTRUCTIONS_ID,"&_
                                                              "       OP_CODE,"&_
                                                              "       RTAG_ID,"&_
                                                              "       PV_ID,"&_
                                                              "       SCHEDULED_DATETIME,"&_
                                                              "       REPEAT_SECS,"&_
                                                              "       ADDED_DATETIME,"&_
                                                              "       USER_ID,"&_
                                                              "       IN_PROGRESS,"&_
                                                              "       (CASE WHEN SCHEDULED_DATETIME <= SYSDATE THEN 1 ELSE 0 END) AS READY,"&_
                                                              "       (CASE WHEN (SCHEDULED_DATETIME + (1/144)) < SYSDATE THEN 1 ELSE 0 END) AS OVERDUE"&_
                                                              "  FROM DAEMON_INSTRUCTIONS "&_
                                                              "  WHERE RTAG_ID = "& parRtagId &_
                                                              "  ORDER BY PV_ID, SCHEDULED_DATETIME, DAEMON_INSTRUCTIONS_ID", ORADYN_DEFAULT )
                       While (NOT rsQry.BOF) AND (NOT rsQry.EOF)

                          If IsNull(rsQry("IN_PROGRESS")) OR rsQry("IN_PROGRESS") = "0" Then
                             bInProgress = False
                          Else
                             bInProgress = True
                          End If

                          ' only flag as overdue if time threshold has been met but the daemon has not marked the instruction as being in progress.
                          If rsQry("OVERDUE") AND NOT bInProgress Then
                             bIsOverdue = True
                          Else
                             bIsOverdue = False
                          End If

                          If rsQry("READY") Then
                             bIsReady = True
                          Else
                             bIsReady = False
                          End If

                          ' Get as much info about the package as we can
                          Dim PkgId: PkgId = 0
                          Dim PkgName : PkgName = "N/A"
                          If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then
                             Call Get_Pkg_Short_Info(rsQry("PV_ID"), PkgId, PkgName, PkgVersion, NULL, NULL, NULL)
                          End If
                          %>
                          <tr class=border>
                             <td>
                                <%=DaemonInstructionOperationName(rsQry("OP_CODE"))%>
                             </td>

                             <td>
                                <%If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then%>
                                   <a href='fixed_issues.asp?rtag_id=<%=rsQry("RTAG_ID")%>&pv_id=<%=rsQry("PV_ID")%>'><%=PkgName%>
                                <%Else%>
                                   <%=PkgName%>
                                <%End If%>
                             </td>

                             <td >
                                <%=PkgVersion%>
                             </td>

                             <td <%If bIsOverdue Then%>style=color:Red<%Elseif bIsReady Then%>style=color:Green<%End If%>><%=DisplayDateTime(rsQry("SCHEDULED_DATETIME"))%></td>

                             <td><%=DaemonInstructionRepeatString(rsQry("OP_CODE"), rsQry("REPEAT_SECS"))%></td>

                             <td>
                                <%If bInProgress Then%>
                                   YES
                                <%Else%>
                                   NO
                                <%End If%>
                             </td>
                          </tr>
                          <%
                          rsQry.MoveNext()
                       Wend
                       rsQry.Close()
                       Set rsQry = nothing
                       %>
                    </table>
                </div>
            </div>
    </div>
</div>
<%
End Sub
%>
<html>
   <head>
      <title>Release Manager</title>
      <link rel="shortcut icon" href="<%=FavIcon%>"/>
      <meta http-equiv="Pragma" content="no-cache">
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css">
      <link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css">
      <script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script>
      <!--#include file="_jquery_includes.asp"-->
      <!-- TIPS -->
      <script type="text/javascript" src="scripts/json2.js?ver=<%=VixVerNum%>"></script>
      <script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script>
      <script language="JavaScript" src="images/_help_tips.js?ver=<%=VixVerNum%>"></script>
      <script language="JavaScript" type="text/JavaScript">
      formTips.tips.h_buildtime       = stdTip(300, 'Est. Build Duration', 'Estimated build duration in seconds. Based simply on the last build duration for this package');

      formTips.tips.h_lastchange       = stdTip(300, 'Last Change', 'This is an indication of the time since the daemon interogated the database.' +
                                                                  '<p>Short times will be shown as seconds. Longer times will be shown as a time within ' + 
                                                                  'the last 24 hours. Longer times will be shown as a date.' 
                                                                  );
      </script>
    <script language="JavaScript" type="text/JavaScript">
    $(document).ready(function() {
        //
        //  Init the check boxes
        InitShow();
        isChecked('pv_id_list','IncludeSubmit');

<% If objAccessControl.UserLogedIn Then %>
        // Attach function to toggle checkbox
        // toggle all visible checkboxes
         $('#toggleDirect').click(function(){
            var state = this.checked;
            var list = $('.directInclude:visible:enabled');
            list.prop('checked', state);
            isChecked('pv_id_list','IncludeSubmit');
         });

         $('.directInclude').click(function(){
             isChecked('pv_id_list','IncludeSubmit');
         });
<%Else%>
        {
        // Not logged in - disable boxes
        var list = $('.directInclude');
            list.prop('disabled', true);
         $('#toggleDirect').prop('disabled', true);    
        }
<%End If%>

    });

    function InitShow(e)
    {
        toggleDispClass('rootCause',0);
        toggleDispClass('rootNoEnv',0);
        toggleDispClass('rootFile',0);
        toggleDispClass('rootIndirect',0);
        toggleDispClass('manualCause',0);
    }

    function toggleDispClass(cname,flip)
    {
        var cookieName = 'RELMGR_BUILDSTATUS';
        var cv = JSON.parse(getCookie(cookieName));
        if (!cv)
            cv = new Object;
        if (!cv.BuildStatus)
            cv.BuildStatus = new Object;

        var state = cv.BuildStatus[cname];
        if (state === undefined)
            state = true;

        if (flip>0)
            state = !state;

        cv.BuildStatus[cname] = state;

        // Reflect the current state in the checkbox
        var de = document.getElementById(cname);
        if (de)
            de.checked = state;

        var elements = new Array();
        elements = getElementsByClassName(cname);
        for(i in elements ){
            if (state) {
                elements[i].style.display = "";
            }
            else {
                elements[i].style.display = "none";
            }
        }
        setCookie(cookieName, JSON.stringify(cv), 365 );
    }

    </script>
      <!-- DROPDOWN MENUS -->
      <!--#include file="_menu_def.asp"-->
      <script language="JavaScript1.2" src="images/popup_menu.js?ver=<%=VixVerNum%>"></script>
   </head>
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
      <!-- HEADER -->
      <!--#include file="_header.asp"-->
      <!-- BODY ---->
      <table class="full_table">
         <tr>
            <td width="146px" class="bg_panel" valign="top">
                <%Call BuildMenuPane%>
            </td>
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
                <%Call ShowBuildStatus%>
                <%Call ShowDaemonStatus%>
                <%Call ShowDaemonInstructions%>
            </td>
         </tr>
         <tr>
            <td class="bg_panel_btm" height="350">
                <img src="images/img_gears.png" vspace="20" hspace="30"></td>
         </tr>
      </table>
      <!-- FOOTER -->
      <!--#include file="_footer.asp"-->
   </body>
</html>