Subversion Repositories DevTools

Rev

Rev 5958 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'|                                                   |
'|                                AdminProjectStates                     |
'|                                                   |
'=====================================================
%>
<%
Option explicit
Response.Expires = 0
%>
<!--#include file="common/globals.asp"-->
<!--#include file="common/config.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/_admin_projects_common.asp"-->
<%
'------------ ACCESS CONTROL ------------------
%>
<!--#include file="_access_control_general.asp"-->
<!--#include file="_access_control_admin_pages.asp"-->
<%
'------------ VARIABLE DEFINITION -------------
Dim rsQry
Dim i
Dim LastRow
Dim aStateCollector
Dim parAction
Dim parState_id
Dim creatorAllocatedCount

'------------ CONSTANTS DECLARATION -----------
'------------ VARIABLE INIT -------------------
parAction = Request("action")
parState_id = Request("state_id")
'------------ CONDITIONS ----------------------
'----------------------------------------------
%>
<%
'--------------------------------------------------------------------------------------------------------------------------------
Sub GetStates ( aStateCollector, nProj_id )
        Dim rsQry
        
        OraDatabase.Parameters.Add "PROJ_ID", nProj_id, ORAPARM_INPUT, ORATYPE_NUMBER 
        
        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("StateList.sql"), ORADYN_DEFAULT )
        
        If rsQry.RecordCount > 0 Then
                aStateCollector = rsQry.GetRows()
        Else
                aStateCollector = NULL
        End If
        
        rsQry.Close
        Set rsQry = Nothing
        OraDatabase.Parameters.Remove "PROJ_ID"
End Sub
'--------------------------------------------------------------------------------------------------------------------------------
Sub RenderStateTypesCombo( nStateType ) 
        Dim aStateTypes, i, Selected, xx
        
        '--- Get State Types from collector
        aStateTypes = oEnumStateTypeNames.Keys

        Response.write "<select name='state_type_enum' class='form_iname' >"

        For i = 0 To UBound( aStateTypes )

        ' Select the currently selected entry
        ' Disable the "BOM CREATORS" if it has already been selected
        Selected = ""
        If aStateTypes(i) = nStateType Then 
            Selected = " selected"
        ElseIf creatorAllocatedCount > 0  AND CInt(aStateTypes(i)) = enumDB_STATE_TYPE_BOM_CREATOR Then
            Selected = " disabled"
        End If
        
        Response.write "<option value='"& aStateTypes(i) &"'" & Selected & ">"&_
                            oEnumStateTypeNames.Item ( aStateTypes(i) )  &_
                       "</option>"
    Next
    
    Response.write "</select>"
        
End Sub
'--------------------------------------------------------------------------------------------------------------------------------
Sub RenderStateSeqCombo( nProj_id, nState_seq ) 
        Dim rsQry, Selected
        
        OraDatabase.Parameters.Add "PROJ_ID", nProj_id, ORAPARM_INPUT, ORATYPE_NUMBER
        
        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("StateList.sql"), ORADYN_DEFAULT )
        
        
        Response.write "<select name='state_seq' class='form_iname'>"
        
        
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                Selected = ""
                If CInt(nState_seq) = CInt(rsQry("state_seq")) Then Selected = "selected"
                
                Response.write "<option value='"& rsQry("state_seq") &"' "& Selected &">"& rsQry("state_seq") &"</option>"
                
                rsQry.MoveNext
        WEnd
        
        
        Response.write "</select>"
        
        
        
        rsQry.Close
        Set rsQry = Nothing
        
        OraDatabase.Parameters.Remove "PROJ_ID"
End Sub
'--------------------------------------------------------------------------------------------------------------------------------
Sub AddState ()
        On Error Resume Next
        
        OraDatabase.Parameters.Add "STATE_NAME",          Request("state_name"),            ORAPARM_INPUT, ORATYPE_VARCHAR2
        OraDatabase.Parameters.Add "PROJ_ID",             Request("proj_id"),               ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "STATE_TYPE_ENUM", Request("state_type_enum"),       ORAPARM_INPUT, ORATYPE_NUMBER 
        
        
        objEH.TryORA ( OraSession )
        
        OraDatabase.ExecuteSQL _
        "BEGIN   pk_State.Add_State ( :STATE_NAME, :STATE_TYPE_ENUM, :PROJ_ID );   END;"
        
        objEH.CatchORA ( OraSession )
        
        
        OraDatabase.Parameters.Remove "STATE_NAME"
        OraDatabase.Parameters.Remove "PROJ_ID"
        OraDatabase.Parameters.Remove "STATE_TYPE_ENUM"
        
