Rev 7395 | Rev 7457 | 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 rsCQDim rsDepIssDim SQLstrDim fixedIssDictDim notesIssDictDim issArr()Dim depIssDictDim sDocTitleDim rsQry, rsTempDim iss_db_id, G1_template, G1_style, currG1Dim retValDim baseURLDim rsProjIdDim rsPkgMetricsDim rsCodeReviewURLDim vcsInfoCollector'------------ Constants Declaration -----------Const enumLoc_iss_db = 0Const enumLoc_iss_id = 1Const enumLoc_iss_num = 2Const enumLoc_summary = 3Const enumLoc_status = 4Const enumLoc_priority = 5Const 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 TipsformTips.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.baseView = stdTip(200, 'Base View', 'The group to which that package has been logically assigned to within this release.'+'<p>If a WIP or PENDING Version will replace a package already in this release then it will take on the base view of the existing package when it is released.'+'<p>If the released package is in a different Base View, then it will be displayed in [square brackets]' );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.');formTips.tips.JatsExtraction_SVN = stdTip(250,'Subversion', 'Various extraction commands.<br>Choose a command that suits the current requirements.' +'<p>Default - suits most requirements' +'<br>Tag - Trace Tag back to development branch' +'<br>Tip - Tip of the development branch' +'<br>Work - Default' +'<br>Exact - Extract the tagged instance' );formTips.tips.JatsExtraction_GIT = stdTip(200,'Git', 'Various extraction commands.<br>Choose a command that suits the current requirements.' );formTips.tips.JatsExtraction_CC = stdTip(200, 'ClearCase', 'Various extraction commands.<br>Choose a command that suits the current requirements.' +'<p>A Project Branch will be displayed if configured, but it may not be suitable for all packages.');formTips.tips.JatsExtraction_CVS = stdTip(200,'CVS','Various extraction commands.<br>Choose a command that suits the current requirements.' );formTips.tips.JatsExtraction_ = stdTip(200,'Unknown Version Control System','Various extraction commands.<br>Choose a command that suits the current requirements.' );formTips.tips.s3Sync = stdTip(200, 'SYNC to S3','When enabled and the Release is also configured to support S3 Sync and this package contains an S3Tranfer.json file then files in the S3Tranfer.json file will be synced to an S3 bucket<p>The target bucket name is based on the rtagId');</script><%'----------------------------------------------------------------------------------------------------------------------------------------Function asDepIss ( SSiss_db_id, SScolumn )If NOT depIssDict.Exists (SSiss_db_id) Then Exit FunctionasDepIss = issArr ( SScolumn, CInt( depIssDict.Item (SSiss_db_id) ) )End Function'----------------------------------------------------------------------------------------------------------------------------------------Function FixedIssues ( parPv_id )Dim sqlstr, rsTempsqlstr = "SELECT pv_id FROM cq_issues WHERE pv_id = "& parPv_id &" AND iss_state = "& enumISSUES_STATE_FIXEDSet rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) ThenFixedIssues = TRUEElseFixedIssues = FALSEEnd IfrsTemp.Close()Set rsTemp = nothingEnd Function'----------------------------------------------------------------------------------------------------------------------------------------Function SQL_Package_Information ( nPv_id )SQL_Package_Information = _" SELECT *"&_" FROM PACKAGE_VERSIONS pv"&_" WHERE pv.pv_id = "& nPv_idEnd 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 databaseFunction Get_Package_Issues ( NNpv_id, SSsql, DDfixedIss, DDnotesIssDict, nIssState )Dim rsTemp, sqlstr, DEVIiss, retValIf IsObject(DDfixedIss) Then' Find this package issuessqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &" AND iss_state = "& nIssStateElse' Find dependency issuessqlstr = "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 IfSet rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))retVal = rsTemp.RecordCountDEVIiss = "-1"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& rsTemp("iss_id")End IfIf IsObject(DDfixedIss) Then' Store only Fixed IssuesIf 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 IfIf IsObject(DDnotesIssDict) Then' Store NotesIf 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 IfrsTemp.MoveNextWEnd' Construct SQL statement for CQ databaseSSsql = ReadFile( rootPath & "queries\cq_issues.sql" )SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)rsTemp.Close()Set rsTemp = nothingGet_Package_Issues = retValEnd Function'----------------------------------------------------------------------------------------------------------------------------------------Sub LastPvId (PvId)Dim sqlstrsqlstr = "SELECT pv_id, pkg_version, comments, last_pv_id FROM PACKAGE_VERSIONS WHERE PV_ID= "& PvIdSet rsQry = OraDatabase.DbCreateDynaset( sqlstr, cint(0) )End Sub'----------------------------------------------------------------------------------------------------------------------------------------Function Get_CQ_Issues ( SSsql, OOrsCQ )On Error Resume NextSet OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))Get_CQ_Issues = Err.NumberEnd Function'----------------------------------------------------------------------------------------------------------------------------------------Function Get_Dependency_CQ_Issues ( SSsql, OOrsCQ, DDdepIss, AAiss )Dim recCntOn Error Resume NextSet OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))' Exit with error if error occursGet_Dependency_CQ_Issues = Err.NumberIf Err.Number <> 0 Then Exit FunctionrecCnt = 1While ((NOT OOrsCQ.BOF) AND (NOT OOrsCQ.EOF))ReDim Preserve AAiss( 6, recCnt )'If NOT DDdepIss.Exists Cstr(rsTemp("iss_db") &"."& rsTemp("iss_id")) ThenDDdepIss.Add Cstr(OOrsCQ("iss_db") &"."& OOrsCQ("iss_id")), Cstr(recCnt)'End IfAAiss( 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 + 1OOrsCQ.MoveNextWEndOOrsCQ.Close()End Function'----------------------------------------------------------------------------------------------------------------------------------------Sub Group_By ( rsG, styleG, currG )If rsG = currG Then Exit SubResponse.write styleG'currG = rsGEnd Sub'----------------------------------------------------------------------------------------------------------------------------------------Sub CheckUnitTestsState ( nPv_id, outMSG, outMSG_ID, outNote, outTestsFound )Dim sqlstr, rsTempsqlstr = 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)) ThenoutMSG = rsTemp("msg")outMSG_ID = CInt(rsTemp("msg_id"))outNote = rsTemp("test_summary")outTestsFound = FALSEIf IsNull(rsTemp("msg")) Then outTestsFound = TRUEEnd IfrsTemp.Close()Set rsTemp = nothingEnd Sub'----------------------------------------------------------------------------------------------------------------------------------------Function FormatAccepted ( sAccepted, nTest_id )Dim tempSTRIf IsNull(nTest_id) Then Exit FunctiontempSTR = ""If pageIsEditable ThentempSTR = "<select name='acc"& nTest_id &"' class='form_item'>"ElsetempSTR = "<select name='acc"& nTest_id &"' class='form_item' disabled>"End IfIf sAccepted = enumUNIT_TEST_ACCEPTED ThentempSTR = tempSTR &"<option></option>"&_"<option value='"& enumUNIT_TEST_ACCEPTED &"' SELECTED>Yes</option>"&_"<option value='"& enumUNIT_TEST_NOTACCEPTED &"'>No</option>"ElseIf sAccepted = enumUNIT_TEST_NOTACCEPTED ThentempSTR = tempSTR &"<option></option>"&_"<option value='"& enumUNIT_TEST_ACCEPTED &"'>Yes</option>"&_"<option value='"& enumUNIT_TEST_NOTACCEPTED &"' SELECTED>No</option>"ElsetempSTR = tempSTR &"<option SELECTED></option>"&_"<option value='"& enumUNIT_TEST_ACCEPTED &"'>Yes</option>"&_"<option value='"& enumUNIT_TEST_NOTACCEPTED &"'>No</option>"End IftempSTR = tempSTR & "</select>"FormatAccepted = tempSTREnd 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_idEnd 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 = 0Select Case CInt( cCheck )Case enumCODE_REVIEW_ACCEPTEDDecodeOverallResult = "Accepted"Case enumCODE_REVIEW_MINOR_UPDATESDecodeOverallResult = "Minor updates required"Case enumCODE_REVIEW_MAJOR_REWORKDecodeOverallResult = "Major rework required"Case ElseDecodeOverallResult = ""End SelectEnd Function'----------------------------------------------------------------------------------------------------------------------------------------Function GetBuildType ( nBuildType, nBuildName )if (IsNull(nBuildType) OR (nBuildType = "")) ThenGetBuildType = "Build type not defined"ElseIf (IsNull(nBuildName) OR (nBuildName = "") ) ThenGetBuildType = "Build Name not defined"ElseGetBuildType = nBuildNameEnd If'' Wrap around bracketsGetBuildType = "("& GetBuildType &")"End Function'----------------------------------------------------------------------------------------------------------------------------------------Sub GetPackageMetrics (NNpv_id, rsTemp)OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBERSet 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_NUMBERSet 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_NUMBEROraDatabase.Parameters.Add "PV_ID", NNPv_id, ORAPARM_INPUT, ORATYPE_NUMBERIf NNRtag_id <> "" ThenIf pkgInfoHash.Item ("dlocked") <> "Y" ThenSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec.sql"), cint(0))ElseSet rsQry = OraDatabase.DbCreateDynaset( Replace(GetQuery("config_spec.sql"), "PV.LAST_PV_ID", "PV.PV_ID"), cint(0))End IfElseIf pkgInfoHash.Item ("dlocked") <> "Y" ThenSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec_nortag.sql"), cint(0))ElseSet rsQry = OraDatabase.DbCreateDynaset( Replace(GetQuery("config_spec_nortag.sql"), "PV.LAST_PV_ID", "PV.PV_ID"), cint(0))End IfEnd IfOraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "PV_ID"End Sub'---------------------------------------------------------------' Returns the jats extraction commandsSub 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 = -1Dim baseCmdsjats_extractable = falsesjats_cmds_qh = vcsInfoCollector.Item("vcs_tag")If ( sjats_cmds_qh = "CC" OR sjats_cmds_qh = "SVN" ) Thensjats_extractable = trueEnd If' if not released then use last package version vcs tag and branch else use current vcs tagIf dlocked <> "Y" Then' not released, so get last package version idDim last_version_validDim last_pv_id: last_pv_id = pkgInfoHash.Item("last_pv_id")Dim last_pkg_vcs_tagDim VcsTypelast_version_valid = TRUEIf IsNull(pkgInfoHash.Item ("previous_version")) Thenlast_version_valid = FALSEElseIf last_pv_id = pkgInfoHash.Item ("pv_id") Thenlast_version_valid = FALSEElseIf pkgInfoHash.Item ("pkg_count") = 1 Thenlast_version_valid = FALSEEnd IfIf last_version_valid Thenlast_pkg_vcs_tag = Get_Pkg_Vcs_Tag(last_pv_id)End IfIf (last_version_valid AND last_pkg_vcs_tag <> "") ThenVcsType = Mid(last_pkg_vcs_tag, 1, InStr(1, last_pkg_vcs_tag, "::") - 1 )sjats_cmds_qh = VcsTypebaseCmd = "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") ThenCall 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 <> "") Thenii = ii+1 : sjats_cmds(ii) = baseCmd & " -branch " & config_branchEnd IfEnd IfIf (VcsType = "SVN") Thenii = 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 IfElse'ii = ii+1 : sjats_cmds(ii) = "No Previous version to extract"End IfbaseCmd = "jats vcsrelease -extract -label """ & pkg_vcs_tag & """"ii = ii+1 : sjats_cmds(ii) = baseCmdElse' releasedif sjats_extractable ThenbaseCmd = "jats vcsrelease -extract -label """ & pkg_vcs_tag & """"ii = ii+1 : sjats_cmds(ii) = baseCmdElsebaseCmd = "Cannot be extracted with JATS"ii = ii+1 : sjats_cmds(ii) = baseCmdEnd IfEnd If' Test Commandif sjats_extractable Thenajats_cmd_test = "jats vcsrelease -test -label """ & pkg_vcs_tag & """"Elseajats_cmd_test = "Cannot be extracted with JATS"End IfReDim Preserve sjats_cmds(ii)rsQry.Close()Set rsQry = nothingEnd 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_NUMBEROraDatabase.Parameters.Add "RETURN_CODE","xxxx", ORAPARM_OUTPUT, ORATYPE_VARCHAR2OraDatabase.Parameters("RETURN_CODE").MinimumSize = 200On Error Resume NextOraDatabase.ExecuteSQL ("BEGIN :RETURN_CODE := PK_RMAPI.RETURN_VCS_TAG( :PV_ID ); END;")Get_Pkg_Vcs_Tag = OraDatabase.Parameters("RETURN_CODE").ValueOn Error Goto 0OraDatabase.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 rsQryDim thisProject, otherProjects, someProjectsGetFollowing = "Not logged in"If objAccessControl.UserLogedIn() ThenOraDatabase.Parameters.Add "PKG_ID", pkgInfoHash.Item ("pkg_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PROJ_ID", pkgInfoHash.Item ("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId(), ORAPARM_INPUT, ORATYPE_NUMBERIf pkgInfoHash.Item ("proj_id") <> "" ThenSet 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 > 0Set 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 > 0If thisProject ThenIf otherProjects ThenGetFollowing = "Yes. In this and " & rsQry.RecordCount & " other projects"ElseGetFollowing = "Yes. Only this project"End IfElseIf otherProjects ThenGetFollowing = "Yes. In " & rsQry.RecordCount & " other projects"ElseGetFollowing = "No"End IfEnd IfElseSet rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM PACKAGE_INTEREST WHERE PKG_ID = :PKG_ID AND USER_ID = :USER_ID", cint(0))someProjects = rsQry.RecordCount > 0If rsQry.RecordCount > 0 ThenGetFollowing = "Yes. In " & rsQry.RecordCount & " Projects"ElseGetFollowing = "No"End IfEnd IfOraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "PROJ_ID"OraDatabase.Parameters.Remove "PKG_ID"rsQry.Close()Set rsQry = nothingIf pageIsEditable ThenGetFollowing = 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 IfEnd IfEnd Function'---------------------------------------------------------------' Description: Return a string displaying licence information'---------------------------------------------------------------Function getLicenceDim rsQry, rsSql, lNameDim licenceListDim joiner : joiner = ""Dim otherVersions : otherVersions = ""Set licenceList=Server.CreateObject("Scripting.Dictionary")getLicence = ""' Determine license for this package-versionOraDatabase.Parameters.Add "PV_ID", pkgInfoHash.Item ("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet 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 & lNamelicenceList.Add lName, "Y"joiner = ", "rsQry.MoveNextWEndrsQry.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) ThenotherVersions = otherVersions & joiner & rsQry("name")joiner = ", "End IfrsQry.MoveNextWEndOraDatabase.Parameters.Remove "PV_ID"rsQry.Close()Set rsQry = nothingIf otherVersions <> "" ThengetLicence = getLicence & ". Other Versions: " & otherVersionsEnd IfEnd Function'-------------------------------------------------Function getLinkUrl(pvid)Dim joiner : joiner = "?"getLinkUrl = scriptNameIf parRtag_id <> "" ThengetLinkUrl = getLinkUrl + joiner + "rtag_id=" + parRtag_idjoiner = "&"End IfgetLinkUrl = getLinkUrl + joiner + "pv_id=" + pvidEnd 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 versionTextDim tagTextDim showLinkDim clipClassDim ExtractTextDim queryResultIf IsNull(pvid) ThenversionText = "Initial Version"tagText = NULLshowLink = FALSEElseSet queryResult = OraDatabase.DbCreateDynaset( "SELECT pkg_version from package_versions where pv_id =" & pvid , cint(0))If (NOT queryResult.BOF ) AND (NOT queryResult.EOF) ThenversionText = queryResult("pkg_version")tagText = Get_Pkg_Vcs_Tag(pvid)showLink = isDefined("showPrevVerLinks")ElseversionText = "Unknown"tagText = NULLshowLink = FALSEEnd IfqueryResult.Close()Set queryResult = nothingEnd IfIf sjats_extractable ThenclipClass = "clip"ExtractText = NewLine_To_BR ( To_HTML(tagText) )ElseclipClass = ""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 DisplayCreationCommandsDim VcsType: VcsType = vcsInfoCollector.Item("vcs_tag")Dim title: title = "Package Creation Hints"Dim SvnUrlDim SvnLabelIf VcsType = "SVN" ThenIf pkgInfoHash.Item("src_path") <> "" ThenSvnUrl = pkgInfoHash.Item("src_path")Dim lastBit: lastBit = InStrRev(SvnUrl, "/" )If lastBit > 1 ThenSvnUrl = Left(SvnUrl, lastBit-1)End IfElseSvnUrl = "AUPERASVN0X/RepoName/" & pkgInfoHash.Item ("pkg_name")End IfIf pkgInfoHash.Item("pkg_label") <> "" ThenSvnLabel = pkgInfoHash.Item("pkg_label")ElseSvnLabel = "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=<PkgDir> </td></tr><tr><td nowrap class="clip"> jats svn create_package -new <%=SvnUrl%> -label=<%=SvnLabel%> -import=<PkgDir> </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 IfEnd 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 sstateDim bcan_unlockDim stitleDim bis_patchDim spkgTypeDim shrefbis_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 buttonbcan_unlock = canActionControlInProject("UnlockPatch")spkgType = "Patch"Elsebcan_unlock = canActionControlInProject("EditCriticalInfoForLockedPackage")spkgType = "Package"End IfIf pkgInfoHash.Item("is_sdkpkg") Then bcan_unlock = FALSESelect 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 SelectIf bcan_unlock ThenIf (pkgInfoHash.Item ("dlocked") = "Y") Then' Unlock patch/package.stitle="Unlock the " & spkgTypeshref="_s_unlock_package.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_idElseIf (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_idElse' unlock patch/package.stitle="Unlock the " & spkgTypeshref="_s_unlock_package.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_idbcan_unlock = FALSEEnd IfEnd if%><tr><td><% If bcan_unlock Then %><span title='<%=stitle%>' class='pointer' onClick="window.location='<%=shref%>'">Status: <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><%If parRtag_id <> "" ThenCall Get_Pkg_Info_s3SyncDim s3TextIf pkgInfoHash("s3Sync") <> "Y" Thens3Text = "No"ElseIf pkgInfoHash("s3SyncEnabled") <> "Y" Thens3Text = "Yes. Ignored as the Release does not support S3Sync"Elses3Text = "Yes"End IfEnd IfDim s3Content, s3ContentClassIf pkgInfoHash("s3Sync") = "Y" AND pkgInfoHash("s3SyncContent") <> "Y" Thens3Content = "No S3 transferable content detected"If pkgInfoHash("s3SyncEnabled") = "Y" Then s3ContentClass = "err_alert"ElseIf pkgInfoHash("s3Sync") <> "Y" AND pkgInfoHash("s3SyncContent") = "Y" Thens3Content = "S3 transferable content detected"End IfIf s3Content <> "" Thens3Content = ". <span class="&s3ContentClass&">" & s3Content & "</span>"End If%><tr><td>Sync to S3:<%=Quick_Help("s3Sync")%></td><td><%=s3Text%><%=s3Content%></tr><%End If%><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 sonclickDim imgClassDim 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 ReleaseIf 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 OR vcsInfoCollector.Item("vcs_tag") = enum_VCS_GIT_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')" %><%=Quick_Help("baseView")%></td><td class="clip"><% Dim CleanView : CleanView = pkgInfoHash.Item("view_name")If CleanView = "" Then CleanView = "N/A"If pkgInfoHash.Item("release_view_name") <> "" AND pkgInfoHash.Item("view_name") <> pkgInfoHash.Item("release_view_name") ThenResponse.Write "[" & pkgInfoHash.Item("release_view_name") & "] "End IfResponse.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") <> "" ThenIf pkgInfoHash.Item ("bs_id") = "1" ThenResponse.write "<td>JATS<br></td>"ElseIf pkgInfoHash.Item ("bs_id") = "2" ThenResponse.write "<td>ANT<br></td>"ElseIf pkgInfoHash.Item ("bs_id") = "3" ThenResponse.write "<td>NONE"If pkgInfoHash.Item("build_type") = "A" ThenResponse.write "<span class='err_alert'> [Must be specified for an automated build]</span>"End IfResponse.write "<br></td>"End IfElseIf vcsInfoCollector.Item("vcs_tag") <> enum_VCS_UNCONTROLLED_TAG ThenResponse.write "<td><span class='err_alert'>Required!</span><br></td>"ElseResponse.write "<td>Unspecified<br></td>"End IfEnd If%></tr><%If (NOT IsNull(pkgInfoHash.Item ("bs_id"))) AND (pkgInfoHash.Item ("bs_id") <> "3") Then%><tr><td>Build Environment:</td><%'--- Get Build Env DetailsSet 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 = 0While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)If currG1 <> CInt(rsTemp("bm_id")) Then%><tr><td colspan="2" nowrap><%=rsTemp("bm_name")%> <%=GetBuildType( rsTemp("bsa_id"),rsTemp("bsa_name") )%></td></tr><%currG1 = CInt(rsTemp("bm_id"))End IfrsTemp.MoveNextWEnd%></table><%End If%><%End If%></td></tr><%End If%><%' Get JATS extraction commandsDim sjats_cmd_test, sjats_cmds_qh, sjats_extractableReDim sjats_cmds(6)call Jats_Extract_Command(sjats_cmds, sjats_cmd_test, sjats_cmds_qh, sjats_extractable)Dim PrevVerTitle : PrevVerTitle = "Previous Version:"' Previous VersionsIf pkgInfoHash.Item ("pkg_count") = 1 AND pkgInfoHash.Item ("dlocked") = "N" ThenCall DisplayVersionRow(NULL, PrevVerTitle, "PreviousVcsTag")Call DisplayCreationCommands()ElseIf IsNull(pkgInfoHash.Item ("is_patch")) ThenIf canActionControlInProject("ChangePreviousVersion") AND NOT pkgInfoHash.Item("is_sdkpkg") Thensonclick="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>"ElsePrevVerTitle = PrevVerTitle & "<img src='images/i_edit_disable.gif' width='12' height='12' border='0' align='absmiddle'>"End IfCall DisplayVersionRow(pkgInfoHash.Item ("last_pv_id"), PrevVerTitle, "PreviousVcsTag")Dim iLastSignificantPVIDDim iRippleBasePVIDCall 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)) )%> </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 commandDim prevVcsTagDim curVcsTagDim sBcCmd, sBcClassprevVcsTag = Get_Pkg_Vcs_Tag(iLastSignificantPVID)curVcsTag = Get_Pkg_Vcs_Tag(parPv_id)sBcCmd = ""sBcClass = ""If pkgInfoHash.Item ("pkg_count") = 1 ThensBcCmd = "No prior version compare against"ElseIf (IsNull(prevVcsTag) OR prevVcsTag = "" ) ThensBcCmd = "No prior label to compare against"ElseIf (IsNull(curVcsTag) OR curVcsTag = "" ) ThensBcCmd = "Current VCS tag not yet specified"ElseIf (not sjats_extractable) ThensBcCmd = "Cannot be extracted with JATS"ElsesBcCmd = "jats vcsdiff -old=" & prevVcsTag & " -new=" & curVcsTagsBcClass = "clip"End IfsBcCmd = 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" ThenOraDatabase.Parameters.Add "PV_ID", pkgInfoHash.Item ("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet 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 IfrsTemp.Close()Set rsTemp = NothingOraDatabase.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 rsCommentSet 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") <> "" ThenResponse.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 IfEnd IfrsComment.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" ThenResponse.write "<b><font color='red'>Critical.</font></b>"ElseIf pkgInfoHash.Item ("sbom_priority") = "I" ThenResponse.write "<b>Important.</b>"ElseIf pkgInfoHash.Item ("sbom_priority") = "R" ThenResponse.write "Routine"ElseIf pkgInfoHash.Item ("sbom_priority") = "L" ThenResponse.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") <> "" ThenResponse.write "<table border='0' cellspacing='0' cellpadding='0'>"Response.write "<tr>"If pkgInfoHash.Item ("change_type") = "M" ThenResponse.write "<td class='sublbox_txt'>Major Change.<br></td>"ElseIf pkgInfoHash.Item ("change_type") = "N" ThenResponse.write "<td class='sublbox_txt'>Minor Change.<br></td>"ElseIf pkgInfoHash.Item ("change_type") = "P" ThenResponse.write "<td class='sublbox_txt'>Patch Change.<br></td>"ElseIf pkgInfoHash.Item ("change_type") = "F" ThenResponse.write "<td class='sublbox_txt'>Version Specified by User.<br></td>"ElseResponse.write "<td><span class='err_alert'>Unknown Change Type: " & pkgInfoHash.Item ("change_type") & "</span></td>"End IfResponse.write "</tr>"Response.write "</table>"ElseResponse.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 = FALSEcanEditRippleProperties = (pageIsEditable AND canShowControlInProject( "RipplePackage" )) OR _canShowControlInProject( "AdvRipPackageVersions" ) OR _canShowControlInProject( "PegPackageVersions" ) OR _criticalSectionIsEditableIf 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") <> "" ThenIf 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 rsQryRippleSet 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 ThenDim CauseTextDim rowDataIf (IsNull(rsQryRipple("root_file")) AND IsNull(rsQryRipple("root_cause"))) ThenIf rsQryRipple("root_pv_id") < 0 ThenCauseText = "Directly Excluded"ElseCauseText = "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 IfElseIf IsNull(rsQryRipple("root_file")) ThenCauseText = rsQryRipple("root_cause")ElseCauseText = "<a class=""txt_linked"" title=""" & rsQryRipple("root_file") &_" Log file may have expired."" " &_"href=""" & ABTLOG_URL & "/" & rsQryRipple("root_file") & """>" &_"Build Failure Log File</a>"End If%><td>No. <%=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, selectedRippleStateselectedRippleType = pkgInfoHash.Item ("ripple_field")selectedRippleName = rippleFieldName(selectedRippleType, selectedRippleState)If NOT selectedRippleState ThenResponse.write "<span class='err_alert'>Required!</span>"ElseResponse.write( selectedRippleName )End IfIf ( selectedRippleType = "L" ) ThenDim qrySet 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")) ThenResponse.write("0")ElseResponse.write( qry.Fields( "major_limit" ).Value )End IfResponse.write ", "If isNull(qry("minor_limit")) ThenResponse.write("0")ElseResponse.write( qry.Fields( "minor_limit" ).Value )End IfResponse.write ", "If isNull(qry("patch_limit")) ThenResponse.write("0")ElseResponse.write( qry.Fields( "patch_limit" ).Value )End IfResponse.write ", "If isNull(qry("build_number_limit")) ThenResponse.write("0")ElseResponse.write( qry.Fields( "build_number_limit" ).Value )End Ifqry.Close()Set qry = nothingEnd IfResponse.Write "</td>"Response.write "</tr>"Response.write "</table>"%></td></tr><%End If%><%If Request("rtag_id") <> "" AND pkgInfoHash.Item("dlocked") = "Y" ThenDim sClickStop, sStopText, dRippleStop, sButtonText, sPersistTextdRippleStop = pkgInfoHash.Item("ripple_stop")If dRippleStop = "" OR IsNull(dRippleStop) ThensClickStop="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" ThensClickStop="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" ThensClickStop="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" ThensStopText = "Ripple resumed. Awaiting build"ElsesStopText = "Ripple Stop: Unknown state:" & dRippleStopEnd IfsPersistText = ""If pkgInfoHash.Exists("persist_ripple_stop") ThenIf NOT IsNull(pkgInfoHash.Item("persist_ripple_stop")) ThensPersistText = " [Persistent Ripple Stop Enabled]"End IfEnd 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 rsQryCall LastPvId(pkgInfoHash.Item ("pv_id"))While rsQry("comments") = "Rippled Build."Call LastPvId(rsQry("last_pv_id"))WendIf pkgInfoHash.Item ("comments") <> "" ThenResponse.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) ThenretVal = 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 Id </td><td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Issue DB </td><td bgcolor=#e4e9ec nowrap width="100%" class="form_field">Summary</td><td bgcolor=#e4e9ec nowrap width="1%" class="form_field">Issue Type </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"> </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.MoveNextWEndrsCQ.Close()%><%Else%><tr><td bgcolor=#e4e9ec nowrap> </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_ERROREnd IfElseIf FixedIssues ( parPv_id ) ThenResponse.write "<span class='sublbox_txt'>Not specified.</span><br>"ElseResponse.write "<span class='err_alert'>Required!</span><br>"End IfEnd IfrsQry.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, keySet 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 issueInfoSet 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><%NextSet 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) ThenretVal = 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 ThenDim noteImageIf notesIssDict.Exists (Cstr(rsCQ("iss_db") &"."& rsCQ("iss_id"))) ThennoteImage = "images/i_note_on.gif"ElsenoteImage = "images/i_note_off.gif"End IfEnd 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.MoveNextWEndrsCQ.Close()%><%Else%><tr><td> </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) ThenretVal = 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 Id </th><th nowrap width="1%" >Issue DB </th><th nowrap width="100%" >Summary</th><th nowrap width="1%" >Issue Type </th><th nowrap width="1%" >Priority</th><th nowrap width="1%" >Status</th><th nowrap width="1%" >Note</th><th nowrap width="1%" > </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.MoveNextWEndrsCQ.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> </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") <> "" ThenretVal = Get_Package_Issues ( parPv_id, SQLstr, NULL, NULL, NULL )ElseretVal = 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 IfIf (retVal > 0) ThenretVal = Get_Dependency_CQ_Issues ( SQLstr, rsCQ, depIssDict, issArr )If retVal = 0 Then%><%currG1 = 0G1_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")) ThenIf IsNull(rsDepIss("reasons")) ThenG1_style = Replace(G1_style, "/*REASONS*/", "<br>Reason for this version is not specified.")ElseG1_style = Replace(G1_style, "/*REASONS*/", "<br>"& NewLine_To_BR ( To_HTML ( rsDepIss("reasons") ) ) )End IfElseIf IsNull(rsDepIss("reasons")) ThenG1_style = Replace(G1_style, "/*REASONS*/", "")ElseG1_style = Replace(G1_style, "/*REASONS*/", "<br>"& NewLine_To_BR ( To_HTML ( rsDepIss("reasons") ) ) )End IfEnd IfCall Group_By ( rsDepIss("pv_id"), G1_style, currG1 )If NOT IsNull(rsDepIss("iss_id")) ThenIf rsDepIss("pv_id") <> currG1 ThencurrG1 = 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.MoveNextWEndrsDepIss.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, testCheckTestsFoundCall 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%> <%=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%>¬done=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 = FALSEWhile ((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.MoveNextWEnd%><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%> <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") )%> </td><td width='1%' align="right" nowrap class="hdr"> 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)) ThenWhile ((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.MoveNextWEndElse%><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><%End IfEnd If%></table><!-- Code Review URL section for last non-ripple build --><%If pkgInfoHash.Item ("comments") = "Rippled Build." ThenCall LastPvId(pkgInfoHash.Item ("pv_id"))While rsQry("comments") = "Rippled Build."Call LastPvId(rsQry("last_pv_id"))WendDim sOldPkgVersionDim oldDlockedCall 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)) ThenWhile ((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.MoveNextWEndElse%><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><%End IfEnd 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> </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.MoveNextWEnd%></table></fieldset><br><%End If%>