Subversion Repositories DevTools

Rev

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

<%
'=====================================================
'|                                                   |
'|                 RELEASE NOTES                     |
'|                                                   |
'=====================================================
%>
<!-- Required to support jiraIssues.vbs -->
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/base64encode.vbs"></SCRIPT> 
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/jiraIssues.vbs"></SCRIPT> 
<%
'------------ Variable Definition -------------
Dim rsCQ
Dim rsDepIss
Dim SQLstr
Dim fixedIssDict
Dim notesIssDict
Dim issArr()
Dim depIssDict
Dim sDocTitle
Dim rsQry, rsTemp
Dim iss_db_id, G1_template, G1_style, currG1
Dim retVal
Dim baseURL
Dim rsProjId
Dim rsPkgMetrics
Dim rsCodeReviewURL
Dim vcsInfoCollector
'------------ Constants Declaration -----------
Const enumLoc_iss_db = 0
Const enumLoc_iss_id = 1
Const enumLoc_iss_num = 2
Const enumLoc_summary = 3
Const enumLoc_status = 4
Const enumLoc_priority = 5
Const enumLoc_issue_type = 6
'------------ Variable Init -------------------
Set fixedIssDict = CreateObject("Scripting.Dictionary")
Set notesIssDict = CreateObject("Scripting.Dictionary")
Set depIssDict = CreateObject("Scripting.Dictionary")
Set vcsInfoCollector = CreateObject("Scripting.Dictionary")
'----------------------------------------------
%>
<!-- Local Java Script -->
<script language="JavaScript">
//  Local Tips
formTips.tips.following       = stdTip(200, 'Following', 'The user may \'follow\' a package in one or more Projects.<p>When the package is released the user will be notified by email.' );
formTips.tips.ripple_stop     = stdTip(200, 'Ripple Stop', 'When set, will prevent the package being rippled. May be cleared to allow the ripple to continue.<p>If marked as \'Persistent\', then each new version will be marked to prevent rippling.' );
formTips.tips.PreviousVcsTag  = newTip(-150, 20, 200, 10, 'PREVIOUS VCS TAG','This is the vcs tag of the immediate ancestor version to the current package version.'+
                                       '<br><br>NOTE:<br>Derivation of this has no sensitivity to the selected release.');
formTips.tips.PreviousSignificantVcsTag= newTip(-150, 20, 200, 10, 'PREVIOUS SIGNIFICANT VCS TAG',
                                                       'This is the vcs tag of the ancestor version immediately preceding a significant (non-ripple) change that led to the current package version.'+
                                                       '<br><br>NOTE:<br>Derivation of this has no sensitivity to the selected release.');

formTips.tips.PreviousNonRippleVcsTag= newTip(-150, 20, 200, 10, 'PREVIOUS NON RIPPLE VCS TAG',
                                                       'This is the vcs tag of the preceding significant (non-ripple) change that led to the current package version.'+
                                                       '<br><br>NOTE:<br>Derivation of this has no sensitivity to the selected release.');
formTips.tips.CreationHints= newTip(-150, 20, 200, 10, 'HINTS FOR PACKAGE CREATION',
                                                       'These are not correct commands. They are command hints to assist in creating a new package.');
formTips.tips.BuildOwner= newTip(-150, 20, 200, 10, 'BUILD OWNER',
                                                       'The Build Owner will be notified of Build Failures when a new package-version fails to build.' +
                                                        '<p>The Build Owner is set to the person who created the new version or who released the version to the build system by setting its state to Pending.');



</script>
<%
'----------------------------------------------------------------------------------------------------------------------------------------
Function asDepIss ( SSiss_db_id, SScolumn )
   If NOT depIssDict.Exists (SSiss_db_id) Then Exit Function

   asDepIss = issArr ( SScolumn, CInt( depIssDict.Item (SSiss_db_id) ) )
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function FixedIssues ( parPv_id )
   Dim sqlstr, rsTemp
   sqlstr = "SELECT pv_id FROM cq_issues WHERE pv_id = "& parPv_id &" AND iss_state = "& enumISSUES_STATE_FIXED
   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))

   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
      FixedIssues = TRUE
   Else
      FixedIssues = FALSE
   End If

   rsTemp.Close()
   Set rsTemp = nothing
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Package_Information ( nPv_id )
   SQL_Package_Information = _
   " SELECT *"&_
   "   FROM PACKAGE_VERSIONS pv"&_
   "  WHERE pv.pv_id = "& nPv_id
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Dependency_Issues ( NNpv_id )
   SQL_Dependency_Issues = _
   " SELECT pkg.pkg_name, pv.pkg_version, pv.pv_id, cqi.iss_db, cqi.iss_id, cqi.iss_state, pv.comments AS reasons"&_
   "     FROM cq_issues cqi,"&_
   "          package_dependencies dep,"&_
   "          packages pkg,"&_
   "          package_versions pv"&_
   "    WHERE dep.pv_id = "& NNpv_id &_
   "      AND dep.dpv_id = cqi.pv_id(+)"&_
   "      AND dep.dpv_id = pv.pv_id(+)"&_
   "      AND pv.pkg_id = pkg.pkg_id"&_
   "   ORDER BY UPPER(pkg.pkg_name) ASC, cqi.iss_state DESC"
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Additional_Notes ( nPv_id )
   SQL_Additional_Notes = ReadFile( rootPath & "queries\additional_notes.sql" )
   SQL_Additional_Notes = Replace( SQL_Additional_Notes, ":PV_ID", nPv_id )
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Unit_Tests ( nPv_id )
   SQL_Unit_Tests = ReadFile( rootPath & "queries\unit_tests.sql" )
   SQL_Unit_Tests = Replace( SQL_Unit_Tests, ":PV_ID", nPv_id )
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
' Function returns the number of imported clearquest issues
' and builds a string suitable for querying the clearquest issues database
Function Get_Package_Issues ( NNpv_id, SSsql, DDfixedIss, DDnotesIssDict, nIssState )
   Dim rsTemp, sqlstr, DEVIiss, retVal

   If IsObject(DDfixedIss) Then
      ' Find this package issues
      sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &"  AND iss_state = "& nIssState
   Else
      ' Find dependency issues
      sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE  pv_id IN ( "&_
               " SELECT dpv_id FROM package_dependencies WHERE pv_id = "& NNpv_id &_
               " )"
   End If

   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
   retVal = rsTemp.RecordCount

   DEVIiss  = "-1"

   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
      If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
         DEVIiss = DEVIiss &","& rsTemp("iss_id")
      End If

      If IsObject(DDfixedIss) Then
         ' Store only Fixed Issues
         If CInt(rsTemp("iss_state")) = CInt(enumISSUES_STATE_FIXED) AND _
           DDfixedIss.Exists(Cstr(rsTemp("iss_db") &"."& rsTemp("iss_id"))) = false Then DDfixedIss.Add Cstr(rsTemp("iss_db") &"."& rsTemp("iss_id")), ""
      End If

      If IsObject(DDnotesIssDict) Then
         ' Store Notes
         If Not IsNull(rsTemp("notes")) AND (rsTemp("notes") <> "") AND _
           DDnotesIssDict.Exists(Cstr(rsTemp("iss_db") &"."& rsTemp("iss_id"))) = false Then DDnotesIssDict.Add Cstr(rsTemp("iss_db") &"."& rsTemp("iss_id")), Cstr(rsTemp("notes"))
      End If

      rsTemp.MoveNext
   WEnd

   ' Construct SQL statement for CQ database
   SSsql = ReadFile( rootPath & "queries\cq_issues.sql" )
   SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
   SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)

   rsTemp.Close()
   Set rsTemp = nothing

   Get_Package_Issues = retVal

End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Sub LastPvId (PvId)
   Dim sqlstr

   sqlstr = "SELECT pv_id, pkg_version, comments, last_pv_id FROM PACKAGE_VERSIONS WHERE PV_ID= "& PvId

   Set rsQry = OraDatabase.DbCreateDynaset( sqlstr, cint(0) )

End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function  Get_CQ_Issues ( SSsql, OOrsCQ )

   On Error Resume Next
   Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
   Get_CQ_Issues = Err.Number

End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function Get_Dependency_CQ_Issues ( SSsql, OOrsCQ, DDdepIss, AAiss )
   Dim recCnt

   On Error Resume Next
   Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))

   ' Exit with error if error occurs
   Get_Dependency_CQ_Issues = Err.Number
   If Err.Number <> 0 Then Exit Function

   recCnt = 1

   While ((NOT OOrsCQ.BOF) AND (NOT OOrsCQ.EOF))
      ReDim Preserve AAiss( 6, recCnt )
      'If NOT DDdepIss.Exists Cstr(rsTemp("iss_db") &"."& rsTemp("iss_id")) Then
         DDdepIss.Add Cstr(OOrsCQ("iss_db") &"."& OOrsCQ("iss_id")), Cstr(recCnt)
      'End If
      AAiss( enumLoc_iss_db, recCnt )    = OOrsCQ("iss_db")
      AAiss( enumLoc_iss_id, recCnt )    = OOrsCQ("iss_id")
      AAiss( enumLoc_iss_num, recCnt )   = OOrsCQ("iss_num")
      AAiss( enumLoc_summary, recCnt )   = OOrsCQ("summary")
      AAiss( enumLoc_status, recCnt )    = OOrsCQ("status")
      AAiss( enumLoc_priority, recCnt )    = OOrsCQ("priority")
      AAiss( enumLoc_issue_type, recCnt ) = OOrsCQ("issue_type")

      recCnt = recCnt + 1
      OOrsCQ.MoveNext
   WEnd

   OOrsCQ.Close()
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Sub Group_By ( rsG, styleG, currG )
   If rsG = currG Then Exit Sub
   Response.write styleG
   'currG = rsG
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Sub CheckUnitTestsState ( nPv_id, outMSG, outMSG_ID, outNote, outTestsFound )
   Dim sqlstr, rsTemp
   sqlstr = ReadFile( rootPath & "queries\unit_test_entries_check.sql" )
   sqlstr = Replace( sqlstr, ":PV_ID", nPv_id)
   sqlstr = Replace( sqlstr, ":enumTEST_TYPE_NOT_DONE", enumTEST_TYPE_NOT_DONE)

   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))

   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
      outMSG = rsTemp("msg")
      outMSG_ID = CInt(rsTemp("msg_id"))
      outNote = rsTemp("test_summary")
      outTestsFound = FALSE

      If IsNull(rsTemp("msg")) Then outTestsFound = TRUE
   End If

   rsTemp.Close()
   Set rsTemp = nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function FormatAccepted ( sAccepted, nTest_id )
   Dim tempSTR
   If IsNull(nTest_id) Then Exit Function

   tempSTR = ""

   If pageIsEditable Then
      tempSTR = "<select name='acc"& nTest_id &"' class='form_item'>"
   Else
      tempSTR = "<select name='acc"& nTest_id &"' class='form_item' disabled>"
   End If

   If sAccepted = enumUNIT_TEST_ACCEPTED Then
      tempSTR = tempSTR  &"<option></option>"&_
                     "<option value='"& enumUNIT_TEST_ACCEPTED &"' SELECTED>Yes</option>"&_
                     "<option value='"& enumUNIT_TEST_NOTACCEPTED &"'>No</option>"

   ElseIf sAccepted = enumUNIT_TEST_NOTACCEPTED Then
      tempSTR = tempSTR  &"<option></option>"&_
                     "<option value='"& enumUNIT_TEST_ACCEPTED &"'>Yes</option>"&_
                     "<option value='"& enumUNIT_TEST_NOTACCEPTED &"' SELECTED>No</option>"

   Else
      tempSTR = tempSTR  &"<option SELECTED></option>"&_
                     "<option value='"& enumUNIT_TEST_ACCEPTED &"'>Yes</option>"&_
                     "<option value='"& enumUNIT_TEST_NOTACCEPTED &"'>No</option>"

   End If

   tempSTR = tempSTR & "</select>"

   FormatAccepted = tempSTR

End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_CodeReview ( nPv_id )
   SQL_CodeReview = _
   "   SELECT cr.date_of_review, cr.time_spent, cr.review_reason, cr.rteam_domain_expert,"&_
   "          cr.rteam_language_expert, cr.rteam_peer_developer, cr.rteam_author,"&_
   "          cr.files_reviewed, cr.review_results, cr.issues_raised,"&_
   "          cr.review_comments, cr.fnc_s_meets_functionality,"&_
   "          cr.fnc_c_meets_functionality"&_
   "     FROM code_reviews cr"&_
   "    WHERE cr.pv_id = "& nPv_id
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Env ( nPv_id )
   SQL_Build_Env = _
   " SELECT pv.*, bm.BM_ID,"&_
   "         bm.BM_NAME,"&_
   "         pkgbinfo.BSA_ID,"&_
   "         bsa.BSA_NAME"&_
   "     FROM PACKAGE_BUILD_INFO pkgbinfo,"&_
   "           BUILD_MACHINES bm,"&_
   "           PACKAGE_VERSIONS pv,"&_
   "           BUILD_STANDARDS_ADDENDUM bsa"&_
   "    WHERE pkgbinfo.BM_ID = bm.BM_ID"&_
   "    AND pv.PV_ID = pkgbinfo.PV_ID"&_
   "      AND pkgbinfo.PV_ID = "& nPv_id  &_
   "      AND pkgbinfo.BSA_ID = bsa.BSA_ID"&_
   "   ORDER BY UPPER(bm.BM_NAME) "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function DecodeOverallResult ( ByVal cCheck )
   If cCheck = "" OR IsNull(cCheck) Then cCheck = 0

   Select Case CInt( cCheck )
      Case enumCODE_REVIEW_ACCEPTED
         DecodeOverallResult = "Accepted"
      Case enumCODE_REVIEW_MINOR_UPDATES
         DecodeOverallResult = "Minor updates required"
      Case enumCODE_REVIEW_MAJOR_REWORK
         DecodeOverallResult = "Major rework required"
      Case Else
         DecodeOverallResult = ""
   End Select

End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function GetBuildType ( nBuildType, nBuildName )

   if (IsNull(nBuildType) OR (nBuildType = "")) Then
       GetBuildType = "Build type not defined"
   ElseIf (IsNull(nBuildName) OR (nBuildName = "") ) Then
       GetBuildType = "Build Name not defined"
   Else
        GetBuildType = nBuildName    
   End If

  '' Wrap around brackets
   GetBuildType = "("& GetBuildType &")"

End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetPackageMetrics (NNpv_id, rsTemp)

   OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER

   Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("PackageMetrics.sql"), cint(0))

   OraDatabase.Parameters.Remove "PV_ID"

End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetCodeReviewURLs (NNpv_id, rsTemp)

   OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER

   Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("CodeReviewURLs.sql"), cint(0))

   OraDatabase.Parameters.Remove "PV_ID"

End Sub