End Sub
'--------------------------------------------------------------------------------------------------------------------------------
Sub EditState ()
        On Error Resume Next
        
        OraDatabase.Parameters.Add "STATE_ID",                  Request("state_id"),            ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "STATE_NAME",                Request("state_name"),          ORAPARM_INPUT, ORATYPE_VARCHAR2
        OraDatabase.Parameters.Add "STATE_SEQ",                 Request("state_seq"),           ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "STATE_TYPE_ENUM",   Request("state_type_enum"), ORAPARM_INPUT, ORATYPE_NUMBER 
        
        
        
        objEH.TryORA ( OraSession )
        
        OraDatabase.ExecuteSQL _
        "BEGIN   pk_State.Update_State ( :STATE_ID, :STATE_NAME, :STATE_SEQ, :STATE_TYPE_ENUM );   END;"
        
        objEH.CatchORA ( OraSession )
        
        
        OraDatabase.Parameters.Remove "STATE_ID"
        OraDatabase.Parameters.Remove "STATE_NAME"
        OraDatabase.Parameters.Remove "STATE_SEQ"
        OraDatabase.Parameters.Remove "STATE_TYPE_ENUM"
        
End Sub
'--------------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------ RUN BEFORE PAGE RENDER ----------
' --- Get Form details from DB ---

' --- Load Validation Rules ---
Call objForm.LoadValidationRules ( Array("state_name"), OraDatabase )           ' Load Validation Rules

' --- Enter Form Validation Rule Changes here... ----
'----------------------------------------------------

' --- RUN onPostBack ---
If Request("doit") <> "" Then
        If objForm.IsValidOnPostBack Then
                ' --- Form is Valid ---
                
                Select Case Request("action")
                        Case "new"
                                Call AddState()
                        Case "edit"
                                Call EditState()
                        
                End Select
                
                
                If objEH.Finally Then
                        Call OpenInWindow ( SCRIPT_NAME &"?"& objPMod.ComposeURL() )
                End If
                
        End If
        
        
        
End If

'----------------------------------------------
%>
<html>
<head>
<title>Deployment 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 href="scripts/deployment_manager.css?ver=<%=VixVerNum%>" rel="stylesheet" type="text/css">
<script language="JavaScript" src="scripts/common.js?ver=<%=VixVerNum%>"></script>
</head>

<body leftmargin="0" topmargin="0" <%If parAction <> "" Then%>onLoad="FormName.state_name.focus();"<%End If%>>
<!-- HEADER ++++++++++++++++ -->
<!--#include file="_header.asp"-->
<!-- +++++++++++++++++++++++ -->
<!-- MAIN MENU  ++++++++++++++++++++++++++ -->
<!--#include file="_main_menu_admin.asp"-->
<!-- +++++++++++++++++++++++++++++++++++++ -->
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="1%" valign="top" background="images/bg_bage_0.gif">
        <!-- ADMIN BROWSER ++++++++++++++++++++++ -->
        <!--#include file="_admin_project_browser.asp"-->
    <!-- END OF ADMIN BROWSER +++++++++++++++ -->
        </td>
    <td width="1" background="images/bg_bage_1.gif"><img src="images/spacer.gif" width="1" height="600"></td>
    <td width="100%" valign="top" bgcolor="#FFFFFF">
        <table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="1%" valign="top" background="images/bg_darkbage.gif"></td>
        <td width="100%" valign="bottom" background="images/bg_darkbage.gif">
                <!-- TAB CONTROLS ++++++++++++++++++++++ -->
                <!--#include file="_tabs_definition.asp"-->
                <%
                Set objTabControl = New TabControl
                objTabControl.TemplateDoc = ReadFile( Server.MapPath("controls/ERGTabStyleWinXP/tab_style.html") ) ' Supply tab style definition
                objTabControl.TabStyle = "StyleWinXP"
                objTabControl.AddTabDefnition ( arrAdminProjectsTabDef )
                objTabControl.SelectByName ("States")
                objTabControl.Render ()
                %>
                <!-- END OF TAB CONTROLS +++++++++++++++ -->
                </td>
        <td width="1%" background="images/bg_darkbage.gif"><img src="images/img_spanner.gif" width="190" height="55"></td>
        </tr>
      <tr>
        <td background="images/bg_bage_0.gif"><img src="images/spacer.gif" width="30" height="10"></td>
        <td background="images/bg_bage_0.gif">
                <!-- BUTTONS CONTROL +++++++++++++++++++ -->
                <%
                '-- Define Action buttons on this tab
                'aTabBtnsDef = Array("abtnAddBranch")
                
                'Call LoadTabActionButtons ( aTabBtnsDef, objBtnControl )
                
                'objBtnControl.Render( aTabBtnsDef )
                %>
                <!-- +++++++++++++++++++++++++++++++++++ -->
                </td>
        <td background="images/bg_darkbage.gif"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="100%" background="images/bg_bage_0.gif">&nbsp;</td>
            <td width="1"><img src="images/p_bar_corrner.gif" width="17" height="42"></td>
          </tr>
        </table></td>
        </tr>
      <tr>
        <td>&nbsp;</td>
        <td><br><br>
        <!-- Page Warnings --------------------------------------------------------------------- -->
        <%
                  Call GetStates ( aStateCollector, parProj_id )
        '--- Need to ensure that we have ( and only one ) "BOM CREATORS"
        '    Scan all states and determine if it has been allocated
        creatorAllocatedCount = 0
        If NOT isNULL(aStateCollector) Then
            Dim xx
            For xx = LBound(aStateCollector,2) to UBound(aStateCollector,2)
                If CInt(aStateCollector(3,xx)) = enumDB_STATE_TYPE_BOM_CREATOR Then
                    creatorAllocatedCount = creatorAllocatedCount + 1 
                End If
            Next
        End If

        If creatorAllocatedCount = 0 Then
            %><p class="msg_warning">Warning: At least one state must have a 'type' of BOM CREATOR to allow the creation of new BOMs</p><%
        ElseIf creatorAllocatedCount > 1 Then
            %><p class="msg_warning">Warning: Multiple states with 'type' of BOM CREATOR</p><%
        End If

        %>
                  <!-- PAGE DETAILS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
          <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                  <form name="FormName" method="post" action="<%=SCRIPT_NAME%>" onSubmit="ShowProgress();">
            <tr>
              <td background="images/bg_bage_0a.gif"><table width="100%"  border="0" cellspacing="1" cellpadding="2">
                <tr>
                  <td width="1" background="images/bg_bage_0.gif"></td>
                  <td width="1%" background="images/bg_bage_0.gif" class="body_col" nowrap>Release Sequence</td>
                  <td width="20%" background="images/bg_bage_0.gif" class="body_col" nowrap>State Name</td>
                                  <td width="80%" background="images/bg_bage_0.gif" class="body_col" nowrap>State Type</td>
                  <td background="images/bg_bage_0.gif">&nbsp;</td>
                </tr>
                                <%
                                If NOT IsNull(aStateCollector) Then
                                        LastRow = Ubound( aStateCollector, 2 )
                                        For i = 0 To LastRow
                                        %>
                                        <%If parAction = "" Then%>
                                        <!-- NORMAL ROW +++++++++++++++++++ -->
                        <tr>
                          <td background="images/bg_bage_0.gif" align="center"></td>
                          <td bgcolor="#FFFFFF" class="body_row" nowrap><%=aStateCollector(2, i)%></td>
                          <td bgcolor="#FFFFFF" class="body_row" nowrap><%=aStateCollector(1, i)%></td>
                                          <td bgcolor="#FFFFFF" class="body_row"><%=oEnumStateTypeNames.Item( aStateCollector(3, i) )%></td>
                          <td align="center" nowrap background="images/bg_bage_0.gif"><a href="<%=SCRIPT_NAME%>?action=edit&state_id=<%=aStateCollector(0, i)%>&<%=objPMod.ComposeURL()%>"><%=LIMG_EDIT%></a><a href="_RemoveState.asp?rfile=<%=SCRIPT_NAME%>&state_id=<%=aStateCollector(0, i)%>&<%=objPMod.ComposeURL()%>" onClick="return confirmAction('Remove \'<%=aStateCollector(1, i)%>\' from this list?');"><%=LIMG_REMOVE%></a></td>
                        </tr>
                                        <!-- +++++++++++++++++++++++++++++++++ -->
                                        
                                        <%Else%>
                                                
                                                <%If CStr(aStateCollector(0, i)) <> parState_id Then%>
                                                <!-- JUST DATA ROW +++++++++++++++++++ -->
                                                <tr>
                                  <td background="images/bg_bage_0.gif" align="center"></td>
                                  <td bgcolor="#FFFFFF" class="body_row" nowrap><%=aStateCollector(2, i)%></td>
                                  <td bgcolor="#FFFFFF" class="body_row" nowrap><%=aStateCollector(1, i)%></td>
                                                  <td bgcolor="#FFFFFF" class="body_row" nowrap><%=oEnumStateTypeNames.Item( aStateCollector(3, i) )%></td>
                                  <td align="center" nowrap background="images/bg_bage_0.gif">&nbsp;</td>
                                </tr>
                                                <!-- +++++++++++++++++++++++++++++++++ -->
                                                <%Else%>
                                                <!-- EDIT ROW ++++++++++++++++++++++++ -->
                                                <input type="hidden" name="action" value="edit">
                                                <tr>
                                  <td background="images/bg_bage_0.gif" align="center" valign="top"><%=LIMG_POINTER%></td>
                                                  <td background="images/bg_note.gif" class="body_row" valign="top"><%Call RenderStateSeqCombo( parProj_id, aStateCollector(2, i) ) %></td>
                                  <td background="images/bg_note.gif" class="body_row" valign="top">
                                                  <input type="text" name="state_name" class='form_iname' value="<%=objForm.GetValue( "state_name", aStateCollector(1, i) )%>">
                                                  <%=objForm.Validate ("state_name")%>
                                                  </td>
                                  <td background="images/bg_note.gif" class="body_row" valign="top"><%Call RenderStateTypesCombo( aStateCollector(3, i) )%></td>
                                  <td background="images/bg_note.gif" align="center" valign="top" nowrap><%=LIMG_ROW_SUBMIT%><a href="<%=SCRIPT_NAME%>?<%=objPMod.ComposeURL()%>" ><%=LIMG_ROW_CANCEL%></a></td>
                                </tr>
                                                <!-- +++++++++++++++++++++++++++++++++ -->
                                                <%End If%>
                                        <%End If%>
                                        
                                        
                                <%
                                        Next
                                        
                                End If
                                %>
                                
                                
                                <!-- NEW ENTRY ROW FORM ++++++++++++++ -->
                                <%If parAction = "new" Then%>
                                
                                <input type="hidden" name="action" value="new">
                                <tr>
                  <td background="images/bg_bage_0.gif" align="center" valign="top"><%=LIMG_POINTER%></td>
                                  <td background="images/bg_note.gif" class="body_row" valign="top"></td>
                  <td background="images/bg_note.gif" class="body_row" valign="top">
                                  <input type="text" name="state_name" class='form_iname' value="<%=Request("state_name")%>">
                                  <%=objForm.Validate ("state_name")%>
                                  </td>
                  <td background="images/bg_note.gif" class="body_row" valign="top"><%Call RenderStateTypesCombo( NULL )%></td>
                  <td background="images/bg_note.gif" align="center" nowrap valign="top"><%=LIMG_ROW_SUBMIT%><a href="<%=SCRIPT_NAME%>?<%=objPMod.ComposeURL()%>" ><%=LIMG_ROW_CANCEL%></a></td>
                </tr>
                                <%End If%>
                                <!-- +++++++++++++++++++++++++++++++++ -->
                                
                                
                                <!-- NEW ENTRY BUTTON ++++++++++++++++ -->
                                <%If parAction = "" Then%>
                                <tr>
                  <td background="images/bg_bage_0.gif" align="center"><a href="<%=SCRIPT_NAME%>?action=new&<%=objPMod.ComposeURL()%>"><%=LIMG_NEW_ENTRY%></a></td>
                  <td bgcolor="#FFFFFF" class="body_row">&nbsp;</td>
                  <td bgcolor="#FFFFFF" class="body_row">&nbsp;</td>
                                  <td bgcolor="#FFFFFF" class="body_row">&nbsp;</td>
                  <td bgcolor="#FFFFFF">&nbsp;</td>
                </tr>
                                <%End If%>
                                <!-- +++++++++++++++++++++++++++++++++ -->
                                
              </table></td>
            </tr>
                  <%=objPMod.ComposeHiddenTags()%>
                  <input type="hidden" name="state_id" value="<%=parState_id%>">
                  <input type="hidden" name="doit" value="true">
                  </form>
          </table>
          </td>
        <td valign="top"></td>
        </tr>
    </table>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        </td>
  </tr>
  <tr>
    <td background="images/bg_bage_0a.gif"><img src="images/spacer.gif" width="200" height="15"></td>
    <td background="images/bg_bage_1.gif"><img src="images/spacer.gif" width="1" height="1"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="20"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
  </tr>
</table>
<!-- FOOTER ++++++++++++++++ -->
<!--#include file="_footer.asp"-->
<!-- +++++++++++++++++++++++ -->
</body>
</html>