'---------------------------------------------------------------
Sub Query_Config_Spec (NNRtag_id, NNPv_id)
   OraDatabase.Parameters.Add "RTAG_ID", NNRtag_id,   ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "PV_ID", NNPv_id,   ORAPARM_INPUT, ORATYPE_NUMBER
   If NNRtag_id <> "" Then
      If pkgInfoHash.Item ("dlocked") <> "Y" Then
         Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec.sql"), cint(0))
      Else
         Set rsQry = OraDatabase.DbCreateDynaset( Replace(GetQuery("config_spec.sql"), "PV.LAST_PV_ID", "PV.PV_ID"), cint(0))
      End If
   Else
      If pkgInfoHash.Item ("dlocked") <> "Y" Then
         Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec_nortag.sql"), cint(0))
      Else
         Set rsQry = OraDatabase.DbCreateDynaset( Replace(GetQuery("config_spec_nortag.sql"), "PV.LAST_PV_ID", "PV.PV_ID"), cint(0))
      End If
   End If
   OraDatabase.Parameters.Remove "RTAG_ID"
   OraDatabase.Parameters.Remove "PV_ID"
End Sub

'---------------------------------------------------------------
' Returns the jats extraction commands
Sub Jats_Extract_Command (ByRef sjats_cmds(), ByRef ajats_cmd_test, ByRef sjats_cmds_qh, ByRef sjats_extractable)
   Dim dlocked: dlocked = pkgInfoHash.Item("dlocked")
   Dim pkg_vcs_tag: pkg_vcs_tag = Get_Pkg_Vcs_Tag(Request("pv_id"))
   Dim ii: ii = -1
   Dim baseCmd
   sjats_extractable = false

   sjats_cmds_qh = vcsInfoCollector.Item("vcs_tag")
   If ( sjats_cmds_qh = "CC" OR sjats_cmds_qh = "SVN" ) Then
      sjats_extractable = true
   End If

   ' if not released then use last package version vcs tag and branch else use current vcs tag
   If dlocked <> "Y" Then
     ' not released, so get last package version id

     Dim last_version_valid
     Dim last_pv_id: last_pv_id = pkgInfoHash.Item("last_pv_id")
     Dim last_pkg_vcs_tag
     Dim VcsType

     last_version_valid = TRUE
     If IsNull(pkgInfoHash.Item ("previous_version")) Then
         last_version_valid = FALSE
     ElseIf last_pv_id = pkgInfoHash.Item ("pv_id") Then
         last_version_valid = FALSE
     ElseIf pkgInfoHash.Item ("pkg_count") = 1 Then 
         last_version_valid = FALSE
     End If

     If last_version_valid Then
         last_pkg_vcs_tag = Get_Pkg_Vcs_Tag(last_pv_id)
     End If

     If (last_version_valid AND last_pkg_vcs_tag <> "") Then
        VcsType = Mid(last_pkg_vcs_tag, 1, InStr(1, last_pkg_vcs_tag, "::") - 1 )
        sjats_cmds_qh = VcsType
        baseCmd =  "jats vcsrelease -extract -label """ & last_pkg_vcs_tag & """"
        ii = ii+1 : sjats_cmds(ii) = baseCmd

         ' ClearCase extraction may get a project specific branch appended
         ' This will be used to automatically branch the files in the package
         '
         If (VcsType = "CC") Then
             Call Query_Config_Spec (Request("rtag_id"), last_pv_id)
             Dim config_branch: config_branch = rsQry("config_spec_branch")
             If NOT IsNull(config_branch) AND (config_branch <> "") Then
                 ii = ii+1 : sjats_cmds(ii) = baseCmd & " -branch " & config_branch
             End If
         End If

         If (VcsType = "SVN") Then
            ii = ii+1 : sjats_cmds(ii) = baseCmd & " -devMode=Tag"
            ii = ii+1 : sjats_cmds(ii) = baseCmd & " -devMode=Tip"
            ii = ii+1 : sjats_cmds(ii) = baseCmd & " -devMode=Work"
            ii = ii+1 : sjats_cmds(ii) = baseCmd & " -devMode=Exact"
         End If
     Else
         'ii = ii+1 : sjats_cmds(ii) = "No Previous version to extract"
     End If

     baseCmd =  "jats vcsrelease -extract -label """ & pkg_vcs_tag & """"
     ii = ii+1 : sjats_cmds(ii) = baseCmd
     
   Else
    ' released
    if sjats_extractable Then
        baseCmd =  "jats vcsrelease -extract -label """ & pkg_vcs_tag & """"
        ii = ii+1 : sjats_cmds(ii) = baseCmd
    Else
        baseCmd =  "Cannot be extracted with JATS"
        ii = ii+1 : sjats_cmds(ii) = baseCmd
    End If

   End If

   ' Test Command
   if sjats_extractable Then
        ajats_cmd_test = "jats vcsrelease -test -label """ & pkg_vcs_tag & """"
   Else
        ajats_cmd_test = "Cannot be extracted with JATS"
   End If

   ReDim Preserve sjats_cmds(ii)
   rsQry.Close()
   Set rsQry = nothing

End Sub

'---------------------------------------------------------------
' Returns the VCS tag for the specified package version
' Note: ORAPARM_OUTPUT default size is 127 bytes. This is too short for some
'
Function Get_Pkg_Vcs_Tag(apv_id)
   OraDatabase.Parameters.Add "PV_ID", apv_id, ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "RETURN_CODE","xxxx", ORAPARM_OUTPUT, ORATYPE_VARCHAR2
   OraDatabase.Parameters("RETURN_CODE").MinimumSize = 200
   On Error Resume Next
        OraDatabase.ExecuteSQL ("BEGIN   :RETURN_CODE := PK_RMAPI.RETURN_VCS_TAG( :PV_ID );   END;")
        Get_Pkg_Vcs_Tag = OraDatabase.Parameters("RETURN_CODE").Value
   On Error Goto 0
   OraDatabase.Parameters.Remove "PV_ID"
   OraDatabase.Parameters.Remove "RETURN_CODE"
End Function
'-------------------------------------------------
' Description:  Return a string displaying if the user is following this package in theis Release
'----------------------------------------------------------------------------------------------------------------------------------------
Function GetFollowing ()
   Dim rsQry
   Dim thisProject, otherProjects, someProjects

   GetFollowing = "Not logged in"

   If objAccessControl.UserLogedIn() Then
       OraDatabase.Parameters.Add "PKG_ID",  pkgInfoHash.Item ("pkg_id"), ORAPARM_INPUT, ORATYPE_NUMBER
       OraDatabase.Parameters.Add "PROJ_ID", pkgInfoHash.Item ("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBER
       OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId(), ORAPARM_INPUT, ORATYPE_NUMBER

       If pkgInfoHash.Item ("proj_id") <> "" Then
           Set rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM PACKAGE_INTEREST WHERE PKG_ID = :PKG_ID AND PROJ_ID = :PROJ_ID AND USER_ID = :USER_ID", cint(0))
           thisProject = rsQry.RecordCount > 0

           Set rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM PACKAGE_INTEREST WHERE PKG_ID = :PKG_ID AND PROJ_ID != :PROJ_ID AND USER_ID = :USER_ID", cint(0))
           otherProjects = rsQry.RecordCount > 0

           If thisProject Then
               If otherProjects Then
                    GetFollowing = "Yes. In this and " & rsQry.RecordCount & " other projects"
                   Else
                    GetFollowing = "Yes. Only this project"
               End If
           Else
               If otherProjects Then
                    GetFollowing = "Yes. In " & rsQry.RecordCount & " other projects"
                   Else
                    GetFollowing = "No"
               End If
           End If

       Else
           Set rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM PACKAGE_INTEREST WHERE PKG_ID = :PKG_ID AND USER_ID = :USER_ID", cint(0))
           someProjects = rsQry.RecordCount > 0

           If rsQry.RecordCount > 0 Then
                GetFollowing = "Yes. In " & rsQry.RecordCount & " Projects"
               Else
                GetFollowing = "No"
           End If

       End If


       OraDatabase.Parameters.Remove "USER_ID"
       OraDatabase.Parameters.Remove "PROJ_ID"
       OraDatabase.Parameters.Remove "PKG_ID"
       rsQry.Close()
       Set rsQry = nothing

       If pageIsEditable Then
           GetFollowing = GetFollowing &  "<img class='image12 vixIframeDialog' href='_iframe_pkgs_followed.asp?proj_id=" & pkgInfoHash.Item ("proj_id") & "&pkg_id=" & pkgInfoHash.Item ("pkg_id") & "' title='Follow: " & pkgInfoHash.Item ("pkg_name") &"' src='images/i_follow.gif'>"
       End If

    End If
End Function
'---------------------------------------------------------------
' Description:  Return a string displaying licence information
'---------------------------------------------------------------
Function getLicence
   Dim rsQry, rsSql, lName
   Dim licenceList
   Dim joiner : joiner = ""
   Dim otherVersions : otherVersions = ""

   Set licenceList=Server.CreateObject("Scripting.Dictionary")
   getLicence = ""

   ' Determine license for this package-version
        OraDatabase.Parameters.Add "PV_ID", pkgInfoHash.Item ("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBER

    Set rsQry = OraDatabase.DbCreateDynaset( _
                "SELECT l.NAME FROM LICENCES l, LICENCING ld" &_
                " WHERE l.LICENCE = ld.LICENCE " &_
                " and ld.PV_ID = :PV_ID" &_
                " ORDER by l.NAME" _
                , cint(0))

        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
       lName = rsQry("name")
           getLicence = getLicence & joiner & lName 
           licenceList.Add lName, "Y"
           joiner = ", "
           rsQry.MoveNext
        WEnd
    rsQry.Close()
    Set rsQry = nothing

        '
        ' Indicate if other versions have licences - ignore those we already know about
        ' The data is stored on a package-version basis
        '
    Set rsQry = OraDatabase.DbCreateDynaset( _
                "SELECT UNIQUE ld.NAME" &_
                " FROM licencing l,LICENCES ld" &_
                " WHERE l.pv_id IN" &_
                "  (SELECT pv_id" &_
                "  FROM package_versions" &_
                "  WHERE pkg_id IN" &_
                "    (SELECT pkg_id FROM package_versions WHERE pv_id=:PV_ID)" &_
                "    AND pv_id != :PV_ID" &_
                "  )" &_
                "  AND l.LICENCE = ld.LICENCE" &_
                "  ORDER by ld.NAME" _
                , cint(0))

        joiner = ""
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
       lName = rsQry("name")
       If NOT licenceList.Exists(lName) Then
           otherVersions = otherVersions & joiner & rsQry("name")
               joiner = ", "
       End If
           rsQry.MoveNext
        WEnd

    OraDatabase.Parameters.Remove "PV_ID"
    rsQry.Close()
    Set rsQry = nothing

        If otherVersions <> "" Then
                getLicence = getLicence & ". Other Versions: " & otherVersions
        End If
End Function
'-------------------------------------------------
Function getLinkUrl(pvid)
     Dim joiner : joiner = "?"

     getLinkUrl = scriptName

     If parRtag_id <> "" Then
        getLinkUrl = getLinkUrl + joiner + "rtag_id=" + parRtag_id
        joiner = "&"
     End If

     getLinkUrl = getLinkUrl + joiner + "pv_id=" + pvid
End Function
'-------------------------------------------------
'   DisplayVersionRow   - Display a row of vesrion information
'       pvid    - pvid to process. Null -> "Initial Version"
'       title   - row title
'       helpTag - Tag for help
'
Sub DisplayVersionRow( pvid, title, helpTag )
      Dim   versionText
      Dim   tagText
      Dim   showLink
      Dim   clipClass
      Dim   ExtractText
      Dim   queryResult

      If IsNull(pvid) Then
          versionText = "Initial Version"
          tagText = NULL
          showLink = FALSE
      Else
          Set   queryResult = OraDatabase.DbCreateDynaset( "SELECT pkg_version from package_versions where pv_id =" & pvid , cint(0))

          If (NOT queryResult.BOF ) AND (NOT queryResult.EOF) Then
            versionText = queryResult("pkg_version")
            tagText = Get_Pkg_Vcs_Tag(pvid)
            showLink = isDefined("showPrevVerLinks") 
          Else
            versionText = "Unknown"
            tagText = NULL
            showLink = FALSE
          End If

          queryResult.Close()
          Set queryResult = nothing

     End If

      If sjats_extractable Then
        clipClass = "clip"
        ExtractText = NewLine_To_BR ( To_HTML(tagText) ) 
      Else
        clipClass = ""
        ExtractText = "Cannot be extracted with JATS"
      End If
      %>
         <tr>
            <td width="20%" ><%=title%><%=Quick_Help(helpTag)%></td>
            <td>
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width=15% colspan=2 nowrap>
                    <%=versionText%>
                    <%If showLink Then %>
                        <a href=<%=getLinkUrl(pvid)%>>
                        <img src="images/i_link.gif" hspace="2" border="0" align='absmiddle' title="Show this version">
                        </a>
                    <%End If%>
                  </td>
                  <%If NOT IsNull(tagText) Then %>
                  <td colspan=2 nowrap class="<%=clipClass%>">
                    <%=ExtractText%>
                  </td>
                  <%End If%>
                </tr>
              </table>
            </td>
         </tr>
      <%
End Sub

'-------------------------------------------------
'   DisplayCreationCommands
'   Display commands that may be useful in the creation of the package
'
Sub DisplayCreationCommands
    Dim VcsType: VcsType = vcsInfoCollector.Item("vcs_tag")
    Dim title: title = "Package Creation Hints"
    Dim SvnUrl
    Dim SvnLabel

    If VcsType = "SVN" Then
        If pkgInfoHash.Item("src_path") <> "" Then
            SvnUrl = pkgInfoHash.Item("src_path")
            Dim lastBit: lastBit = InStrRev(SvnUrl, "/" )
            If lastBit > 1 Then
                SvnUrl = Left(SvnUrl, lastBit-1) 
            End If
        Else
            SvnUrl = "AUPERASVN0X/RepoName/" & pkgInfoHash.Item ("pkg_name")
        End If
        If pkgInfoHash.Item("pkg_label") <> "" Then
            SvnLabel = pkgInfoHash.Item("pkg_label") 
        Else
            SvnLabel = "SomeLabel.WIP"
        End If

      %>
         <tr>
            <td><%=title%><%=Quick_Help("CreationHints")%></td>
            <td>
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr><td nowrap class="clip"> jats svn create_package -new <%=SvnUrl%> </td></tr>
                  <tr><td nowrap class="clip"> jats svn create_package -new <%=SvnUrl%> -import=&lt;PkgDir&gt; </td></tr>
                  <tr><td nowrap class="clip"> jats svn create_package -new <%=SvnUrl%> -label=<%=SvnLabel%> -import=&lt;PkgDir&gt; </td></tr>
                  <tr><td nowrap class="clip"> jats svn create_package -new <%=SvnUrl%> -label=<%=SvnLabel%> -import=<%=pkgInfoHash.Item ("pkg_name")%> </td></tr>
              </table>
            </td>
         </tr>
      <%
    Else
    %>
         <tr>
            <td><%=title%></td>
            <td>Not supported under this version control system.</td>
         </tr>
     <%
    End If
End Sub
%>
<%
'------------------ MAIN LINE --------------------
'-------------------------------------------------
If pkgInfoHash.Exists("pv_id") Then
%>
<!-- PACKAGE INFORMATION --------------------------------------------------------------------------------------------------------------->
   <fieldset class="fset">
   <legend class="body_colb"><img src='images/s_info.gif' width='21' height='24' hspace='4' border='0' align='absmiddle'>Package Information</legend>
   <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
   <%If pageIsEditable Then%>
           <span onClick="MM_openVixIFrame('_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Package Info')" class="txt_linked pointer">Edit<img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
   <%End If%>
   </div>
   <a name="PACKAGE_INFORMATION"></a>
   <table width="100%" border="0" cellspacing="1" cellpadding="2" class='lhsGrey'>
      <%
      Set rsQry = OraDatabase.DbCreateDynaset( SQL_Package_Information ( parPv_id ), cint(0))
      
      Call get_vcs_info_for_package( rsQry("pkg_label"), rsQry("build_type"), rsQry("vcs_type_id"), rsQry("dlocked"), vcsInfoCollector )
      
      %>

      <%
        ' Status:
        Dim sstate
        Dim bcan_unlock
        Dim stitle
        Dim bis_patch
        Dim spkgType
        Dim shref

        bis_patch = not IsNull(pkgInfoHash.Item ("is_patch")) 
        If bis_patch Then
          ' the user can unlock a patch if they have permission
          ' packages can be unlocked by the btnUnlockRelease button
          bcan_unlock = canActionControlInProject("UnlockPatch")
          spkgType = "Patch"
        Else
          bcan_unlock = canActionControlInProject("EditCriticalInfoForLockedPackage")
          spkgType = "Package"
        End If

        If pkgInfoHash.Item("is_sdkpkg") Then bcan_unlock = FALSE

        Select Case pkgInfoHash.Item ("dlocked")
            Case "Y"  sstate = "Released"
            Case "N"  sstate = "Not Released"
            Case "P"  sstate = "Not Released. Pending approval"
            Case "A"  sstate = "Not Released. Approved for build"
            Case "R"  sstate = "Not Released. Rejected"
            Case Else sstate = "Not Released. Invalid State"
        End Select
            
        If bcan_unlock  Then
          If (pkgInfoHash.Item ("dlocked") = "Y") Then
            ' Unlock patch/package.
            stitle="Unlock the " & spkgType
            shref="_s_unlock_package.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id

          ElseIf (pkgInfoHash.Item ("dlocked") = "N") Then
            ' lock patch/package.
            stitle="Lock the "& spkgType &". Release requirements are not applied."
            shref="_s_lock_package.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id

          Else
            ' unlock patch/package.
            stitle="Unlock the " & spkgType
            shref="_s_unlock_package.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id
            bcan_unlock = FALSE
          End If
        End if
      %>

      <tr>
         <td>
         <% If bcan_unlock Then %>
              <span title='<%=stitle%>' class='pointer' onClick="window.location='<%=shref%>'">Status:&nbsp;<img src='images/i_edit.gif' width='12' height='12' border='0' align='absmiddle'></span>
         <% Else %>
              Status:<img src='images/i_edit_disable.gif' width='12' height='12' border='0' title='Cannot change status' align='absmiddle'>
         <% End If %>
         </td>
         <td><%=sstate%></td>
      </tr>

      <tr>
         <td>Deployable:</td>
         <td><%=iif(IsNull( rsQry("is_deployable") ), "No","Yes")%></td>
      </tr>

      <tr>
         <td>Short Description:</td>
         <td class="clip">
            <%If IsNull( rsQry("pv_description") ) Then%>
               <span class='err_alert'>Required!</span>
            <%Else%>
              <%=NewLine_To_BR ( To_HTML( rsQry("pv_description") ) )%>
            <%End If%>
         </td>
      </tr>
      <tr>
         <td>Package Overview:</td>
         <td class="clip">
            <%If IsNull( rsQry("pv_overview") ) Then%>
               <span class='err_alert'>Required!</span>
            <%Else%>
               <%=NewLine_To_BR ( To_HTML( rsQry("pv_overview") ) )%>
            <%End If%>
         </td>
      </tr>
          <!-- Package Licence information -->
      <%
        Dim sonclick
        Dim imgClass
        Dim sClass
      %>
      <tr>
         <td>
            <%BuildEditButtonRaw canActionControlInProject ("EditPackageLicence") OR canActionControl("MSMaintainer"), _
                "Package Licence:", "Edit", False, "src='images/i_edit.gif' width='12' height='12' border='0' align='absmiddle'",_
                "MM_openVixIFrame('_wform_change_licence.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"','Change License')" %>
         </td>
         <td>
            <%=getLicence()%>
         </td>
      </tr>
          <!-- Build Owner -->
      <tr>
        <td>
         <%BuildEditButtonRaw objAccessControl.UserLogedIn() AND NOT pkgInfoHash.Item("is_sdkpkg"),_
             "Build Owner:", "Edit", False, "src='images/i_edit.gif' width='12' height='12' border='0' align='absmiddle'",_
             "MM_openVixIFrame('_wform_change_owner.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"','Change Owner')" %>
          <%=Quick_Help("BuildOwner")%>
        </td>         
        <td><%=emailField(pkgInfoHash.Item ("owner"),pkgInfoHash.Item ("owner_email"))%></td>         
      </tr>
      
      <tr>
         <td>Created:</td>
         <td>
            <%=DisplayDateTimeSecs(pkgInfoHash.Item ("created_stamp"))&" by "& emailField(pkgInfoHash.Item ("creator"),pkgInfoHash.Item ("creator_email"))%>
         </td>
      </tr>

      <%
        ' Last Modified:
      %>
      <tr>
         <td>Last Modified:</td>
         <td>
            <%=DisplayDateTimeSecs(pkgInfoHash.Item ("modified_stamp"))&" by "& emailField(pkgInfoHash.Item ("modifier"),pkgInfoHash.Item ("modifier_email"))%>
         </td>
      </tr>

      <%
        ' Added to Release
        If IsNull(pkgInfoHash.Item ("is_patch"))  AND  (Request("rtag_id") <> "") AND (pkgInfoHash.Item ("insertor") <> "") Then
      %>
      <tr>
         <td>Added to Release:</td>
         <td>
            <%=DisplayDateTimeSecs(pkgInfoHash.Item ("insert_stamp")) &" by "& emailField(pkgInfoHash.Item ("insertor"),pkgInfoHash.Item ("insertor_email"))%>
         </td>
      </tr>
      <%End If%>
      
      <%If (vcsInfoCollector.Item("vcs_tag") = enum_VCS_CLEARCASE_TAG) OR (vcsInfoCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) Then%>
         <tr>
            <td>Version Control System:</td>
            <td>
               <%=NewLine_To_BR ( To_HTML( vcsInfoCollector.Item("vcs_name") ) )%>
             <%If (vcsInfoCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) AND pkgInfoHash.Item ("build_type") = "A" Then%>
             <span class='err_alert'>[Requires Manual Build]</span>
             <%End If%>
             <td>
         </tr>

         <tr>
            <td>Source Path:</td>
            <td>
               <%If IsNull( rsQry("src_path") ) Then%>
                  <span class='err_alert'>Required!</span><%Else%><%=NewLine_To_BR ( To_HTML( rsQry("src_path") ) )%>
               <%End If%>
            </td>
         </tr>

         <tr>
            <td>Label:</td>
            <td>
               <%If IsNull( rsQry("pkg_label") ) Then%>
                  <span class='err_alert'>Required!</span><%Else%><%=NewLine_To_BR ( To_HTML( rsQry("pkg_label") ) )%>
               <%End If%>
            </td>
         </tr>
      <%ElseIf vcsInfoCollector.Item("vcs_tag") = enum_VCS_SUBVERSION_TAG Then%>
         <tr>
            <td>Version Control System:</td>
            <td>
               <%=NewLine_To_BR ( To_HTML( vcsInfoCollector.Item("vcs_name") ) )%>
            </td>
         </tr>

         <tr>
            <td>Source Path:</td>
            <td class="clip">
               <%If IsNull( rsQry("src_path") ) Then%>
                  <span class='err_alert'>Required!</span><%Else%><%=NewLine_To_BR ( To_HTML( rsQry("src_path") ) )%>
               <%End If%>
            </td>
         </tr>

         <tr>
            <td>Tag:</td>
            <td class="clip">
               <%If IsNull( rsQry("pkg_label") ) Then%>
                  <span class='err_alert'>Required!</span><%Else%><%=NewLine_To_BR ( To_HTML( rsQry("pkg_label") ) )%>
               <%End If%>
            </td>
         </tr>

      <%ElseIf vcsInfoCollector.Item("vcs_tag") = enum_VCS_UNCONTROLLED_TAG Then%>
         <tr>
            <td>Version Control System:</td>
            <td>
               <%=NewLine_To_BR ( To_HTML( vcsInfoCollector.Item("vcs_name") ) )%>
            </td>
         </tr>
      <%Else%>
         <tr>
            <td>Version Control System:</td>
            <td>
               <span class='err_alert'>Required!</span>
            </td>
         </tr>
      <%End If%>

      <tr>
         <td>
         <%BuildEditButtonRaw (pkgInfoHash.Item("can_edit_in_project") = "1") AND (objAccessControl.UserLogedIn) AND (canActionInProject()) AND pkgInfoHash.Item("base_view_id") <> "",_
             "Base View:", "Edit", False, "src='images/i_edit.gif' width='12' height='12' border='0' align='absmiddle'",_
             "MM_openVixIFrame('_wform_change_group.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"','Set Package Base View')" %>
         </td>
         <td class="clip">
         <% Dim CleanView : CleanView = pkgInfoHash.Item("view_name")
            If CleanView = "" Then CleanView = "N/A"
            Response.Write CleanView
          %>
         </td>
      </tr>

      <tr>
         <td>Following:<%=Quick_Help("following")%></td>
         <td><%=GetFollowing()%></td>
      </tr>

      <tr>
         <td>Build Standard:</td>
         <%
         If pkgInfoHash.Item ("bs_id") <> "" Then
            If pkgInfoHash.Item ("bs_id") = "1" Then
               Response.write "<td>JATS<br></td>"

            ElseIf pkgInfoHash.Item ("bs_id") = "2" Then
               Response.write "<td>ANT<br></td>"

            ElseIf pkgInfoHash.Item ("bs_id") = "3" Then
               Response.write "<td>NONE"
               If pkgInfoHash.Item("build_type") = "A" Then
                    Response.write "<span class='err_alert'> [Must be specified for an automated build]</span>"
               End If
               Response.write "<br></td>"
            End If
         Else
            If vcsInfoCollector.Item("vcs_tag") <> enum_VCS_UNCONTROLLED_TAG Then
               Response.write "<td><span class='err_alert'>Required!</span><br></td>"
            Else
               Response.write "<td>Unspecified<br></td>"
            End If
         End If
         %>
      </tr>
      <%If (NOT IsNull(pkgInfoHash.Item ("bs_id"))) AND (pkgInfoHash.Item ("bs_id") <> "3") Then%>
         <tr>
            <td>Build Environment:</td>
            <%
            '--- Get Build Env Details
            Set rsTemp = OraDatabase.DbCreateDynaset( SQL_Build_Env ( parPv_id ), cint(0))
            %>
            <td>
               <%If rsTemp.RecordCount = 0 Then%>
                  <%If rsQry("is_build_env_required") = enumDB_NO Then%>
                     Not Required
                  <%Else%>
                     <span class='err_alert'>Required!</span>
                  <%End If%>
               <%Else%>
                  <%If (IsNull( rsQry("is_build_env_required") ) AND (rsQry("comments") <> "Rippled Build.")) Then%>
                     <span class='err_alert'>Required!</span>
                  <%ElseIf rsQry("is_build_env_required") = enumDB_NO Then%>
                     Not Required.
                  <%Else%>
                     <table width="40%"  border="0" cellspacing="0" cellpadding="1">
                        <%
                        currG1 = 0
                        While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
                           If currG1 <> CInt(rsTemp("bm_id")) Then%>
                              <tr>
                                 <td colspan="2" nowrap>
                                    <%=rsTemp("bm_name")%>&nbsp;<%=GetBuildType( rsTemp("bsa_id"),rsTemp("bsa_name") )%>
                                 </td>
                              </tr>
                              <%currG1 = CInt(rsTemp("bm_id"))
                           End If
                           rsTemp.MoveNext
                        WEnd
                        %>
                     </table>
                  <%End If%>
               <%End If%>
            </td>
         </tr>
      <%End If%>

      <%
      ' Get JATS extraction commands
      Dim  sjats_cmd_test, sjats_cmds_qh, sjats_extractable
      ReDim sjats_cmds(6)
      call Jats_Extract_Command(sjats_cmds, sjats_cmd_test, sjats_cmds_qh, sjats_extractable)
      Dim PrevVerTitle : PrevVerTitle = "Previous Version:"

      ' Previous Versions 
      If pkgInfoHash.Item ("pkg_count") = 1 AND pkgInfoHash.Item ("dlocked") = "N" Then
        Call DisplayVersionRow(NULL, PrevVerTitle, "PreviousVcsTag")
        Call DisplayCreationCommands()

      ElseIf IsNull(pkgInfoHash.Item ("is_patch")) Then

        If canActionControlInProject("ChangePreviousVersion") AND NOT pkgInfoHash.Item("is_sdkpkg") Then
            sonclick="MM_openVixIFrame('_wform_change_previous_version.asp?rfile="& scriptName &"&pv_id="& parPv_id &"&rtag_id="& parRtag_id &"','Change Previous Version')"
            PrevVerTitle = "<span onClick=""" & sonclick & """ class='sublbox_txt'> " & PrevVerTitle & " <img src='images/i_edit.gif' width='12' height='12' border='0' align='absmiddle'></span>"
        Else
            PrevVerTitle = PrevVerTitle & "<img src='images/i_edit_disable.gif' width='12' height='12' border='0' align='absmiddle'>"
        End If
        Call DisplayVersionRow(pkgInfoHash.Item ("last_pv_id"), PrevVerTitle, "PreviousVcsTag") 

        Dim iLastSignificantPVID
        Dim iRippleBasePVID
        Call getLastSignificantVersions(pkgInfoHash.Item("pv_id"), iRippleBasePVID, iLastSignificantPVID)

        Call DisplayVersionRow(iRippleBasePVID, "Previous NonRipple Version:", "PreviousNonRippleVcsTag") 
        Call DisplayVersionRow(iLastSignificantPVID, "Previous Significant Version:", "PreviousSignificantVcsTag") 
      End If
      %>
      <tr>
         <td>JATS extraction commands:<%=Quick_Help ( "JatsExtraction_" & sjats_cmds_qh )%></td>
         <td style="padding: 0px;">
         <table class="full_table">
         <% Dim ii : For ii = 0 to UBound(sjats_cmds) %>
             <tr><td class="clip"><%=NewLine_To_BR ( To_HTML(sjats_cmds(ii)) )%>&nbsp;</td>
         <% Next %>
         </td>
         </tr>
         </table>
      </tr>
      <tr>
         <td>JATS Test:<%=Quick_Help ( "JatsTest" )%></td>
         <td class="clip"><%=NewLine_To_BR ( To_HTML(sjats_cmd_test) )%></td>
      </tr>

      <%
      ' Beyond Compare difference command
      Dim prevVcsTag
      Dim curVcsTag
      Dim sBcCmd, sBcClass 

      prevVcsTag = Get_Pkg_Vcs_Tag(iLastSignificantPVID)
      curVcsTag = Get_Pkg_Vcs_Tag(parPv_id)
      sBcCmd = ""
      sBcClass = ""

      If pkgInfoHash.Item ("pkg_count") = 1 Then
            sBcCmd = "No prior version compare against"
      ElseIf (IsNull(prevVcsTag) OR prevVcsTag = "" ) Then
            sBcCmd = "No prior label to compare against"
      ElseIf (IsNull(curVcsTag) OR curVcsTag = "" ) Then
            sBcCmd = "Current VCS tag not yet specified"
      ElseIf (not sjats_extractable) Then
            sBcCmd = "Cannot be extracted with JATS"
      Else
            sBcCmd = "jats vcsdiff -old=" & prevVcsTag & " -new=" & curVcsTag
            sBcClass = "clip"
      End If
      sBcCmd = NewLine_To_BR( To_HTML (sBcCmd) )
      %>

      <tr>
        <td>Beyond Compare command:<%=Quick_Help ( "BeyondCompare" )%></td>
        <td class="<%=sBcClass%>"><%=sBcCmd%></td>
      </tr>
              

      <%If pkgInfoHash.Item("is_deployable") = "Y" Then
         OraDatabase.Parameters.Add "PV_ID", pkgInfoHash.Item ("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBER
         Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("DeploymentManagerReference.sql"), cint(0))
         If rsTemp.RecordCount = 0 Then%>
            <tr>
               <td>SBOM Information:</td>
               <%If pkgInfoHash.Item("product_state") = 3 Then%>
                  <td class="err_alert"><b>Ready For Deployment!</b></td>
               <%ElseIf pkgInfoHash.Item("product_state") = 2 Then%>
                  <td class="err_alert"><b>Ready For Testing!</b></td>
               <%ElseIf pkgInfoHash.Item("product_state") = 1 Then%>
                  <td class="err_alert"><b>Ready For Integration!</b></td>
               <%ElseIf pkgInfoHash.Item("product_state") = 5 Then%>
                  <td class="err_alert"><b>Ready For Integration and Deployment!</b></td>
               <%ElseIf IsNull(pkgInfoHash.Item("product_state")) Then%>
                  <td class="err_alert"><b>Information Unavailable!</b></td>
               <%End If%>

            </tr>
         <%Else%>
            <tr>
               <td>SBOM Added/Updated:</td>
               <td><%=rsTemp("branch_name")%> - <%=rsTemp("bom_name")%><%=VBNewLine%><%=rsTemp("version")%></td>
            </tr>
         <%End If
         rsTemp.Close()
         Set rsTemp = Nothing
         OraDatabase.Parameters.Remove "PV_ID"
      End If
      %>
   </table>
   </fieldset>
   <br>

<!-- PACKAGE METRICS -------------------------------------------------------------------------------------------------------------------->
   <%
   Call GetPackageMetrics( parPv_id, rsPkgMetrics )
   %>
   <fieldset class="fset" onclick="ToggleDisplay('divPkgMetrics','pkg_metrics_filler')">
   <%If IsNull(rsPkgMetrics("pkg_name")) Then %>
      <legend class="body_colb">
         <img src="images/i_metrics.gif" width="20" height="24" hspace="4" border="0" align='absmiddle' >Package Metrics not available
      </legend>
   <%Else%>
      <legend class="body_colb">
         <img src="images/i_metrics.gif" width="20" height="24" hspace="4" border="0" align='absmiddle' >Package Metrics...
      </legend>
      <div name="pkg_metrics_filler" id="pkg_metrics_filler" style="display:block;" class="div_filler">
         <span class="txt_linked pointer">Show...</span>
      </div>
      <div name="divPkgMetrics" id="divPkgMetrics" style="display:none;">
         <a name="PACKAGE_METRICS"></a>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='lhsGrey'>
            <tr>
               <td width='20%'>Autobuilt:</td>
               <td><%If rsPkgMetrics("is_autobuildable") = "Y" Then%>Yes<%Else%>No<%End If%></td>
            </tr>
            <tr>
               <td>Unit Tested:</td>
               <td><%If rsPkgMetrics("unit_tested") = "Y" Then%>Yes<%Else%>No<%End If%></td>
            </tr>
            <tr>
               <td>Autotested:</td>
               <td><%If rsPkgMetrics("autotested") = "Y" Then%>Yes<%Else%>No<%End If%></td>
            </tr>
            <%If NOT IsNull(rsPkgMetrics("code_lines")) Then%>
            <tr>
               <td>Code Lines:</td>
               <td><%=rsPkgMetrics("code_lines")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("comment_lines")) Then%>
            <tr>
               <td>Comment Lines:</td>
               <td><%=rsPkgMetrics("comment_lines")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("blank_lines")) Then%>
            <tr>
               <td>Blank Lines:</td>
               <td><%=rsPkgMetrics("blank_lines")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("branches")) Then%>
            <tr>
               <td>Number of Branches:</td>
               <td><%=rsPkgMetrics("branches")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("branch_list")) Then%>
            <tr>
               <td>Branch List:</td>
               <td><%=rsPkgMetrics("branch_list")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("code_files")) Then%>
            <tr>
               <td>Code Files:</td>
               <td><%=rsPkgMetrics("code_files")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("ignored_files")) Then%>
            <tr>
               <td>Ignored Files:</td>
               <td><%=rsPkgMetrics("ignored_files")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("makefiles")) Then%>
            <tr>
               <td>Makefiles:</td>
               <td><%=rsPkgMetrics("makefiles")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("total_files")) Then%>
            <tr>
               <td>Total Files:</td>
               <td><%=rsPkgMetrics("total_files")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("directories")) Then%>
            <tr>
               <td>Number of Directories:</td>
               <td><%=rsPkgMetrics("directories")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("directory_depth")) Then%>
            <tr>
               <td>Directory Depth:</td>
               <td><%=rsPkgMetrics("directory_depth")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("created_stamp")) Then%>
            <tr>
               <td>Metrics Collected:</td>
               <td><%=rsPkgMetrics("created_stamp")%></td>
            </tr>
            <%End If%>
            <%If NOT IsNull(rsPkgMetrics("build_time")) Then%>
            <tr>
               <td>Build Time:</td>
               <td><%=rsPkgMetrics("build_time")%> Seconds</td>
            </tr>
            <%End If%>

         </table>
      </div>
   <%End If%>
   </fieldset>
   <br>
   <%
   rsPkgMetrics.Close()
   Set rsPkgMetrics = nothing
   %>
<!-- PRODUCTS AFFECTED BY CHANGE -------------------------------------------------------------------------------------------------------->

<!-- REASON FOR DEPRECATION/DEPENDANCY DEPRECATED ----------------------------------------------------------------------------------------------------------------->
   <%If pkgInfoHash.Item("deprecated_state") = 6 Then %>

      <fieldset class="fset"><legend class="body_colb"><img src='images/s_notes.gif' width='21' height='24' hspace='4' border='0' align='absmiddle'>Reason for deprecation</legend>
         <a name="REASON_FOR_DEPRECATION"></a>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td>
                  <%
                  Dim rsComment
                  Set rsComment = OraDatabase.DbCreateDynaset("SELECT * FROM DEPRECATED_PACKAGES WHERE RTAG_ID ="& Request("rtag_id") &" AND PKG_ID = "& pkgInfoHash.Item ("pkg_id") &"", cint(0))
                  If rsComment("comments") <> "" Then
                     Response.write "<table border='0' cellspacing='0' cellpadding='0'>"
                     Response.write "<tr>"
                     Response.write "<td class='sublbox_txt'>"& NewLine_To_BR((  rsComment("comments") ) ) &"<br></td>"
                     Response.write "</tr>"
                     Response.write "</table>"
                  'Else
                  '   If FixedIssues ( parPv_id ) Then
                  '      Response.write "<span class='sublbox_txt'>Not specified.</span><br>"
                  '   Else
                  '      Response.write "<span class='err_alert'>Required!</span><br>"
                  '   End If
                  End If
                  rsComment.Close()
                  Set rsComment = nothing
                  %>
               </td>
            </tr>
         </table>
      </fieldset>
      <br>
   <%End If%>
<!-- SBOM PRIORITY/CRITICALITY  --------------------------------------------------------------------------------------------------------->
   <%If NOT pageIsEditable AND pkgInfoHash.Item ("is_deployable") = "Y" Then%>
      <fieldset class="fset">
      <legend class="body_colb"><img src='icons/i_prod_sbom_priority.gif' hspace='4' border='0' align='absmiddle'>SBOM Priority</legend>
       <%If (pkgInfoHash.Item ("dlocked") = "Y") Then%>
       <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
            <span onClick="MM_openVixIFrame('_wform_sbom_priority.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','SBOM Priority')" class="pointer txt_linked">Edit<img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
       </div>
       <%End If%>
         <a name="SBOM_PRIORITY"></a>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class=allGrey>
            <tr>
               <td>
                  <%If pkgInfoHash.Item ("sbom_priority") <> "" Then%>
                     <table border='0' cellspacing='0' cellpadding='0'>
                        <tr>
                           <td>
                              <%
                              If pkgInfoHash.Item ("sbom_priority") = "C" Then
                                 Response.write "<b><font color='red'>Critical.</font></b>"
                              ElseIf pkgInfoHash.Item ("sbom_priority") = "I" Then
                                 Response.write "<b>Important.</b>"
                              ElseIf pkgInfoHash.Item ("sbom_priority") = "R" Then
                                 Response.write "Routine"
                              ElseIf pkgInfoHash.Item ("sbom_priority") = "L" Then
                                 Response.write "Low"
                              End If
                              %>
                           </td>
                        </tr>
                     </table>
                  <%Else%>
                     <span class='err_alert'>Required!</span><br>
                  <%End If%>
               </td>
            </tr>
         </table>
      </fieldset>
      <br>
   <%End If%>
<!-- CHANGE TYPE  ----------------------------------------------------------------------------------------------------------------------->
   <fieldset class="fset">
   <a name="CHANGE_TYPE"></a>
   <%If pkgInfoHash.Item ("build_type") = "A" Then%>
         <legend class="body_colb"><img src='icons/i_pkg_change_type.gif' hspace='4' border='0' align='absmiddle'>Change Type</legend>
         <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
              <%If (pkgInfoHash.Item ("dlocked") <> "A")  AND (pkgInfoHash.Item ("dlocked") <> "Y") AND criticalSectionIsEditable Then%>
                 <span onClick="MM_openVixIFrame('_wform_rename_version.asp?renameMode=2&rfile=<%=ScriptName%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Change Ripple Type')" class="txt_linked pointer">Edit<img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
              <%End If%>
         </div>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td>
                  <%
                  If pkgInfoHash.Item ("change_type") <> "" Then
                     Response.write "<table border='0' cellspacing='0' cellpadding='0'>"
                     Response.write "<tr>"
                     If pkgInfoHash.Item ("change_type") = "M" Then
                        Response.write "<td class='sublbox_txt'>Major Change.<br></td>"
                     ElseIf pkgInfoHash.Item ("change_type") = "N" Then
                        Response.write "<td class='sublbox_txt'>Minor Change.<br></td>"
                     ElseIf pkgInfoHash.Item ("change_type") = "P" Then
                        Response.write "<td class='sublbox_txt'>Patch Change.<br></td>"
                     ElseIf pkgInfoHash.Item ("change_type") = "F" Then
                        Response.write "<td class='sublbox_txt'>Version Specified by User.<br></td>"
                     Else
                        Response.write "<td><span class='err_alert'>Unknown Change Type: " & pkgInfoHash.Item ("change_type") & "</span></td>"
                     End If
                     Response.write "</tr>"
                     Response.write "</table>"
                  Else
                     Response.write "<span class='err_alert'>Required!</span><br>"
                  End If
                  %>
               </td>
            </tr>
         </table>
   <%ElseIf pkgInfoHash.Item ("build_type") = "M" Then%>
         <legend class="body_colb"><img src='icons/i_pkg_change_type.gif' hspace='4' border='0' align='absmiddle'>Build Type</legend>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td>Manually Built Package.
                  <%If pkgInfoHash.Item ("change_type") <> "F" Then%>
                        <span class='err_alert'>Unexpected Change Type: <%=pkgInfoHash.Item ("change_type")%></span>
                  <%End If%>
               </td>
            </tr>
         </table>
   <%ElseIf pkgInfoHash.Item ("build_type") = "U" Then%>
         <legend class="body_colb"><img src='icons/i_pkg_change_type.gif' hspace='4' border='0' align='absmiddle'>Build Type</legend>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td>
               <span class='err_alert'>UnbuildablePackage.</span> This version has been created outside of the build system, possibly via Deployment Manager or as a part of the unification of the Pulse Build System.
               </td>
            </tr>
         </table>
   <%ElseIf pkgInfoHash.Item ("build_type") = "Y" Then%>
         <legend class="body_colb"><img src='icons/i_pkg_change_type.gif' hspace='4' border='0' align='absmiddle'>Build Type</legend>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td>Ripple Built</td>
            </tr>
         </table>
   <%Else%>
         <legend class="body_colb"><img src='icons/i_pkg_change_type.gif' hspace='4' border='0' align='absmiddle'>Build Type</legend>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td><span class='err_alert'>Unknown Build Type (<%=pkgInfoHash.Item ("build_type")%>) Change Type (<%=pkgInfoHash.Item ("change_type")%>)</span></td>
            </tr>
         </table>
   <%End If%>
   </fieldset>
   <br>

<!-- RIPPLE PROPERTIES  ----------------------------------------------------------------------------------------------------------------------->
   <%If IsNull(pkgInfoHash.Item ("is_patch")) Then%>
      <fieldset class="fset">
         <legend class="body_colb"><img src='icons/i_pkg_ripple_type.gif' hspace='4' border='0' align='absmiddle' height='25' width='25'>Ripple Properties</legend>
         <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
            <%Dim canEditRippleProperties : canEditRippleProperties = FALSE

                canEditRippleProperties = (pageIsEditable AND canShowControlInProject( "RipplePackage" )) OR _ 
                                          canShowControlInProject( "AdvRipPackageVersions" ) OR _
                                          canShowControlInProject( "PegPackageVersions" ) OR _
                                          criticalSectionIsEditable

            If canEditRippleProperties Then%>
                <span onClick="MM_openVixIFrame('_wform_ripple_properties.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Edit Ripple Type')" class="txt_linked pointer">Edit<img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
            <%End If%>
         </div>
         <a name="RIPPLE_PROPERTIES"></a>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='lhsGrey'>
            <%If Request("rtag_id") <> "" Then
               If pkgInfoHash.Item ("is_pegged")  Then %>
                  <tr>
                     <td>Is Pegged <%=Quick_Help ( "pegged_version" )%></td>
                     <td>Yes</td>
                  </tr>
               <%End If%>
            <%End If%>

            <%If NOT pkgInfoHash.Item ("is_pegged") Then%>
              <%If Request("rtag_id") <> "" Then%>
               <tr>
                  <td>Build Inclusion<%=Quick_Help ( "ripple_build" )%>
                  </td>
                     <%Dim rsQryRipple
                     Set rsQryRipple = OraDatabase.DbCreateDynaset( "SELECT p.PKG_NAME, pv.PV_OVERVIEW, pv.PKG_ID,nvl(dnr.root_pv_id, -1) as root_pv_id, dnr.* FROM DO_NOT_RIPPLE dnr, PACKAGE_VERSIONS pv, PACKAGES p WHERE dnr.RTAG_ID ="& Request("rtag_id") &"AND dnr.PV_ID ="&Request("pv_id") &" AND  pv.pv_id(+) = dnr.ROOT_PV_ID AND p.PKG_ID(+) = pv.PKG_ID", cint(0))
                        If rsQryRipple.RecordCount <> 0  Then
                            Dim CauseText
                            Dim shref_base
                            Dim rowData
                            shref_base = "http://" & archive_server & "/devl/abtlog/"
                            If (IsNull(rsQryRipple("root_file")) AND IsNull(rsQryRipple("root_cause"))) Then
                                If rsQryRipple("root_pv_id") < 0 Then
                                    CauseText = "Directly Excluded"
                                Else
                                    CauseText = "Indirectly excluded by <a class=""txt_linked"" title='"&rsQryRipple("PV_OVERVIEW")&"' href=fixed_issues.asp?pv_id="& rsQryRipple("root_pv_id") & "&rtag_id="&rsQryRipple("rtag_id") & ">" & rsQryRipple("pkg_name") & "</a>"
                                End If

                            ElseIf IsNull(rsQryRipple("root_file")) Then
                               CauseText = rsQryRipple("root_cause")

                            Else
                                CauseText = "<a class=""txt_linked"" title=""" & rsQryRipple("root_file") &_
                                          " Log file may have expired."" " &_
                                          "href=""" & shref_base & rsQryRipple("root_file") & """>" &_
                                          "Build Failure Log File</a>"
                            End If
                            %>
                            <td>No.&nbsp;<%=CauseText%></td>
                         <%Else%>
                            <td>Yes</td>
                         <%End If%>
                     <%rsQryRipple.Close()
                     Set rsQryRipple = nothing%>
               </tr>
               <%End If%>
               <%If pkgInfoHash.Item ("advisory_ripple") Then%>
                <tr>
                      <td>Advisory Ripple <%=Quick_Help ( "advisory_ripple" )%></td>
                      <td>Enabled</td>
                </tr>
               <%End If%>
               <tr>
                  <td>Ripple Type <%=Quick_Help ( "ripple_type" )%></td>
                  <td>
                        <%
                        Response.write "<table border='0' cellspacing='0' cellpadding='0'>"
                        Response.write "<tr>"
                        Response.write "<td class='sublbox_txt'>"
                        Dim selectedRippleType, selectedRippleName, selectedRippleState
                        selectedRippleType = pkgInfoHash.Item ("ripple_field")
                        selectedRippleName = rippleFieldName(selectedRippleType, selectedRippleState)
                        If NOT selectedRippleState Then
                           Response.write "<span class='err_alert'>Required!</span>"
                        Else
                            Response.write( selectedRippleName )
                        End If
                        If ( selectedRippleType = "L" ) Then
                        Dim qry
                        Set qry = OraDatabase.DbCreateDynaset( "SELECT major_limit, minor_limit, patch_limit, build_number_limit from package_versions where pv_id="& Request("pv_id"), cint(0))
                        Response.write " "
                        If isNull(qry("major_limit")) Then
                           Response.write("0")
                        Else
                           Response.write( qry.Fields( "major_limit" ).Value )
                        End If
                        Response.write ", "
                        If isNull(qry("minor_limit")) Then
                           Response.write("0")
                        Else
                           Response.write( qry.Fields( "minor_limit" ).Value )
                        End If
                        Response.write ", "
                        If isNull(qry("patch_limit")) Then
                           Response.write("0")
                        Else
                           Response.write( qry.Fields( "patch_limit" ).Value )
                        End If
                        Response.write ", "
                        If isNull(qry("build_number_limit")) Then
                           Response.write("0")
                        Else
                           Response.write( qry.Fields( "build_number_limit" ).Value )
                        End If
                        qry.Close()
                        Set qry = nothing
                        End If
                        Response.Write "</td>"
                        Response.write "</tr>"
                        Response.write "</table>"
                        %>
                  </td>
               </tr>
            <%End If%>
            <%If Request("rtag_id") <> ""  AND pkgInfoHash.Item("dlocked") = "Y" Then
              Dim sClickStop, sStopText, dRippleStop, sButtonText, sPersistText
              dRippleStop = pkgInfoHash.Item("ripple_stop")
              If dRippleStop = "" OR IsNull(dRippleStop) Then
                sClickStop="vixConfirm('Marked this package so as to prevent it from being built<br>when its dependencies change, until it is manually resumed.<p>Stop Ripple Builds',{title:'Stop Ripple', button:'Stop', url: '_s_ripple_stop.asp?mode=s&rfile="& scriptName &"&pv_id="& parPv_id &"&rtag_id="& parRtag_id &"'});"
                sStopText = "Normal"
                sButtonText = "Change"
              ElseIf dRippleStop = "s" Then 
                sClickStop="vixConfirm('This package has been marked to prevented ripple builds.<p>Remove this marker',{title:'Remove Ripple', button:'Remove', url: '_s_ripple_stop.asp?mode=r&rfile="& scriptName &"&pv_id="& parPv_id &"&rtag_id="& parRtag_id &"'});"
                sStopText = "Ripples will stop at this package"
                sButtonText = "Remove"
              ElseIf dRippleStop = "w" Then 
                sClickStop="vixConfirm('This package has been marked to prevented ripple builds<br>and a ripple is required.<p>Allow ripple to continue.',{title:'Continue Ripple', button:'Allow Ripple', url: '_s_ripple_stop.asp?mode=g&rfile="& scriptName &"&pv_id="& parPv_id &"&rtag_id="& parRtag_id &"'});"
                sStopText = "Ripple required and awaiting manual intervention"
                sButtonText = "Resume"
              ElseIf dRippleStop = "g" Then 
                sStopText = "Ripple resumed. Awaiting build"
              Else
                sStopText = "Ripple Stop: Unknown state:" & dRippleStop 
              End If

              sPersistText = ""
              If pkgInfoHash.Exists("persist_ripple_stop") Then
                  If NOT IsNull(pkgInfoHash.Item("persist_ripple_stop")) Then
                      sPersistText = "&nbsp;[Persistent Ripple Stop Enabled]"
                  End If
              End If

             %>
             <tr>
                  <td>Ripple Stop <%=Quick_Help ( "ripple_stop" )%></td>
                  <td><%=sStopText%><%=sPersistText%>
                  <%If canActionInProject() AND sClickStop <> "" Then%>
                    <span onClick="<%=sClickStop%>" class="txt_linked pointer"><%=sButtonText%><img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
                  <%End If%>
                  </td>
            </tr>
            <%End If%>
         </table>
      </fieldset>
      <br>
   <%End If%>

<!-- REASON FOR RELEASE ----------------------------------------------------------------------------------------------------------------->
   <fieldset class="fset">
      <legend class="body_colb"><img src='images/s_notes.gif' width='21' height='24' hspace='4' border='0' align='absmiddle'>Reason for this version</legend>
      <div style="display: block;float: right;margin-top: -25px;background-color: #FFF;padding: 0 5px;">
          <span class="clipElement txt_linked" title="Copy to Clipboard" data-target="releaseReason">Copy<%=enum_imgClipBoard12%></span>
       <%If pageIsEditable Then%>
             <span title='Insert dependency changes as the comment' onClick="return vixConfirm('Current comments would be deleted.<br>Do you wish to continue?',{url :'_update_versions.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>' })" class="txt_linked pointer">Update Dependencies<img src="images/i_new.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
             <span onClick="MM_openVixIFrame('_wform_reason_for_version.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Reason For Release')" class="txt_linked pointer">Edit<img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
       <%End If%>
      </div>
      <a name="REASON_FOR_THIS_RELEASE"></a>
      <table width="100%" border="0" cellspacing="1" cellpadding="2" >
         <tr>
            <td>
            <%If pkgInfoHash.Item ("comments") <> "" Then%>
               <table width="100%" border='0' cellspacing='0' cellpadding='0' class='allGrey'>
                  <tr>
                     <td id=releaseReason> <%Response.Write( NewLine_To_BR(pkgInfoHash.Item("comments")) )%><br></td>
                  </tr>
               </table>
            <%ElseIf FixedIssues ( parPv_id ) Then%>
               <span>Not specified.</span><br>
            <%Else%>
               <span class='err_alert'>Required!</span><br>
            <%End If%>
            </td>
         </tr>
      </table>
   </fieldset>
   <br>
<!-- REASON FOR NON_RIPPLE RELEASE ----------------------------------------------------------------------------------------------------------------->
   <%If pkgInfoHash.Item ("comments") = "Rippled Build." Then%>

      <fieldset class="fset">
         <legend class="body_colb"><img src='images/s_notes.gif' width='21' height='24' hspace='4' border='0' align='absmiddle'>Reason for last non-ripple build</legend>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class='allGrey'>
            <tr>
               <td>
                  <%
                  'Dim rsQry
                  Call LastPvId(pkgInfoHash.Item ("pv_id"))

                  While rsQry("comments") = "Rippled Build."
                     Call LastPvId(rsQry("last_pv_id"))
                  Wend

                  If pkgInfoHash.Item ("comments") <> "" Then
                     Response.write "<table border='0' cellspacing='0' cellpadding='0'>"
                     Response.write "<tr>"
                     Response.write "<td class='sublbox_txt'><b>Package Version:</b> <b>"& NewLine_To_BR(( rsQry ("pkg_version") ) ) &"</b><br></td>"
                     Response.write "</tr>"
                     Response.write "<tr>"
                     Response.write "<td class='sublbox_txt'>"& NewLine_To_BR(( rsQry ("comments") ) ) &"<br></td>"
                     Response.write "</tr>"

                     Response.write "</table>"%>

                     <table width="100%" border="0" cellspacing="1" cellpadding="2">
                        <tr>
                           <td valign="top" class="sublbox_txt"><b>Fixed Issues For Last Non-Ripple Build</b></td>
                           <td align="right" valign="top">
                              <%If pageIsEditable Then%>
                                 <span onClick="MM_openVixIFrame('_wform_import_issues.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&skip_open=true','Import Fixed Issues')" class="txt_linked pointer">Import Fixed Issues from ClearQuest<img src="images/i_download.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
                              <%End If%>
                           </td>
                        </tr>
                     </table>
                     <%Call Get_Package_Issues ( parPv_id, SQLstr, fixedIssDict, notesIssDict, enumISSUES_STATE_FIXED )
                     If (retVal > 0) Then
                        retVal = Get_CQ_Issues ( SQLstr, rsCQ )
                        If retVal = 0 Then%>
                           <table width="100%" border="0" cellspacing="1" cellpadding="3">
                              <tr>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field" align="center">Fixed</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Issue&nbsp;Id&nbsp;</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Issue&nbsp;DB&nbsp;</td>
                                 <td bgcolor=#e4e9ec nowrap width="100%" class="form_field">Summary</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Issue&nbsp;Type&nbsp;</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Priority</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Status</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Note</td>
                                 <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">&nbsp;</td>
                              </tr>
                              <%If ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF)) Then%>
                                 <%While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))%>
                                    <tr>
                                       <td align="center" nowrap bgcolor=#e4e9ec><img src="images/i_tick_black.gif" width="7" height="7" vspace="2"></td>
                                       <td nowrap class="form_item"><span onClick="MM_openVixIFrame('_wform_issues_details.asp?iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Details')" class="txt_linked pointer"><%=rsCQ("iss_num")%></span></td>
                                       <td class="form_item">
                                            <%If Cint(rsCQ("iss_db")) = enumCLEARQUEST_DEVI_ID Then%>
                                                DEVI
                                            <%Else%>
                                                UNKNOWN
                                            <%End If%></td>
                                       <td class="form_item"><%=NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )%></td>
                                       <td nowrap  class="form_item"><%=rsCQ("issue_type")%></td>
                                       <td nowrap  class="form_item"><%=rsCQ("priority")%></td>
                                       <td nowrap  class="form_item"><%=rsCQ("Status")%></td>
                                       <%If sectionIsEditable Then%>
                                           <%If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then%>
                                             <td align="center"  class="form_item"><span class='pointer' onClick="MM_openVixIFrame('_wform_issue_notes.asp?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>&iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Notes')"><img src="images/i_note_on.gif" width="11" height="12" border="0" title="<%=notesIssDict.Item (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id")))%>"></span></td>
                                          <%Else%>
                                             <td align="center"  class="form_item"><span class='pointer' onClick="MM_openVixIFrame('_wform_issue_notes.asp?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>&iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Notes')"><img src="images/i_note_off.gif" width="11" height="12" border="0" title="Add Note"></span></td>
                                          <%End If%>
                                       <%Else%>
                                          <%If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then%>
                                             <td align="center"  class="form_item"><img src="images/i_note_on.gif" width="11" height="12" border="0" title="<%=notesIssDict.Item (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id")))%>"></td>
                                          <%Else%>
                                             <td align="center"  class="form_item"><img src="images/i_note_off.gif" width="11" height="12" border="0"></td>
                                          <%End If%>
                                       <%End If%>
                                       <%If NOT pageIsEditable Then%>
                                          <td align="center"  class="form_item"><img src="images/i_delete_disable.gif" width="13" height="12" hspace="2" border="0"></td>
                                       <%Else%>
                                          <td align="center"  class="form_item"><span class=pointer data-href="_remove_issue.asp?iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onClick="return vixConfirmDelete('this issue from Release Manager');"><img src="images/i_delete.gif" width="13" height="12" hspace="2" border="0" alt="Delete this issue from the list"></span></td>
                                       <%End If%>
                                    </tr>
                                    <%rsCQ.MoveNext
                                 WEnd
                                 rsCQ.Close()%>
                              <%Else%>
                                 <tr>
                                    <td bgcolor=#e4e9ec nowrap>&nbsp;</td>
                                    <td nowrap></td>
                                    <td class="form_item"></td>
                                    <td class="form_item"></td>
                                    <td class="form_item"></td>
                                    <td class="form_item"></td>
                                    <td class="form_item"></td>
                                    <td class="form_item"></td>
                                    <td align="center"  class="form_item"></td>
                                 </tr>
                              <%End If%>
                           </table>
                        <%End If%>
                        <%If retVal <> 0 Then Response.write enumMSSQL_ERROR
                     End If
                  Else
                     If FixedIssues ( parPv_id ) Then
                        Response.write "<span class='sublbox_txt'>Not specified.</span><br>"
                     Else
                        Response.write "<span class='err_alert'>Required!</span><br>"
                     End If
                  End If

                  rsQry.Close()
                  Set rsQry = nothing
                  %>
               </td>
            </tr>
         </table>
      </fieldset>
      <br>
   <%End If%>
<!-- FIXED ISSUES ----------------------------------------------------------------------------------------------------------------------->
   <fieldset class="fset">
      <legend class="body_colb">
         <img src="images/s_bugs.gif" width="21" height="18" border="0" hspace="4" align='absmiddle'>
         Issues
      </legend>
      <a name="ISSUES"></a>
      <p class="body_colb"><a name="ISSUES"></a></p>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <tr>
            <!-- Jira Issues -->
            <td valign="top" class="body_colb">JIRA Issues</td>
            <td align="right" valign="top">
            <%BuildEditButtonRaw  pageIsEditable, "Import JIRA issues", "Edit", TRUE, "src='images/i_download.gif' width='12' height='12' hspace='2' border='0' align='absmiddle'", "MM_openVixIFrame('_wform_import_jira_issues.asp?pv_id="&parPv_id&"&rtag_id="&parRtag_id&"&skip_open=true','Import Issues')" %>
            </td>

            <%
            Dim issueInfo, el, key
            Set issueInfo = CreateObject( "Scripting.Dictionary" )
            Call getJiraIssueDetails(parPv_id,issueInfo, 0)
            If issueInfo.Count > 0 Then
            %>

            <table width="100%" border="0" cellspacing="1" cellpadding="3" class=stdGrey>
                <thead>
                   <th width="1%" align="center">Fixed</th>
                   <th width="1%" >IssueId</th>
                   <th width="1%" >IssueDB</th>
                   <th width="100%" >Summary</th>
                   <th width="1%" >IssueType</th>
                   <th width="1%" >Priority</th>
                   <th width="1%" >Status</th>
                   <th width="1%" >Note</th>
                   <th width="1%" ></th>
                </thead>
                <%
                For Each key In issueInfo
                Set el = issueInfo.item(key)
                %>
                <tr>
                  <%If el.Exists("resolution") Then %>
                     <td align="center" nowrap>
                        <img src="images/i_tick_black.gif" width="7" height="7" vspace="2">
                     </td>
                  <%Else%>
                     <td align="center" nowrap></td>
                  <%End If%>
                  <td nowrap class="form_item">
                     <a href="<%=el.item("url")%>" target="_blank" class="txt_linked"><%=key%></a>
                  </td>
                  <td><%=el.item("type")%></td>
                  <td><%=NewLine_To_BR ( To_HTML ( el.item("summary") ) )%></td>
                  <td nowrap><%=el.item("issuetype")%></td>
                  <td nowrap><%=el.item("priority")%></td>
                  <td nowrap><%=el.item("status")%></td>
                  <td nowrap></td>
                  <%If NOT pageIsEditable Then%>
                     <td align="center">
                        <img src="images/i_delete_disable.gif" width="13" height="12" hspace="2" border="0">
                     </td>
                  <%Else%>
                     <td align="center">
                        <span class=pointer data-href="_remove_jira_issue.asp?iss_link=<%=el.item("key")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onClick="return vixConfirmDelete('this issue from Release Manager');">
                           <img src="images/i_delete.gif" width="13" height="12" hspace="2" border="0" alt="Delete this issue from the list">
                        </span>
                     </td>
                  <%End If%>
               </tr>
               <%
               Next
               Set issueInfo = nothing
               %>
            </table>
            <%End If%>

            <!-- Fixed ClearCase Issues -->
            <table width="100%" border="0" cellspacing="1" cellpadding="2">
               <tr>
                  <td valign="top" class="body_colb">Fixed Issues</td>
                  <td align="right" valign="top">
                    <%BuildEditButtonRaw  pageIsEditable, "Import Fixed Issues from ClearQuest", "Edit", TRUE, "src='images/i_download.gif' width='12' height='12' hspace='2' border='0' align='absmiddle'", "MM_openVixIFrame('_wform_import_issues.asp?pv_id="&parPv_id&"&rtag_id="&parRtag_id&"&skip_open=true','Import Fixed Issues')" %>
                  </td>
               </tr>
            </table>

            <%retVal = Get_Package_Issues ( parPv_id, SQLstr, fixedIssDict, notesIssDict, enumISSUES_STATE_FIXED )
            If (retVal > 0) Then
               retVal = Get_CQ_Issues ( SQLstr, rsCQ )
               If retVal = 0 Then%>
                  <table width="100%" border="0" cellspacing="1" cellpadding="3" class=stdGrey>
                     <thead>
                        <th width="1%" align="center">Fixed</th>
                        <th width="1%" >IssueId</th>
                        <th width="1%" >IssueDB</th>
                        <th width="100%">Summary</th>
                        <th width="1%" >IssueType</th>
                        <th width="1%" >Priority</th>
                        <th width="1%" >Status</th>
                        <th width="1%" >Note</th>
                        <th width="1%" ></th>
                     </thead>
                     <%If ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF)) Then%>
                        <%While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))%>
                           <tr>
                              <td align="center" nowrap bgcolor=#e4e9ec><img src="images/i_tick_black.gif" width="7" height="7" vspace="2"></td>
                              <td nowrap class="form_item">
                                <%BuildEditButtonRaw  TRUE, rsCQ("iss_num") , "Edit", TRUE, "", "MM_openVixIFrame('_wform_issues_details.asp?iss_db="&rsCQ("iss_db")&"&iss_id="&rsCQ("iss_id")&"','Issue Details')" %>
                              </td>
                              <td class="form_item">
                                 <%If CInt(rsCQ("iss_db")) = enumCLEARQUEST_DEVI_ID Then%>
                                    DEVI
                                 <%Else%>
                                    UNKNOWN
                                 <%End If%>
                              </td>
                              <td class="form_item"><%=NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )%></td>
                              <td nowrap  class="form_item"><%=rsCQ("issue_type")%></td>
                              <td nowrap  class="form_item"><%=rsCQ("priority")%></td>
                              <td nowrap  class="form_item"><%=rsCQ("Status")%></td>
                              <%If sectionIsEditable AND pageIsEditable Then
                                    Dim noteImage
                                    If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then
                                        noteImage = "images/i_note_on.gif"
                                    Else
                                        noteImage = "images/i_note_off.gif"
                                    End If
                                End If
                                 %>


                              <%If sectionIsEditable AND pageIsEditable Then%>
                                 <%If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then%>
                                    <td align="center"  class="form_item">
                                       <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_issue_notes.asp?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>&iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Notes')">
                                          <img src="images/i_note_on.gif" width="11" height="12" border="0" title="<%=notesIssDict.Item (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id")))%>">
                                       </span>
                                    </td>
                                 <%Else%>
                                    <td align="center"  class="form_item">
                                       <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_issue_notes.asp?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>&iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Notes')">
                                          <img src="images/i_note_off.gif" width="11" height="12" border="0" title="Add Note">
                                       </span>
                                    </td>
                                 <%End If%>
                              <%Else%>
                                 <%If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then%>
                                    <td align="center"  class="form_item">
                                       <img src="images/i_note_on.gif" width="11" height="12" border="0" title="<%=notesIssDict.Item (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id")))%>">
                                    </td>
                                 <%Else%>
                                    <td align="center"  class="form_item">
                                       <img src="images/i_note_off.gif" width="11" height="12" border="0">
                                    </td>
                                 <%End If%>
                              <%End If%>
                              <%If NOT pageIsEditable Then%>
                                 <td align="center"  class="form_item">
                                    <img src="images/i_delete_disable.gif" width="13" height="12" hspace="2" border="0">
                                 </td>
                              <%Else%>
                                 <td align="center"  class="form_item">
                                    <span class=pointer data-href="_remove_issue.asp?iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onClick="return vixConfirmDelete('this issue from Release Manager');">
                                       <img src="images/i_delete.gif" width="13" height="12" hspace="2" border="0" alt="Delete this issue from the list">
                                    </span>
                                 </td>
                              <%End If%>
                           </tr>
                           <%rsCQ.MoveNext
                        WEnd
                        rsCQ.Close()%>
                     <%Else%>
                        <tr>
                           <td>&nbsp;</td>
                           <td></td>
                           <td></td>
                           <td></td>
                           <td></td>
                           <td></td>
                           <td></td>
                           <td></td>
                           <td></td>
                        </tr>
                     <%End If%>

                  </table>
               <%End If%>
               <%If retVal <> 0 Then Response.write enumMSSQL_ERROR%>
            <%End If%>

            <!-- Outstanding ClearCase Issues -->
            <table width="100%" border="0" cellspacing="1" cellpadding="2">
               <tr>
                  <td valign="top" class="body_colb">Outstanding Issues</td>
                  <td align="right" valign="top">
                     <%If pageIsEditable Then%>
                        <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_import_issues.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Import Issues')" class="txt_linked">
                           Import Outstanding Issues from ClearQuest
                           <img src="images/i_download.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'>
                        </span>
                     <%End If%>
                  </td>
               </tr>
            </table>

            <%retVal = Get_Package_Issues ( parPv_id, SQLstr, fixedIssDict, notesIssDict, enumISSUES_STATE_IMPORTED )
            If (retVal > 0) Then
               retVal = Get_CQ_Issues ( SQLstr, rsCQ )
               If retVal = 0 Then%>
                  <table width="100%" border="0" cellspacing="1" cellpadding="2" class=stdGrey>
                     <form name="fixedissues" method="get" action="_update_issues_state.asp">
                        <thead>
                           <%If pageIsEditable Then%>
                              <th nowrap width="1%" align="center">Fixed</th>
                           <%End If%>
                           <th  nowrap width="1%" >Issue&nbsp;Id&nbsp;</th>
                           <th  nowrap width="1%" >Issue DB&nbsp;</th>
                           <th  nowrap width="100%" >Summary</th>
                           <th  nowrap width="1%" >Issue&nbsp;Type&nbsp;</th>
                           <th  nowrap width="1%" >Priority</th>
                           <th  nowrap width="1%" >Status</th>
                           <th  nowrap width="1%" >Note</th>
                           <th  nowrap width="1%" >&nbsp;</th>
                        </thead>
                        <%If ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF)) Then%>
                           <%While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))%>
                              <tr>
                                 <%If pageIsEditable Then%>
                                    <td align="center" nowrap>
                                       <input type="checkbox" name="FRfixed" value="<%=rsCQ("iss_db") &"."& rsCQ("iss_id")%>">
                                    </td>
                                 <%End If%>
                                 <td nowrap class="form_item">
                                    <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_issues_details.asp?iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Details')" class="txt_linked">
                                       <%=rsCQ("iss_num")%>
                                    </span>
                                 </td>
                                 <td class="form_item">
                                    <%If CInt(rsCQ("iss_db")) = enumCLEARQUEST_DEVI_ID Then%>
                                       DEVI
                                    <%Else%>
                                       UNKNOWN
                                    <%End If%>
                                 </td>
                                 <td class="form_item"><%=NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )%></td>
                                 <td nowrap  class="form_item"><%=rsCQ("issue_type")%></td>
                                 <td nowrap  class="form_item"><%=rsCQ("priority")%></td>
                                 <td nowrap  class="form_item"><%=rsCQ("Status")%></td>
                                 <%If sectionIsEditable AND pageIsEditable Then%>
                                    <%If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then%>
                                       <td align="center"  class="form_item">
                                          <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_issue_notes.asp?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>&iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Notes')">
                                             <img src="images/i_note_on.gif" width="11" height="12" border="0" alt="<%=notesIssDict.Item (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id")))%>">
                                          </span>
                                       </td>
                                    <%Else%>
                                       <td align="center"  class="form_item">
                                          <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_issue_notes.asp?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>&iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>','Issue Notes')">
                                             <img src="images/i_note_off.gif" width="11" height="12" border="0" alt="Add Note">
                                          </span>
                                       </td>
                                    <%End If%>
                                 <%Else%>
                                    <%If notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) Then%>
                                       <td align="center"  class="form_item">
                                          <img src="images/i_note_on.gif" width="11" height="12" border="0" alt="<%=notesIssDict.Item (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id")))%>">
                                       </td>
                                    <%Else%>
                                       <td align="center"  class="form_item">
                                          <img src="images/i_note_off.gif" width="11" height="12" border="0">
                                       </td>
                                    <%End If%>
                                 <%End If%>
                                 <%If NOT pageIsEditable Then%>
                                    <td align="center"  class="form_item">
                                       <img src="images/i_delete_disable.gif" width="13" height="12" hspace="2" border="0">
                                    </td>
                                 <%Else%>
                                    <td align="center"  class="form_item">
                                       <span class=pointer data-href="_remove_issue.asp?iss_db=<%=rsCQ("iss_db")%>&iss_id=<%=rsCQ("iss_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onClick="return vixConfirmDelete('this issue from Release Manager');">
                                          <img src="images/i_delete.gif" width="13" height="12" hspace="2" border="0" alt="Delete this issue from the list">
                                       </span>
                                    </td>
                                 <%End If%>
                              </tr>
                              <%rsCQ.MoveNext
                           WEnd
                           rsCQ.Close()%>
                           <%If pageIsEditable Then%>
                              <tr class=blank>
                                 <td align="center" nowrap bgcolor=#e4e9ec>
                                    <input type="submit" name="Apply" value="Apply" class="form_btn">
                                 </td>
                                 <td></td>
                                 <td></td>
                                 <td></td>
                                 <td></td>
                                 <td></td>
                                 <td></td>
                                 <td></td>
                                 <td></td>
                              </tr>
                           <%End If%>
                        <%Else%>
                           <tr>
                              <%If pageIsEditable Then%>
                                 <td bgcolor=#e4e9ec nowrap>&nbsp;</td>
                              <%End If%>
                              <td nowrap></td>
                              <td class="form_item"></td>
                              <td class="form_item"></td>
                              <td class="form_item"></td>
                              <td class="form_item"></td>
                              <td class="form_item"></td>
                              <td class="form_item"></td>
                              <td align="center"  class="form_item"></td>
                           </tr>
                        <%End If%>
                        <input name="pv_id" type="hidden" value="<%=parPv_id%>">
                        <input name="rtag_id" type="hidden" value="<%=parRtag_id%>">
                     </form>
                  </table>
               <%End If%>
               <%If retVal <> 0 Then Response.write enumMSSQL_ERROR%>
            <%End If%>
<!-- DEVI-050133 Although it would seem to the human eye that the following row and table closing tags are needed, -->
<!--             they do in fact cause the page to be rendered incorrectly. Hence they are commented out for now   -->
<!--             until the true cause of the mis-rendering can be ascertained.                                    -->
<!--     </tr> -->
<!--  </table> -->
   </fieldset>
   <br>
<!-- DEPENDENCY ISSUES (NOT FOR PATCHES!) ------------------------------------------------------------------------------------------------------->

   <%If IsNull(pkgInfoHash.Item ("is_patch")) Then%>
      <fieldset class="fset"><legend class="body_colb"><img src="images/s_bugs.gif" width="21" height="18" border="0" hspace="4" align='absmiddle'>Dependency Issues</legend>
         <table width="100%" border="0" cellspacing="1" cellpadding="2" class=stdGrey>

            <%
            If  Request("ShowIssues") <> "" Then
                retVal = Get_Package_Issues ( parPv_id, SQLstr, NULL, NULL, NULL )
            Else
                retVal = 0
                %>
                <tr>
                    <td>
                        <span class='pointer txt_linked' onClick="window.location.href=window.location.href+'&ShowIssues=1'">Show Issues of Dependent Packages</span>
                    </td>
                </tr>
                <%
            End If
            If (retVal > 0) Then
               retVal = Get_Dependency_CQ_Issues ( SQLstr, rsCQ, depIssDict, issArr )
               If retVal = 0 Then%>
                  <%
                  currG1 = 0
                  G1_template = _
                  "<tr>"&_
                  "  <td colspan='7'><img src='images/spacer.gif' width='2' height='2'></td>"&_
                  "</tr>"&_
                  "<tr>"&_
                  "  <td colspan='7' bgcolor=#e4e9ec class='form_item'>/*DEP_NAME_VERSION*//*REASONS*/</td>"&_
                  "</tr>"
                  Set rsDepIss = OraDatabase.DbCreateDynaset( SQL_Dependency_Issues( parPv_id ), cint(0))
                  %>
                  <%If ((NOT rsDepIss.BOF) AND (NOT rsDepIss.EOF)) Then%>
                     <%While ((NOT rsDepIss.BOF) AND (NOT rsDepIss.EOF))%>
                        <%
                        iss_db_id = Cstr(rsDepIss("iss_db") &"."& rsDepIss("iss_id"))
                        G1_style = Replace(G1_template, "/*DEP_NAME_VERSION*/", "<SPAN class='envolPkg'><b>"& rsDepIss("pkg_name") &" "& rsDepIss("pkg_version") &"</b></SPAN>")
                        If IsNull(rsDepIss("iss_id")) Then
                           If IsNull(rsDepIss("reasons")) Then
                              G1_style = Replace(G1_style, "/*REASONS*/", "<br>Reason for this version is not specified.")
                           Else
                              G1_style = Replace(G1_style, "/*REASONS*/", "<br>"& NewLine_To_BR ( To_HTML ( rsDepIss("reasons") ) ) )
                           End If
                        Else
                           If IsNull(rsDepIss("reasons")) Then
                              G1_style = Replace(G1_style, "/*REASONS*/", "")
                           Else
                              G1_style = Replace(G1_style, "/*REASONS*/", "<br>"& NewLine_To_BR ( To_HTML ( rsDepIss("reasons") ) ) )
                           End If
                        End If

                        Call Group_By ( rsDepIss("pv_id"), G1_style, currG1 )
                        If NOT IsNull(rsDepIss("iss_id")) Then
                           If rsDepIss("pv_id") <> currG1 Then
                              currG1 = rsDepIss("pv_id")%>
                              <thead>
                                 <th width="1%" align="center"></th>
                                 <th width="1%" align="center">Fixed</th>
                                 <th width="1%" >IssueId</th>
                                 <th width="1%" >Issue DB</th>
                                 <th width="100%">Summary</th>
                                 <th width="1%" >IssueType</th>
                                 <th width="1%" >Priority</th>
                              </thead>
                           <%End If%>
                           <tr>
                              <td bgcolor=#e4e9ec></td>
                              <td align="center" nowrap>
                                 <%If CInt(rsDepIss("iss_state")) = enumISSUES_STATE_FIXED Then%>
                                    <img src="images/i_tick_black.gif" width="7" height="7" vspace="2">
                                 <%Else%>
                                    <img src="images/spacer.gif" width="7" height="7" vspace="2">
                                 <%End If%>
                              </td>
                              <td nowrap class="form_item"><span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_issues_details.asp?iss_db=<%=asDepIss( iss_db_id, enumLoc_iss_db )%>&iss_id=<%=asDepIss( iss_db_id, enumLoc_iss_id )%>','Issue Details')" class="txt_linked"><%=asDepIss( iss_db_id, enumLoc_iss_num )%></span></td>
                              <td class="form_item">
                                    <%If CInt(asDepIss( iss_db_id, enumLoc_iss_db )) = enumCLEARQUEST_DEVI_ID Then%>
                                        DEVI
                                    <%Else%>
                                        UNKNOWN
                                    <%End If%></td>
                              <td class="form_item"><%=asDepIss( iss_db_id, enumLoc_summary)%></td>
                              <td nowrap  class="form_item"><%=asDepIss( iss_db_id, enumLoc_issue_type)%></td>
                              <td nowrap  class="form_item"><%=asDepIss( iss_db_id, enumLoc_priority)%></td>
                           </tr>
                        <%End If%>
                        <%rsDepIss.MoveNext
                     WEnd
                     rsDepIss.Close()
                     Set rsDepIss = nothing%>
                  <%Else%>
                     <tr>
                        <td nowrap></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                     </tr>
                  <%End If%>
               <%End If%>
               <%If retVal <> 0 Then Response.write enumMSSQL_ERROR%>
            <%End If%>
         </table>
      </fieldset>
      <br>
   <%End If%>
<!-- UNIT TESTS --------------------------------------------------------------------------------------------------------------------->
   <%
   Dim testCheckMSG, testCheckMSG_ID, testCheckNote, testCheckTestsFound
   Call CheckUnitTestsState ( parPv_id, testCheckMSG, testCheckMSG_ID, testCheckNote, testCheckTestsFound  )
   Set rsQry = OraDatabase.DbCreateDynaset( SQL_Unit_Tests ( parPv_id ), cint(0))
   %>
   <fieldset class="fset">
      <legend class="body_colb"><img src="images/i_unit_test.gif" width="18" height="25" hspace="4" border="0" align='absmiddle' alt="">Unit Tests
      <%If testCheckMSG_ID = 0 AND (pkgInfoHash.Item("dlocked") <> "Y") Then%>
         &nbsp;&nbsp;<%=testCheckMSG%>
      <%End If%></legend>
      <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
           <%If ( scriptName = "fixed_issues.asp" ) Then%>
              <%If objAccessControl.UserLogedIn AND (pageIsEditable OR (pkgInfoHash.Item("dlocked") = "Y")) Then%>
                 <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_unit_test.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Add Unit Test')" class="txt_linked">New Test<img src="images/i_new.gif" width="13" height="13" hspace="2" border="0" align='absmiddle' alt="Add new test."></span>
              <%End If%>
              <%If (NOT testCheckTestsFound) AND (testCheckMSG_ID = 0)  Then%>
                 <a href='_not_done_unit_test.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&notdone=Y' class='txt_linked'>Click here if Not Done!<img src="images/i_new.gif" width="13" height="13" hspace="2" border="0" align='absmiddle' alt="Add new test."></a>
              <%End If%>
           <%End If%>
      </div>
      <a name="UNIT_TESTS"></a>
      <%If (NOT testCheckTestsFound) AND (testCheckMSG_ID = -1) Then%>
         <table width="100%" border="0" cellspacing="1" cellpadding="2">
            <tr>
               <td class="form_item">
                  <%Call DisplayInfo ( "UNIT_TEST_NOT_DONE", 300 )%>
                  <span class="rep_small">Last Modified: <%=testCheckMSG%></span><br>
                  <%=NewLine_To_BR( To_HTML ( testCheckNote ) )%>
               </td>
            </tr>
         </table>
      <%End If%>

      <table width="100%" border="0" cellspacing="1" cellpadding="2" class='stdGrey'>
         <form name="review" method="get" action="_update_unit_test_accepted_state.asp">
            <thead>
               <th width="1%" nowrap valign="middle">Test Type</th>
               <th width="100%" nowrap valign="middle">Test Summary</th>
               <th width="1%" nowrap align="center" valign="middle">Test<br>Completed</th>
               <th width="1%" nowrap align="center" valign="middle">Passed<br># / Total</th>
               <th width="1%" nowrap align="center" valign="middle">Results</th>
               <th width="1%" nowrap align="center" valign="middle">Accepted</th>
               <th width="1%" nowrap align="center" valign="middle">Review<br>Completed</th>
               <th width="1%" nowrap valign="middle">Comments /<br>Issue#</th>
               <th width="1%" ></th>
            </thead>
            <%
               Dim ShowApply: ShowApply = FALSE
               While ((NOT rsQry.BOF) AND (NOT rsQry.EOF) )%>
               <tr>
                  <%If NOT pageIsEditable Then%>
                     <%If NOT IsNull(rsQry("test_id")) AND ( scriptName = "fixed_issues.asp") Then %>
                        <td nowrap   valign="top"><span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_update_unit_test.asp?test_id=<%=rsQry("test_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Update Unit Test')" class="txt_linked"><img src="images/i_test.gif" width="16" height="16" hspace="3" align='absmiddle' border="0"><%=rsQry("test_type_name")%></span></td>
                     <%Else %>
                        <td nowrap   valign="top"><img src="images/i_test.gif" width="16" height="16" hspace="3" align='absmiddle'><%=rsQry("test_type_name")%></td>
                     <%End If%>
                  <%Else %>
                     <td nowrap   valign="top"><span class='pointer txt_linked' onClick="MM_openVixIFrame('<%If Not IsNull(rsQry("test_id")) Then%>_wform_update_unit_test.asp<%Else%>_wform_unit_test.asp<%End If%>?test_id=<%=rsQry("test_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&test_type_id=<%=rsQry("test_type_id")%>','Update Unit Test')" class="txt_linked"><img src="images/i_test.gif" width="16" height="16" hspace="3" align='absmiddle' border="0"><%=rsQry("test_type_name")%></span></td>
                  <%End If %>
                  <%If rsQry("test_type_id") <> CStr(enumTEST_TYPE_AUTOBUILD_UTF) Then %>
                  <td valign="top"><%=NewLine_To_BR( To_HTML( rsQry("test_summary") ))%></td>
                  <td nowrap   valign="top"><%If ( NOT IsNull(rsQry("tester")) ) Then%><%=DisplayDate ( rsQry("completion_date") )%><br>by <%=emailField(rsQry("tester"),rsQry("tester_email"))%><%End If%></td>
                  <td nowrap   valign="top" align="center"><%=rsQry("numof_test")%></td>

                  <%If CInt(rsQry("test_type_id")) = enumTEST_TYPE_AUTOMATIC Then %>
                     <td align="center" valign="top">
                        <%If NOT IsNull( rsQry("results_url") ) Then%>
                           <%If InStr( rsQry("results_url"), "http://" ) = 1 Then%>
                              <a href="<%=rsQry("results_url")%>" target="_blank"><img src="images/i_results.gif" width="15" height="16" border="0" alt="View test results"></a>
                           <%Else%>
                              <a href="<%=dpkg_archiveURL & pkgInfoHash.Item ("pkg_name") &"/"& pkgInfoHash.Item ("pkg_version") & rsQry("results_url")%>" target="_blank"><img src="images/i_results.gif" width="15" height="16" border="0" alt="View test results"></a>
                           <%End If%>
                        <%End If%>
                     </td>
                  <% Else %>
                     <td align="center" valign="top">
                        <%If NOT IsNull( rsQry("results_attachment_name") ) Then%>
                            <a href="<%=TEMP_FOLDER &"/"& pkgInfoHash.Item ("pkg_name") &"/"& pkgInfoHash.Item ("pkg_version") &"/"& rsQry("results_attachment_name")%>" target="_blank"><img src="images/i_results.gif" width="15" height="16" border="0" alt="View test results"></a>
                        <%End If%>
                     </td>
                  <%End If%>

                  <td nowrap bgcolor=#e4e9ec class="sublbox_txt" valign="top" align="center">
                        <%=FormatAccepted(rsQry("test_accepted"), rsQry("test_id"))%>
                        <%ShowApply = true%>
                  </td>
                  <td nowrap   valign="top"><%If NOT IsNull(rsQry("reviewee")) Then%><%=DisplayDate ( rsQry("acceptance_date") )%><br>by <%=emailField(rsQry("reviewee"),rsQry("reviewee_email"))%><%End If%></td>
                  <td valign="top"><%=NewLine_To_BR( To_HTML( rsQry("review_comments") ))%></td>
                  <%Else%>
                    <td colspan=7><a class=txt_linked href='unit_test_log.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>'>See Unit Tests tab</a></td>
                  <%End If%>
                  <%
                  If (  (    pageIsEditable _
                         AND (scriptName = "fixed_issues.asp") _
                         AND (IsNull(rsQry("test_accepted")) OR (rsQry("test_accepted") = enumUNIT_TEST_NOTACCEPTED))) _
                      OR _
                        (    objAccessControl.UserLogedIn _
                         AND (scriptName = "fixed_issues.asp") _
                         AND (pkgInfoHash.Item("dlocked") = "Y") _
                         AND (IsNull(rsQry("test_accepted")) OR (rsQry("test_accepted") = enumUNIT_TEST_NOTACCEPTED)) _
                         AND (rsQry("test_type_id") <> CStr(enumTEST_TYPE_AUTOBUILD_UTF))) ) Then
                  %>
                     <td valign="top"><%If NOT IsNull(rsQry("test_id")) Then%><span class=pointer data-href="_remove_unit_test.asp?test_id=<%=rsQry("test_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onClick="return vixConfirmDelete('this unit test');"><img src="images/i_delete.gif" alt="Remove this test." width="13" height="12" hspace="3" border="0"></span><%End If%></td>
                  <% Else %>
                     <td valign="top"></td>
                  <%End If%>
               </tr>
               <%
               rsQry.MoveNext
            WEnd
            %>
            <tr class=blank>
               <td></td>
               <td></td>
               <td></td>
               <td></td>
               <td></td>
               <td align="center">
                  <%If ShowApply AND (testCheckTestsFound) AND (testCheckMSG_ID = 0) AND ( scriptName = "fixed_issues.asp" ) AND pageIsEditable Then%>
                     <input type="submit" name="Apply" value="Apply" class="form_btn">
                  <%End If%>
               </td>
               <td></td>
               <td></td>
               <td></td>
            </tr>
            <input name="pv_id" type="hidden" value="<%=parPv_id%>">
            <input name="rtag_id" type="hidden" value="<%=parRtag_id%>">
         </form>
      </table>
   </fieldset>
    <br>
<!-- CODE REVIEW ------------------------------------------------------------------------------------------------------------------->
   <%Set rsQry = OraDatabase.DbCreateDynaset( SQL_CodeReview ( parPv_id ), cint(0))%>
   <fieldset class="fset">
      <legend class="body_colb"><img src='images/s_code_review.gif' width='21' height='23' hspace='4' border='0' align='absmiddle'>Code Review</legend>
      <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
           <%If ( scriptName = "fixed_issues.asp" ) Then%>
              <%If objAccessControl.UserLogedIn AND (pageIsEditable OR (pkgInfoHash.Item("dlocked") = "Y")) Then%>
                 <span class='pointer txt_linked' onClick="MM_openBrWindow('_wform_update_code_review.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','CodeReviewEdit','scrollbars=yes,status=yes,resizable=yes,width=950,height='+ ( screen.height - 100 ) +',top=0,left=0')" class="txt_linked">Edit<img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
              <%End If%>
              <%If rsQry.RecordCount > 0 Then%>
                 <%If NOT IsNull(rsQry("date_of_review")) Then%>
                    &nbsp;
                    <span class='pointer txt_linked' onClick="MM_openBrWindow('_wform_code_review.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','CodeReviewView','scrollbars=yes,status=yes,resizable=yes,width=950,height='+ ( screen.height - 100 ) +',top=0,left=0')" class="txt_linked">View<img src="images/i_open.gif" width="12" height="12" hspace="2" border="0" align='absmiddle'></span>
                 <%End If%>
              <%End If%>
           <%End If%>
      </div>
      <a name="CODE_REVIEW" id="CODE_REVIEW"></a>
      <%If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then%>
         <%If NOT IsNull(rsQry("date_of_review")) Then%>
            <table width="100%"  border="0" cellspacing="1" cellpadding="4" class=lhsGrey>
               <tr>
                  <td>Date of Review</td>
                  <td width='1%' nowrap><%=DisplayDate ( rsQry("date_of_review") )%>&nbsp;&nbsp;&nbsp;</td>
                  <td width='1%' align="right" nowrap class="hdr">&nbsp;&nbsp;&nbsp;Time Spent:</td>
                  <td><%=rsQry("time_spent")%> hrs </td>
               </tr>
               <tr>
                  <td>Reason for Review</td>
                  <td colspan="3"  ><%=NewLine_To_BR( To_HTML( rsQry("review_reason") ))%></td>
               </tr>
               <tr>
                  <td>Review Results </td>
                  <td colspan="3"  >
                  <%=DecodeOverallResult( rsQry("review_results") )%>
                  </td>
               </tr>
               <tr>
                  <td>Issues Raised </td>
                  <td colspan="3"  ><%=NewLine_To_BR( To_HTML( rsQry("issues_raised") ))%></td>
               </tr>
            </table>
         <%Else%>
            <table width="100%" border="0" cellspacing="1" cellpadding="2">
               <tr>
                  <td><span class='sublbox_txt'>No details found.</span></td>
               </tr>
            </table>
         <%End If%>
      <%Else%>
         <table width="100%" border="0" cellspacing="1" cellpadding="2">
            <tr>
               <td><span class='sublbox_txt'>No details found.</span></td>
            </tr>
         </table>
      <%End If%>

      <!-- Code Review URL section for this version -->
      <%Call GetCodeReviewURLs( parPv_id, rsCodeReviewURL )%>
      <table width="100%" border="0" cellspacing="1" cellpadding="2" class=stdGrey>
         <tr>
            <td align="left" valign="top" class="body_colb">Code Review URL for this version</td>
            <td align="right" valign="top" <%If NOT IsNull(rsCodeReviewURL("url")) Then Response.Write("colspan='5'")%>>
               <%If (scriptName = "fixed_issues.asp") AND objAccessControl.UserLogedIn AND (pageIsEditable OR (pkgInfoHash.Item("dlocked") = "Y")) Then%>
                  <span class='pointer txt_linked' onclick="MM_openVixIFrame('_wform_edit_code_review_url.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Edit Code Review URL')" class="txt_linked">New<img src="images/i_new.gif" width="13" height="13" hspace="2" border="0" align='absmiddle'></span>
               <%End If%>
            </td>
         </tr>
         <%If IsNull(rsCodeReviewURL("full_url")) Then %>
            <tr>
               <td width="100%"  colspan="2">
                  <span class='sublbox_txt'>No details found.</span>
               </td>
            </tr>
         <%Else%>
            <tr>
               <td bgcolor=#e4e9ec class="form_field">URL</td>
               <td bgcolor=#e4e9ec width="25%" class="form_field">Reason for Review</td>
               <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Date of Review</td>
               <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Last Modified</td>
               <td bgcolor=#e4e9ec nowrap width="18px" class="form_field"></td>
               <td bgcolor=#e4e9ec nowrap width="18px" class="form_field"></td>
            </tr>
            <%If ((NOT rsCodeReviewURL.BOF) AND (NOT rsCodeReviewURL.EOF)) Then
               While ((NOT rsCodeReviewURL.BOF) AND (NOT rsCodeReviewURL.EOF))%>
                  <tr>
                     <%If (Left(rsCodeReviewURL("url"),4) = "http") Then%>
                        <td valign="top"><a href="<%=rsCodeReviewURL("url")%>" target="_blank" class="txt_linked"><%=rsCodeReviewURL("url")%></a></td>
                     <%Else%>
                        <td valign="top"><a href="<%=rsCodeReviewURL("full_url")%>" target="_blank" class="txt_linked"><%=rsCodeReviewURL("full_url")%></a></td>
                     <%End If%>
                     <td valign="top"><%=rsCodeReviewURL("reason")%></td>
                     <td valign="top"><%=DisplayDate(rsCodeReviewURL("date_of_review"))%></td>
                     <td valign="top"><%=DisplayDate(rsCodeReviewURL("last_modified"))%></td>
                     <%If (scriptName = "fixed_issues.asp") AND objAccessControl.UserLogedIn AND (pageIsEditable OR (pkgInfoHash.Item("dlocked") = "Y")) Then%>
                        <td valign="top"><span class='pointer txt_linked' onclick="MM_openVixIFrame('_wform_edit_code_review_url.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&cr_id=<%=rsCodeReviewURL("cr_id")%>','Edit Code Review URL')" class="txt_linked"><img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle' alt="Edit this code review URL"></span></td>
                        <td valign="top"><span calss=pointer data-href="_remove_code_review_url.asp?cr_id=<%=rsCodeReviewURL("cr_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onclick="return vixConfirmDelete('this code review URL from Release Manager');"><img src="images/i_delete.gif" width="13" height="12" hspace="2" border="0" alt="Delete this code review URL" align='absmiddle'></span></td>
                     <%Else%>
                        <td valign="top"></td>
                        <td valign="top"></td>
                     <%End If%>
                  </tr>
                  <%rsCodeReviewURL.MoveNext
               WEnd
            Else%>
               <tr>
                  <td></td>
                  <td></td>
                  <td></td>
                  <td></td>
                  <td></td>
                  <td></td>
               </tr>
            <%End If
         End If%>
      </table>

      <!-- Code Review URL section for last non-ripple build -->
      <%If pkgInfoHash.Item ("comments") = "Rippled Build." Then
         Call LastPvId(pkgInfoHash.Item ("pv_id"))
         While rsQry("comments") = "Rippled Build."
            Call LastPvId(rsQry("last_pv_id"))
         Wend
         Dim sOldPkgVersion
         Dim oldDlocked
         Call Get_Pkg_Short_Info ( rsQry("pv_id"), NULL, NULL, sOldPkgVersion, NULL, NULL, oldDlocked )
         Call GetCodeReviewURLs( rsQry("pv_id"), rsCodeReviewURL )
         %>
         <table width="100%" border="0" cellspacing="1" cellpadding="2">
            <tr>
               <td align="left" valign="top" class="body_colb" <%If NOT IsNull(rsCodeReviewURL("url")) Then Response.Write("colspan='6'")%>>Code Review URL for last non-ripple build (<a class="lbl_link" href="fixed_issues.asp?pv_id=<%=rsQry("pv_id")%>"><%=sOldPkgVersion%></a>)</td>
            </tr>
            <%If IsNull(rsCodeReviewURL("url")) Then%>
               <tr>
                  <td width="100%"  colspan="2">
                     <span class='sublbox_txt'>No details found.</span>
                  </td>
               </tr>
            <%Else%>
               <tr>
                  <td bgcolor=#e4e9ec class="form_field">URL</td>
                  <td bgcolor=#e4e9ec width="30%" class="form_field">Reason for Review</td>
                  <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Date of Review</td>
                  <td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Last Modified</td>
                  <td bgcolor=#e4e9ec nowrap width="18px" class="form_field"></td>
                  <td bgcolor=#e4e9ec nowrap width="18px" class="form_field"></td>
               </tr>
               <%If ((NOT rsCodeReviewURL.BOF) AND (NOT rsCodeReviewURL.EOF)) Then
                  While ((NOT rsCodeReviewURL.BOF) AND (NOT rsCodeReviewURL.EOF))%>
                     <tr>
                        <%If (Left(rsCodeReviewURL("url"),4) = "http") Then%>
                           <td valign="top"><a href="<%=rsCodeReviewURL("url")%>" target="_blank" class="txt_linked"><%=rsCodeReviewURL("url")%></a></td>
                        <%Else%>
                           <td valign="top"><a href="<%=rsCodeReviewURL("full_url")%>" target="_blank" class="txt_linked"><%=rsCodeReviewURL("full_url")%></a></td>
                        <%End If%>
                        <td valign="top"><%=rsCodeReviewURL("reason")%></td>
                        <td valign="top"><%=rsCodeReviewURL("date_of_review")%></td>
                        <td valign="top"><%=rsCodeReviewURL("last_modified")%></td>
                        <%If (scriptName = "fixed_issues.asp") AND objAccessControl.UserLogedIn AND (pageIsEditable OR (oldDlocked = "Y")) Then%>
                           <td valign="top"><span class='pointer txt_linked' onclick="MM_openVixIFrame('_wform_edit_code_review_url.asp?pv_id=<%=rsCodeReviewURL("pv_id")%>&rtag_id=<%=parRtag_id%>&cr_id=<%=rsCodeReviewURL("cr_id")%>','Edit Code Review URL')" class="txt_linked"><img src="images/i_edit.gif" width="12" height="12" hspace="2" border="0" align='absmiddle' alt="Edit this code review URL"></span></td>
                           <td valign="top"><span class=pointer data-href="_remove_code_review_url.asp?cr_id=<%=rsCodeReviewURL("cr_id")%>&pv_id=<%=rsCodeReviewURL("pv_id")%>&rtag_id=<%=parRtag_id%>" onclick="return vixConfirmDelete('this code review URL from Release Manager');"><img src="images/i_delete.gif" width="13" height="12" hspace="2" border="0" alt="Delete this code review URL" align='absmiddle'></span></td>
                        <%Else%>
                           <td valign="top"></td>
                           <td valign="top"></td>
                        <%End If%>
                     </tr>
                     <%rsCodeReviewURL.MoveNext
                  WEnd
               Else%>
                  <tr>
                     <td></td>
                     <td></td>
                     <td></td>
                     <td></td>
                     <td></td>
                     <td></td>
                  </tr>
               <%End If
            End If%>
         </table>
      <%End If%>

   </fieldset>
   <br>
<!-- ADDITIONAL NOTES ------------------------------------------------------------------------------------------------------------------->
   <fieldset class="fset">
      <legend class="body_colb"><img src="images/i_additional_notes.gif" width="26" height="20" hspace="4" border="0" align='absmiddle' alt="">Additional Notes</legend>
      <div style="display: block;float: right;margin-top: -20px;background-color: #FFF;padding: 0 5px;">
       <%If pageIsEditable Then%>
          <span class='pointer txt_linked' onClick="MM_openVixIFrame('_wform_additional_note.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Additional Notes')" class="txt_linked">New Note<img src="images/i_new.gif" width="13" height="13" hspace="2" border="0" align='absmiddle' title="Add new note."></span>
       <%End If%>
      </div>
      <a name="ADDITIONAL_NOTES"></a>
      <table width="100%" border="0" cellspacing="1" cellpadding="2" class=stdGrey>
         <%Set rsQry = OraDatabase.DbCreateDynaset( SQL_Additional_Notes ( parPv_id ), cint(0))%>
         <%If rsQry.RecordCount < 1 Then%>
            <tr>
               <td>&nbsp;</td>
            </tr>
         <%End If%>
         <%While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
            <tr class=hdr>
               <td width="100%" nowrap>
                  <%If pageIsEditable Then%>
                     <span onClick="MM_openVixIFrame('_wform_update_additional_note.asp?note_id=<%=rsQry("note_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>','Update Note')" class="pointer"><img src="images/i_edit.gif" alt="Edit" width="12" height="12" hspace="3" vspace="3" border="0" align='absmiddle'><%=To_HTML (rsQry("note_title"))%></span>
                  <%Else%>
                     <%=To_HTML (rsQry("note_title"))%>
                  <%End If%>
               </td>
               <td width="1%">
                  <%If pageIsEditable Then%>
                     <span class=pointer data-href="_remove_additional_note.asp?note_id=<%=rsQry("note_id")%>&pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>" onClick="return vixConfirmDelete('this note');"><img src="images/i_delete.gif" alt="Remove this note." width="13" height="12" hspace="3" border="0"></span>
                  <%End If%>
               </td>
            </tr>
            <tr>
               <td colspan="2">
                  <%=NewLine_To_BR( To_HTML ( rsQry("note_body") ) )%><br>
                  <span class="rep_small">Last Modified: <%=rsQry("lastmod")%></span>
               </td>
            </tr>
            <tr>
               <td colspan="2"><img src='images/spacer.gif' width='2' height='2'></td>
            </tr>
            <%rsQry.MoveNext
         WEnd%>
      </table>
   </fieldset>
   <br>
<%End If%>