Rev 7379 | Rev 7417 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%Option explicitResponse.Expires = 0 ' always load the page, dont store%><%'=====================================================' Package Information'=====================================================%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><!--#include file="common/_popup_window_common.asp"--><!--#include file="common/_form_window_common.asp"--><%' Set rfile parameter. This is a return page after LoginCall objPMod.StoreParameter ( "rfile", "fixed_issues.asp" )'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_login.asp"--><!--#include file="_access_control_general.asp"--><!--#include file="_access_control_project.asp"--><%'------------ Variable Definition -------------Dim parPv_idDim queryDim rsQry, rsTempDim checkedDim FRdeployableYES, FRdeployableNODim FRs3SyncYES, FRs3SyncNODim pageIsEditable, criticalSectionIsEditableDim disableCriticalSectionEditDim Query_StringDim parVCSTagDim parBSNameDim submit_action_urlDim on_submit_validationDim sDefaultLabel, sLabel, sLabelReadOnlyDim isWIP'------------ Constants Declaration -----------'------------ Variable Init -------------------parPv_id = QStrPar("pv_id")parVCSTag = QStrPar("vcs_tag")parBSName = QStrPar("bs_name")'----------------------------------------------%><%'----------------------------------------------------------------------------------------------------------------------' Function to get the build standard name (eg. JATS) from a build standard IDFunction bs_name_from_bs_id( nBs_Id )Dim rsTemp, Query_Stringbs_name_from_bs_id = "NONE"If NOT IsNull(nBs_Id) ThenQuery_String = " SELECT * FROM build_standards WHERE bs_id = "& nBs_IdSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Thenbs_name_from_bs_id = rsTemp("bs_name")End IfEnd IfEnd Function'----------------------------------------------------------------------------------------------------------------------' Function to get the build standard ID from a build standard name (eg. JATS)Function bs_id_from_bs_name( nBs_Name )Dim rsTemp, Query_Stringbs_id_from_bs_name = 0Query_String = " SELECT * FROM build_standards WHERE bs_name = '"& nBs_Name &"'"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Thenbs_id_from_bs_name = rsTemp("bs_id")End IfEnd Function'----------------------------------------------------------------------------------------------------------------------' Function to get the Version Control System type ID for ClearCase, based on the assumption that the TAG used for' ClearCase is 'CC''Function get_clearcase_vcs_type_id()' Dim rsTemp, Query_String'' Query_String = _' " SELECT * FROM VCS_TYPE WHERE tag = 'CC'"'' Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))' If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then' get_clearcase_vcs_type_id = rsTemp("vcs_type_id")' Else' Call RaiseMsg(enum_MSG_ERROR, "Database is missing a VCS setting for Name: ClearCase, Tag: CC")' End If' rsTemp.Close' Set rsTemp = nothing'End Function'----------------------------------------------------------------------------------------------------------------------' Function to get the Version Control System type ID for Subversion, based on the assumption that the TAG used for' Subversion is 'SVN'Function get_subversion_vcs_type_id()Dim rsTemp, Query_StringQuery_String = _" SELECT * FROM VCS_TYPE WHERE tag = 'SVN'"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Thenget_subversion_vcs_type_id = rsTemp("vcs_type_id")ElseCall RaiseMsg(enum_MSG_ERROR, "Database is missing a VCS setting for Name: Subversion, Tag: SVN")End IfrsTemp.CloseSet rsTemp = nothingEnd Function'----------------------------------------------------------------------------------------------------------------------' Function to get the Version Control System type ID for Uncontrolled, based on the assumption that the TAG used for' ClearCase is 'UC'Function get_uncontrolled_vcs_type_id()Dim rsTemp, Query_StringQuery_String = _" SELECT * FROM VCS_TYPE WHERE tag = 'UC'"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Thenget_uncontrolled_vcs_type_id = rsTemp("vcs_type_id")ElseCall RaiseMsg(enum_MSG_ERROR, "Database is missing a VCS setting for Name: Uncontrolled, Tag: UC")End IfrsTemp.CloseSet rsTemp = nothingEnd Function'----------------------------------------------------------------------------------------------------------------------' Determine s3Sync State' This is a property of the release, more than of a package' Y, N, "<empty>"Function getS3SyncState(nnRtagId, nnPvId)Dim rsTemp, Query_StringgetS3SyncState = ""If nnRtagId <> "" ThenQuery_String = "Select NVL(S3SYNC, 'N') as S3SYNC from Release_Content where rtag_id = " & nnRtagId & " AND pv_id = " & nnPvIdSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) ThengetS3SyncState = rsTemp("S3SYNC")If getS3SyncState <> "Y" Then getS3SyncState = "N"End IfrsTemp.CloseSet rsTemp = nothingEnd IfEnd Function' Update the S3Sycn State, but only if th evalue has changedSub updateS3SyncState( nnRtagId, nnPvId, cState)Dim rsTemp, Query_StringIf nnRtagId <> "" ThenQuery_String = "Select S3SYNC from Release_Content where rtag_id = " & nnRtagId & " AND pv_id = " & nnPvIdSet rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))Dim Data: Data = rsTemp("S3SYNC")If IsNull(Data) Then Data = "N"cState = Iif( cState = 1 ,"Y", "N")If ( UCase(cState) <> UCase( Data ) ) ThenrsTemp.EditrsTemp.Fields("S3SYNC").Value = UCase(cState)rsTemp.UpdateEnd IfrsTemp.CloseSet rsTemp = nothingEnd IfEnd Sub'----------------------------------------------------------------------------------------------------------------------Sub Get_Form_Details( nPv_id, ByRef objDetails )Dim rsTemp, Query_String' Dim CC_vcs_type_idDim SVN_vcs_type_idDim UC_vcs_type_id' Get VCS type IDs to use when evaluating legacy rows created before the introduction of the VCS tables and logic.' These get uses in the query (see below) in the CASE statement.' CC_vcs_type_id = get_clearcase_vcs_type_id()SVN_vcs_type_id = get_subversion_vcs_type_idUC_vcs_type_id = get_uncontrolled_vcs_type_id()Query_String = _" SELECT pkg.pkg_name, pv.pkg_version, pv.pkg_label, pv.src_path, pv.pv_description,"&_" pv.pv_overview, pv.v_ext, is_deployable, is_build_env_required, pv.build_type,"&_" pv.change_type, pv.bs_id, pv.dlocked,"&_" (CASE WHEN pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN "& UC_vcs_type_id &_" WHEN pv.vcs_type_id IS NULL THEN " & SVN_vcs_type_id &_" ELSE pv.vcs_type_id END) AS vcs_type_id "&_" FROM package_versions pv, packages pkg"&_" WHERE pv.pkg_id = pkg.pkg_id"&_" AND pv_id = "& nPv_idSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) ThenobjDetails.Item("pkg_name") = rsTemp("pkg_name")objDetails.Item("pkg_version") = rsTemp("pkg_version")objDetails.Item("pkg_label") = rsTemp("pkg_label")objDetails.Item("src_path") = rsTemp("src_path")objDetails.Item("pv_description") = rsTemp("pv_description")objDetails.Item("pv_overview") = rsTemp("pv_overview")objDetails.Item("v_ext") = rsTemp("v_ext")objDetails.Item("is_deployable") = rsTemp("is_deployable")objDetails.Item("is_build_env_required") = rsTemp("is_build_env_required")objDetails.Item("build_type") = rsTemp("build_type")objDetails.Item("change_type") = rsTemp("change_type")objDetails.Item("bs_id") = rsTemp("bs_id")objDetails.Item("dlocked") = rsTemp("dlocked")objDetails.Item("vcs_type_id") = rsTemp("vcs_type_id")rsTemp.Close' This code allows the form to be altered by the user from the original build std configuration to a new' one without having to update the database - we only want to do that when the user hits the' submit button. The relevant fields in the objDetails are obtained in different ways accordingly.If IsNull(parBSName) OR parBSName = "" ThenobjDetails.Item("bs_name") = bs_name_from_bs_id( objDetails.Item("bs_id") )ElseobjDetails.Item("bs_id") = bs_id_from_bs_name( parBSName )objDetails.Item("bs_name") = parBSNameEnd If' Re-evaluate the is_build_env_required flag setting based on the possibly updated bs_nameIf UCase(objDetails.Item("bs_name")) = "NONE" ThenobjDetails.Item("is_build_env_required") = "N"ElseobjDetails.Item("is_build_env_required") = "Y"End If' This code allows the form to be altered by the user from the original VCS configuration to a new' one without having to update the database - we only want to do that when the user hits the' submit button. The relevant fields in the objDetails are obtained in different ways accordingly.If IsNull(parVCSTag) OR parVCSTag = "" Thencall vcs_info_from_vcs_type_id( objDetails.Item("vcs_type_id"), objDetails )Elsecall vcs_info_from_vcs_tag( parVCSTag, objDetails )End IfEnd IfrsTemp.CloseSet rsTemp = Nothing'' Get other items needed for the formobjDetails.Item("s3Sync") = getS3SyncState(parRtag_id, nPv_id)End Sub'----------------------------------------------------------------------------------------------------------------------' Updates the database, specifically the is_build_env_required flag setting in the package_versions table' The update is only performed if it is needed, ie. if the value is already correct, no update is needed.Sub UpdateIsBuildEnvRequired( nPv_id, nBs_name )Dim rsTemp, Query_StringQuery_String = _" SELECT bs_id, is_build_env_required"&_" FROM package_versions"&_" WHERE pv_id = "& nPv_idSet rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))If (UCase(nBs_name) = "NONE") AND (IsNull(rsTemp("is_build_env_required")) OR (rsTemp("is_build_env_required") <> "N")) ThenrsTemp.EditrsTemp.Fields("bs_id").Value = rsTemp("bs_id")rsTemp.Fields("is_build_env_required").Value = "N"rsTemp.UpdateElseIf (UCase(nBs_name) <> "NONE") AND (IsNull(rsTemp("is_build_env_required")) OR (rsTemp("is_build_env_required") <> "Y")) ThenrsTemp.EditrsTemp.Fields("bs_id").Value = rsTemp("bs_id")rsTemp.Fields("is_build_env_required").Value = "Y"rsTemp.UpdateEnd IfrsTemp.CloseSet rsTemp = nothingEnd Sub'----------------------------------------------------------------------------------------------------------------------' Deletes the rows belonging to the current PV_ID, from the package_build_info table.' This is normally done in preparation for updating the package_build_info table based on the latest' (and possibly updated) build standard for the current PV_ID.Sub DeletePackageBuildInfo( nPv_id )On Error Resume NextobjEH.TryORA ( OraSession )OraDatabase.ExecuteSQL _"DELETE FROM PACKAGE_BUILD_INFO WHERE PV_ID ="& nPv_idobjEH.CatchORA ( OraSession )End Sub'----------------------------------------------------------------------------------------------------------------------' Updates the vcs_type_id column for the current PV_ID, in the package_versions table.' The update is only performed if it is necessary, ie. the user has changed the setting via the form, or the existing' value is not yet assigned.Sub UpdateVCS ( nPv_id, nVcs_type_id, nVcs_name, nVcs_tag )Dim rsTemp, Query_StringDim new_bs_idQuery_String = _" SELECT vcs_type_id"&_" FROM package_versions"&_" WHERE pv_id = "& nPv_idSet rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))' compare new bs_id to existing bs_id to see if a change has been requestedIf nVcs_type_id <> rsTemp("vcs_type_id") OR IsNull(rsTemp("vcs_type_id")) Then'update fieldsrsTemp.EditrsTemp.Fields("vcs_type_id").Value = nVcs_type_idrsTemp.UpdateCall Log_Action ( nPv_id, "vcs_type_id_update", "VCS Type ID Update: " & nVcs_name )End IfrsTemp.CloseSet rsTemp = nothingEnd Sub'----------------------------------------------------------------------------------------------------------------------' Updates the bs_id column value for the current PV_ID in the package_versions table.' The update is only performed if it is necessary, ie. the user has changed the setting via the form, or the existing' value is not yet assigned.Sub UpdateBuildStandard ( nPv_id, nBs_name )Dim rsTemp, Query_StringDim new_bs_id' get the new bs_id from the bs_name parameternew_bs_id = bs_id_from_bs_name(nBs_name)Query_String = _" SELECT bs_id, is_build_env_required"&_" FROM package_versions"&_" WHERE pv_id = "& nPv_idSet rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))' compare new bs_id to existing bs_id to see if a change has been requestedIf new_bs_id <> rsTemp("bs_id") OR IsNull(rsTemp("bs_id")) Then'update fieldsrsTemp.EditrsTemp.Fields("bs_id").Value = new_bs_idIf UCase(nBs_name) = "NONE" ThenrsTemp.Fields("is_build_env_required").Value = "N"ElsersTemp.Fields("is_build_env_required").Value = "Y"End IfrsTemp.Update' Clear out the build info table of entries for this PV_ID.Call DeletePackageBuildInfo(nPv_id)Call Log_Action ( nPv_id, "build_standard_update", "Build Standard Update: " & nBs_name )End IfrsTemp.CloseSet rsTemp = nothingEnd Sub'----------------------------------------------------------------------------------------------------------------------' Updates the package_build_info table for the current PV_ID, based on the latest build_standard settings made' by the user on the formSub UpdatePackageBuildInfo( NNpv_id )'--- Set Build Types ---Dim aBuildEnvListDim OraParameterDim nBuildMachine' Before doing inserts for this PV_ID into the package_build_info table, we need to delete any existing' rows for this PV_ID. This may have already been done if the user has changed the build standard, but' there is no guarantee at this point that they have done that during this forms display.Call DeletePackageBuildInfo( NNpv_id )OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BM_ID", 0, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BSA_ID", 0, ORAPARM_INPUT, ORATYPE_NUMBERSet OraParameter = OraDatabase.ParametersaBuildEnvList = Split( Replace( Request("be_id_list"), " ", "" ) , ",")On Error Resume NextobjEH.TryORA ( OraSession )For Each nBuildMachine In aBuildEnvListOraParameter("BM_ID").Value = nBuildMachineOraParameter("BSA_ID").Value = Request("build_type_comb_"& nBuildMachine)If Err.Number = 0 ThenOraDatabase.ExecuteSQL("begin INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID ) "&_" VALUES( :PV_ID, :BM_ID, :BSA_ID ); end;")End IfNextobjEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "BM_ID"OraDatabase.Parameters.Remove "BSA_ID"End Sub'----------------------------------------------------------------------------------------------------------------------' This is the overall database update function called when the user hits the submit button on the form.' It does some minor updates itself, but most of the work is done in subroutines.' No attempt is made to keep the entire set of updates atomic. There really is no need to do that.Sub Update_Pkg_Info ( NNpv_id, NNdeployable, SSLabel, SSPath, SSdesc, SSoverview, NNs3Sync )Dim rsTemp, Query_StringOn Error Resume NextQuery_String = _" SELECT pkg_label, src_path, pv_description, pv_overview, is_deployable "&_" FROM package_versions"&_" WHERE pv_id = "& NNpv_idIf SSdesc = "" Then SSdesc = NULLSet rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))rsTemp.Edit' Only update build critical sections (label, source path) if allowedIf criticalSectionIsEditable ThenrsTemp.Fields("pkg_label").Value = SSLabelrsTemp.Fields("src_path").Value = SSPathEnd If' Update non-build critical sectionsrsTemp.Fields("pv_description").Value = SSdescrsTemp.Fields("pv_overview").Value = SSoverviewIf NNdeployable = "1" ThenrsTemp.Fields("is_deployable").Value = "Y"ElsersTemp.Fields("is_deployable").Value = NULLEnd IfrsTemp.UpdatersTemp.CloseSet rsTemp = nothing' Only update build critical sections if allowedIf criticalSectionIsEditable Then' Update the VCS if necessary for this PV_IDCall UpdateVCS( NNpv_id, objFormCollector.Item("vcs_type_id"), objFormCollector.Item("vcs_name"), objFormCollector.Item("vcs_tag") )' Update the build standard if necessary for this PV_IDCall UpdateBuildStandard( NNpv_id, objFormCollector.Item("bs_name") )' Update the 'is build_env_required' flag for this PV_IDCall UpdateIsBuildEnvRequired( NNpv_id, objFormCollector.Item("bs_name") )' Update the package_build_info table for this PV_IDCall UpdatePackageBuildInfo( NNpv_id )' Update the S3 Sync StateCall updateS3SyncState( parRtag_id, NNpv_id, NNs3Sync)End IfEnd Sub'----------------------------------------------------------------------------------------------------------------------Function ShowHideBuildType( sBuildEnvChecked )ShowHideBuildType = "style='display:none;'"If (sBuildEnvChecked <> "") ThenShowHideBuildType = "style='display:block;'"End IfEnd Function'----------------------------------------------------------------------------------------------------------------------' Renders the HTML for the build standard addendum drop down list boxes, ie. Prod, Debug, Prod+Debug, Java 1.4, Java 1.5, etc.Sub RenderBuildTypeCombo( nBuildAddendum, nBuildMachine, nBuildStandard )If nBuildStandard <> "" ThenQuery_String = "SELECT * FROM build_standards_addendum WHERE bs_id ="& nBuildStandard & " ORDER BY bsa_id DESC"'Response.Write Query_StringResponse.Write "<select name='build_type_comb_"& nBuildMachine &"' class='form_item'"& disableCriticalSectionEdit &">"Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)If nBuildAddendum = rsTemp.Fields("bsa_id") ThenResponse.write "<option value='"& rsTemp.Fields("bsa_id") &"' selected>"& rsTemp.Fields("bsa_name") &"</option>"ElseResponse.write "<option value='"& rsTemp.Fields("bsa_id") &"'>"& rsTemp.Fields("bsa_name") &"</option>"End IfrsTemp.MoveNextWEndResponse.Write "</select>"rsTemp.Close()Set rsTemp = nothingEnd IfEnd Sub'----------------------------------------------------------------------------------------------------------------------' Renders the HTML for the Version Control Settings drop down list boxSub RenderVCSCombo(nTag)If IsNull(nTag) OR nTag = "" ThennTag = enum_VCS_SUBVERSION_TAGEnd IfQuery_String = "SELECT * FROM vcs_type ORDER BY name"Response.Write "<select id='vcs_name_combo' name='vcs_name_combo' class='form_item' "& disableCriticalSectionEdit &" onchange='vcs_changed();'>"Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)If nTag = rsTemp.Fields("tag") ThenResponse.write "<option value='"& rsTemp.Fields("name") &"' selected>"& rsTemp.Fields("name") &"</option>"Else' Add item to drop down only if it is not UC (uncontrolled). If it is UC, then only add it if the package' version is a manual build type. It is not valid to allow autobuild packages to be uncontrolled (ie. the' build (daemon) tool needs a label or something doesn't it?)If rsTemp.Fields("tag") <> enum_VCS_UNCONTROLLED_TAG OR objFormCollector.Item("build_type") = "M" ThenResponse.write "<option value='"& rsTemp.Fields("name") &"'>"& rsTemp.Fields("name") &"</option>"End IfEnd IfrsTemp.MoveNextWEndResponse.Write "</select>"' Create a hidden combo containing tags instead of names - we can use this to get a tag for a name without' doing a database queryResponse.Write "<div id='div_vcs_tag_combo' name='div_vcs_tag_combo' style='visibility:hidden'>"Response.Write "<select id='vcs_tag_combo' name='vcs_tag_combo' disabled hidden class='form_item' "& disableCriticalSectionEdit &">"rsTemp.MoveFirstWhile (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)Response.write "<option value='"& rsTemp.Fields("tag") &"'>"& rsTemp.Fields("tag") &"</option>"rsTemp.MoveNextWEndResponse.Write "</select>"Response.Write "</div>"rsTemp.Close()Set rsTemp = nothingEnd Sub'----------------------------------------------------------------------------------------------------------------------' Renders the HTML for the build standard drop down list box'' Typically, this drop down would contain ANT, JATS, and NONE, although ofcoarse this is dependant upon what data is' present in the build_standards table of the databaseSub RenderBldStdCombo(nBldStdName)Query_String = "SELECT * FROM build_standards"Response.Write "<select id='bld_std_combo' name='bld_std_combo' class='form_item' "& disableCriticalSectionEdit &" onchange='bld_std_changed();'>"Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)If nBldStdName = rsTemp.Fields("bs_name") ThenResponse.write "<option value='"& rsTemp.Fields("bs_name") &"' selected>"& rsTemp.Fields("bs_name") &"</option>"ElseResponse.write "<option value='"& rsTemp.Fields("bs_name") &"'>"& rsTemp.Fields("bs_name") &"</option>"End IfrsTemp.MoveNextWEndResponse.Write "</select>"rsTemp.Close()Set rsTemp = nothingEnd Sub'----------------------------------------------------------------------------------------------------------------------' Figures out what the url should be for when the form is submitted, ensuring that all of the paramters are present if' need be. Note that the VCS and BSName parameters are optional. They will only be present if the user has made modifications' to the respective drop down list boxes before submitting the form.Sub Determine_submit_action_url ()' Work out what the reload url should be for when the user hits the submit buttonIf IsNull(parVCSTag) OR parVCSTag = "" ThenIf IsNull(parBSName) OR parBSName = "" Thensubmit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_idElsesubmit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id & "&bs_name=" & parBSNameEnd IfElseIf IsNull(parBSName) OR parBSName = "" Thensubmit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id & "&vcs_tag=" & parVCSTagElsesubmit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id & "&vcs_tag=" & parVCSTag & "&bs_name=" & parBSNameEnd IfEnd IfEnd Sub'----------------------------------------------------------------------------------------------------------------------%><%'------------------------------- RUN BEFORE PAGE RENDER ----------------------------Call Get_Form_Details( parPv_id, objFormCollector )'--- Access Control Setup ------------pageIsEditable = Is_Page_Editable ( objFormCollector.Item ("dlocked") )criticalSectionIsEditable = Is_Critical_Section_Editable ( objFormCollector.Item("dlocked") )isWIP = PackageExists(parRtag_id,parPv_id,"work_in_progress")If criticalSectionIsEditable thendisableCriticalSectionEdit = ""ElsedisableCriticalSectionEdit = "disabled"End If'--- Process Submission ---------------If objForm.IsPostBack Then' has the user pressed the submit button?If Request("btn") = "Submit" ThenCall Update_Pkg_Info ( parPv_id, QStrPar("FRdeployable"), QStrPar("FRlabel"), QStrPar("FRpath"), QStrPar("pv_description"), QStrPar("pv_overview"), QStrPar("FRs3Sync") )Call OpenInParentWindow ( "fixed_issues.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"&hidenv=true" )Call CloseWindowCall Destroy_All_ObjectsResponse.EndEnd IfEnd If' Determine the URL to use when and if this form is refreshed using F5, or when a user changes the' values in one of the drop down lists and the form is reloaded with additional or changed parameters' The html form will use the result of this in its action tag.Call Determine_submit_action_url()'--------------------------------------------------------------------------------------------%><html><head><title>Release Manager</title><link rel="shortcut icon" href="<%=FavIcon%>"/><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css"><link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css"><script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script><!-- TIPS --><script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script><script language="JavaScript" src="images/_help_tips.js?ver=<%=VixVerNum%>"></script><script language="JavaScript" type="text/javascript"><!--// Validate tags on window loadwindow.onload = function(e){<%If (objFormCollector.Item("vcs_tag") = enum_VCS_SUBVERSION_TAG) AND criticalSectionIsEditable Then%>validateSvnPath();validateSvnTag();<%End If%><%If (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) AND criticalSectionIsEditable Then%>validateGitPath();validateGitTag();<%End If%><%If (objFormCollector.Item("vcs_tag") = enum_VCS_CLEARCASE_TAG) AND criticalSectionIsEditable Then%>validateCCPath();validateCCLabel();<%End If%>validateDesc();validateOverview();}// This function is the onchange event handler for the Version Control System drop down list box.// It will re-format the web page URL to pass the vcs_tag paramter reflecting the users choice in the drop down list,// and submit the form using the updated URL.function vcs_changed() {var f = document.getElementById('pkginfo');if (f == null) {alert('Javascript Error : Failed to get pkginfo');}else {var nc = document.getElementById('vcs_name_combo');if (nc == null) {alert('Javascript Error : Failed to get vcs_name_combo');}else {var tc = document.getElementById('vcs_tag_combo');if (tc == null) {alert('Javascript Error : Failed to get vcs_tag_combo');}else {// Form the new URL with the updated VCS tag passed as a parameter<%If IsNull(parBSName) OR parBSName = "" Then%>f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&vcs_tag=" + tc.options[nc.selectedIndex].value;<%Else%>f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&bs_name=<%=parBSName%>&vcs_tag=" + tc.options[nc.selectedIndex].value;<%End If%>f.submit();}}}}// This function is the onchange event handler for the Build Standard drop down list box.// It will re-format the web page URL to pass the vcs_tag paramter reflecting the users choice in the drop down list,// and submit the form using the updated URL.function bld_std_changed() {var f = document.getElementById('pkginfo');if (f == null) {alert('Javascript Error : Failed to get pkginfo');}else {var nc = document.getElementById('bld_std_combo');if (nc == null) {alert('Javascript Error : Failed to get bld_std_combo');}else {// Form the new URL with the updated build standard name passed as a parameter<%If IsNull(parVCSTag) OR parVCSTag = "" Then%>f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&bs_name=" + nc.options[nc.selectedIndex].value;<%Else%>f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&vcs_tag=<%=parVCSTag%>&bs_name=" + nc.options[nc.selectedIndex].value;<%End If%>f.submit();}}}//// Update the Build Enviroment Display// Generic is not allowed to be checked if any of the others are checked// If Generic is ticked - then untick all others and hide associated combobox// If Generic is not ticked - the untick Generic and hide associated comboboxfunction UpdateBeDisplay(me, targetId){// Toggle related target idToggleDisplay(targetId);if (me.checked) {// Handle Generic changesisGeneric = me.getAttribute("data-generic");items = document.getElementsByName("be_id_list");if (isGeneric){// Generic item has been checkedfor(idx = 0;idx < items.length; idx++){item = items[idx];if ( item != me ) {item.checked = false;target = item.getAttribute("data-target-id");el = document.getElementById(target);el.style.display = 'none';}}} else {for(idx = 0;idx < items.length; idx++){item = items[idx];itemGeneric = item.getAttribute("data-generic");if(itemGeneric) {item.checked = false;target = item.getAttribute("data-target-id");el = document.getElementById(target);el.style.display = 'none';}}}}}var bPathOk = true;var bLabelOk = true;var bDescOk = true;var bOverview = true;function validateDesc(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('pv_description');if ( e.value.length )MM_validateForm('--Silent','--NoPrefix','pv_description','Package Description','minLength:10');bDescOk = document.MM_returnValue;setIdText('descErr',document.MM_error);parent.resizeIframe();}function validateOverview(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('pv_overview');if ( e.value.length )MM_validateForm('--Silent','--NoPrefix','pv_overview','Package Overview','minLength:20');bOverview = document.MM_returnValue;setIdText('viewErr',document.MM_error);parent.resizeIframe();}// Validate the SVN Path//function validateSvnPath(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('FRpath');if ( e.value.length ) {MM_validateForm('--Silent','--NoPrefix','FRpath','Source Path','RisSVNPath');if ( !document.MM_error ) {if ( e.value.indexOf('AUPERASVN0X/') != -1 || e.value.indexOf('/RepoName/') != -1 ) {document.MM_error = "Example path cannot be used";document.MM_returnValue = false;}}}bPathOk = document.MM_returnValue;setIdText('svnPathErr',document.MM_error);parent.resizeIframe();}// Validate the SVN Tag//function validateSvnTag(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('FRlabel');if ( e.value.length )MM_validateForm('--Silent','--NoPrefix','FRlabel','Subversion Tag','RisSVNTag');bLabelOk = document.MM_returnValue;setIdText('svnTagErr',document.MM_error);<%If (objFormCollector.Item("build_type") = "M" ) Then%>if(bLabelOk){MM_validateForm('--Silent','FRlabel','Subversion Tag','RisSVNPegTag');bLabelOk = document.MM_returnValue;setIdText('svnTagErr',document.MM_error);}<%End If%>parent.resizeIframe();}// Validate the GIT Path//function validateGitPath(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('FRpath');if ( e.value.length ) {MM_validateForm('--Silent','--NoPrefix','FRpath','Source Path','RisGITPath');if ( !document.MM_error ) {if ( e.value.indexOf('VIXGIT0X/') != -1 || e.value.indexOf('/RepoName/') != -1 ) {document.MM_error = "Example path cannot be used";document.MM_returnValue = false;}}}bPathOk = document.MM_returnValue;setIdText('gitPathErr',document.MM_error);parent.resizeIframe();}// Validate the GIT Tag//function validateGitTag(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('FRlabel');if ( e.value.length )MM_validateForm('--Silent','--NoPrefix','FRlabel','Git Tag','RisGITTag');bLabelOk = document.MM_returnValue;setIdText('gitTagErr',document.MM_error);<%If (objFormCollector.Item("build_type") = "M" ) Then%>if(bLabelOk){MM_validateForm('--Silent','FRlabel','Git Tag','RisGITPegTag');bLabelOk = document.MM_returnValue;setIdText('gitTagErr',document.MM_error);}<%End If%>parent.resizeIframe();}// Validate the CC Path//function validateCCPath(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('FRpath');if ( e.value.length)MM_validateForm('--Silent','--NoPrefix','FRpath','Source Path','RisCCPath');bPathOk = document.MM_returnValue;setIdText('ccPathErr',document.MM_error);parent.resizeIframe();}// Validate the CC Label//function validateCCLabel(){document.MM_returnValue = true;document.MM_error = "";e = MM_findObj('FRlabel');if ( e.value.length)MM_validateForm('--Silent','--NoPrefix','FRlabel','Label','RisCCLabel');bLabelOk = document.MM_returnValue;setIdText('ccLabelErr',document.MM_error);parent.resizeIframe();}// Show/Hide error message in specified elementfunction setIdText(id, text) {var element = document.getElementById(id);if ( element ) {while (element.firstChild!==null)element.removeChild(element.firstChild); // remove all existing contentif(text){element.appendChild(document.createTextNode(text));element.style.display = 'block';}else {element.style.display = 'none';}}updateSubmit();}// Enable/disable the submit button// Based on the state of bPathOk and bLabelOkfunction updateSubmit(){var element = document.getElementById('btn_submit');if ( element ) {element.disabled = !(bPathOk && bLabelOk && bOverview && bDescOk);if (element.disabled) {removeClass(element, 'form_btn_comp');addClass(element, 'form_btn_comp_disabled');} else {removeClass(element, 'form_btn_comp_disabled') ;addClass(element, 'form_btn_comp');}}}// This function will replace back slashes with forward slashes and can be used with an onchange event on fields// where back slashes may be enteredfunction replace_back_slashes(e) {strip_whitespace(e);var str = e.value;e.value = str.replace(/\\/g,"/");}function strip_whitespace(e) {var str = e.value;str = str.replace(/^\s+/,"");e.value = str.replace(/\s+$/,"");}//// Local form tipsformTips.tips.deployable = newTip(-150, 20, 150, 10, 'DEPLOYABLE','Select YES if this package or certain files of this package have to be deployed to the field.');formTips.tips.s3Sync = newTip(-150, 20, 150, 10, 'SYNC to S3','Select YES if this package contains an S3TRANSFER section.<p>'+'The files in this section will be synced to an S3 bucket, if the S3Sync is enabled on the Release.<p>'+'The target bucket name is based on the rtagId'+'<p>Cannot be altered until the package has been released');formTips.tips.pkg_info_short_desc = newTip(-150, 20, 150, 10, 'SHORT DESCRIPTION','Describe the meaning of the package name.');formTips.tips.pkg_info_overview = newTip(-150, 20, 150, 10, 'PACKAGE OVERVIEW','Describe in a paragraph what does the package do.<br>NOTE: You have to do this only once!');formTips.tips.build_environment = newTip(-150, 20, 150, 10, 'BUILD ENVIRONMENT','Select which build environments are used to build this package.');formTips.tips.pkg_label = newTip(-150, 20, 150, 10, 'LABEL','Enter the ClearCase label used to tag all the source code in this release.');formTips. tips.src_path = newTip(-180, 20, 180, 10, 'SOURCE PATH','Enter the path to the source code in a ClearCase VOB. This is used to create a "load rule". ie: /MASS_Dev/%package_name%');formTips.tips.svn_source_path = newTip(-180, 20, 180, 10, 'SUBVERSION SOURCE PATH','Enter the Subversion path to the development branch of the package. <p>The first element will be a symbolic repository reference. '+'<p>The last element will be the packages development branch - which may be the trunk.');formTips.tips.svn_tag = newTip(-180, 20, 180, 10, 'SUBVERSION TAG','Enter the Subversion tag. This is a named directory within the packages \'tags\' directory. It may be pegged.');formTips.tips.git_source_path = newTip(-180, 20, 180, 10, 'GIT SOURCE PATH','Enter the GIT path to the development branch of the package. <p>The first element will be a symbolic repository reference. '+'<p>The last element will be the packages main release branch - which may be \'master\' or a project name.');formTips.tips.git_tag = newTip(-180, 20, 180, 10, 'GIT TAG','Enter a GIT tag or SHA-1 commit identifier.');//--></script></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="self.focus();"><form id="pkginfo" name="pkginfo" method="post" onSubmit="return document.MM_returnValue;" action="<%=submit_action_url%>" class="form_tight"><table border="0" cellspacing="0" cellpadding="2"><tr><td nowrap class="wform_ttl"><table width="100%" border="0" cellspacing="1" cellpadding="2" class=lhsGrey><tr><td nowrap>Package</td><td nowrap><%=objFormCollector.Item("pkg_name") &" "& objFormCollector.Item("pkg_version")%></td></tr><tr><td nowrap>Deployable?<%=Quick_Help ( "deployable" )%></td><%FRdeployableYES = ""FRdeployableNO = ""If objForm.IsPostBack ThenIf Request("FRdeployable") = "1" ThenFRdeployableYES = "checked"ElseFRdeployableNO = "checked"End IfElseIf objFormCollector.Item("is_deployable") = enumDB_YES ThenFRdeployableYES = "checked"ElseFRdeployableNO = "checked"End IfEnd If%><td nowrap>Yes<input name="FRdeployable" type="radio" value="1" <%=FRdeployableYES%>> No<input name="FRdeployable" type="radio" value="0" <%=FRdeployableNO%>></td></tr><%If parRtag_id <> "" Then%><tr><td nowrap>Sync to S3?<%=Quick_Help ( "s3Sync" )%></td><%Dim FRs3SyncDisabledFRs3SyncYES = ""FRs3SyncNO = ""If objForm.IsPostBack ThenIf Request("FRs3Sync") = "1" ThenFRs3SyncYES = "checked"ElseFRs3SyncNO = "checked"End IfElseIf objFormCollector.Item("s3Sync") = "" ThenFRs3SyncDisabled = "disabled"ElseIf objFormCollector.Item("s3Sync") = enumDB_YES ThenFRs3SyncYES = "checked"ElseFRs3SyncNO = "checked"End IfEnd IfEnd If%><td nowrap>Yes<input name="FRs3Sync" type="radio" value="1" <%=FRs3SyncDisabled%> <%=FRs3SyncYES%>> No<input name="FRs3Sync" type="radio" value="0" <%=FRs3SyncDisabled%> <%=FRs3SyncNO%>></td></tr><%End If%><tr><td nowrap>Version Control System</td><td nowrap><% Call RenderVCSCombo(objFormCollector.Item("vcs_tag"))%><%If (objFormCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) OR (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) Then%><span class='err_alert'>[Not fully Supported]</span><%End If%></td></tr><!--- Source Path ----------------------------------------------><%If (objFormCollector.Item("vcs_tag") = enum_VCS_CLEARCASE_TAG) Then%><tr><td nowrap>Source Path<%=Quick_Help ( "src_path" )%></td><td nowrap><input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);validateCCPath();" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000"><br> Example: /MASS_Dev_Infra/<%=objFormCollector.Item("pkg_name")%> <br><span class='val_err' id=ccPathErr style='display:none'></span></td></tr><tr><td nowrap>Label<%=Quick_Help ( "pkg_label" )%></td><td nowrap><%sLabelReadOnly = ""sDefaultLabel = Default_Label(parPv_id, objFormCollector.Item("build_type"), objFormCollector.Item("change_type"), objFormCollector.Item("pkg_name"), objFormCollector.Item("pkg_version"), objFormCollector.Item("v_ext"))If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable ThensLabelReadOnly = "readonly"End IfIf objForm.IsPostBack ThensLabel = Request("FRlabel")' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label' the FRlabel request we just did will return a null/empty, so set sLabel to the default label once more if this is the case.' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.If IsNull(sLabel) OR sLabel = "" ThensLabel = sDefaultLabelobjForm.SetValueForced "FRlabel", sLabelEnd IfElseIf (objFormCollector.Item("pkg_label") = "N/A") ThensLabel = "N/A"ElseIf objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label")) ThensLabel = sDefaultLabelElsesLabel = objFormCollector.Item("pkg_label")End IfobjForm.SetValue "FRlabel", sLabelEnd IfEnd If%><input type="text" name="FRlabel" id="FRlabel" maxlength="50" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateCCLabel();" value="<%=sLabel%>" <%=sLabelReadOnly%>><br> Example: <%=objFormCollector.Item("pkg_name")%>_1.0.0000.cr.WIP<br><span class='val_err' id=ccLabelErr style='display:none'></span></td></tr><%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_SUBVERSION_TAG) Then%><tr><td nowrap>Source Path<%=Quick_Help ( "svn_source_path" )%></td><td nowrap><input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);validateSvnPath();" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000"><table><tr><td>Example:</td><td>AUPERASVN0X/RepoName/<%=objFormCollector.Item("pkg_name")%>/trunk</td></tr></table><span class='val_err' id=svnPathErr style='display:none'></span></td></tr><tr><td nowrap nowrap>Tag<%=Quick_Help ( "svn_tag" )%></td><td nowrap><%sLabelReadOnly = ""sDefaultLabel = Default_Label(parPv_id, objFormCollector.Item("build_type"), objFormCollector.Item("change_type"), objFormCollector.Item("pkg_name"), objFormCollector.Item("pkg_version"), objFormCollector.Item("v_ext"))If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable ThensLabelReadOnly = "readonly"End IfIf objForm.IsPostBack ThensLabel = Request("FRlabel")' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label' the FRlabel request we just did will return a null/empty, so set sLabel to the default label once more if this is the case.' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.If IsNull(sLabel) OR sLabel = "" ThensLabel = sDefaultLabelobjForm.SetValueForced "FRlabel", sLabelEnd IfElseIf (objFormCollector.Item("pkg_label") = "N/A") ThensLabel = "N/A"ElseIf objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label")) ThensLabel = sDefaultLabelElsesLabel = objFormCollector.Item("pkg_label")End IfobjForm.SetValue "FRlabel", sLabelEnd IfEnd If%><input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateSvnTag();" value="<%=sLabel%>" <%=sLabelReadOnly%>><%If objFormCollector.Item("build_type") = "M" ThensDefaultLabel = sDefaultLabel & "@1234"ElsesDefaultLabel = sDefaultLabel & "[@1234]"End If%><table><tr><td>Example:</td><td><%=sDefaultLabel%></td></tr></table><span class='val_err' id=svnTagErr style='display:none'></span></td></tr><%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) Then%><tr><td nowrap>Source Path<%=Quick_Help ( "git_source_path" )%></td><td nowrap><input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);validateGitPath();" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000"><table><tr><td>Example:</td><td>VIXGIT0X/RepoName/<%=objFormCollector.Item("pkg_name")%>/master</td></tr></table><span class='val_err' id=gitPathErr style='display:none'></span></td></tr><tr><td nowrap nowrap>Tag<%=Quick_Help ( "git_tag" )%></td><td nowrap><%sLabelReadOnly = ""sDefaultLabel = Default_Label(parPv_id, objFormCollector.Item("build_type"), objFormCollector.Item("change_type"), objFormCollector.Item("pkg_name"), objFormCollector.Item("pkg_version"), objFormCollector.Item("v_ext"))If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable ThensLabelReadOnly = "readonly"End IfIf objForm.IsPostBack ThensLabel = Request("FRlabel")' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label' the FRlabel request we just did will return a null/empty, so set sLabel to the default label once more if this is the case.' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.If IsNull(sLabel) OR sLabel = "" ThensLabel = sDefaultLabelobjForm.SetValueForced "FRlabel", sLabelEnd IfElseIf (objFormCollector.Item("pkg_label") = "N/A") ThensLabel = "N/A"ElseIf objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label")) ThensLabel = sDefaultLabelElsesLabel = objFormCollector.Item("pkg_label")End IfobjForm.SetValue "FRlabel", sLabelEnd IfEnd If%><input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateGitTag();" value="<%=sLabel%>" <%=sLabelReadOnly%>><%If objFormCollector.Item("build_type") = "M" ThensDefaultLabel = sDefaultLabel & "1234567"ElsesDefaultLabel = sDefaultLabel & "1234567"End If%><table><tr><td>Example:</td><td><%=sDefaultLabel%></td></tr></table><span class='val_err' id=gitTagErr style='display:none'></span></td></tr><%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) Then%><tr><td nowrap>Source Path<%=Quick_Help ( "src_path" )%></td><td nowrap><input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000"><br> Example: /MASS_Dev_Infra/<%=objFormCollector.Item("pkg_name")%><br></td></tr><tr><td nowrap>Label<%=Quick_Help ( "pkg_label" )%></td><td nowrap><input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);" value="<%=objForm.GetValue( "FRlabel", objFormCollector.Item("pkg_label") )%>"></td></tr><%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_UNCONTROLLED_TAG) Then%><input name="FRpath" type="hidden" id="FRpath" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>"><input name="FRlabel" type="hidden" id="FRlabel" value="<%=sLabel%>"><%Else%><tr><td colspan=3 class="sublbox_txt"><span class='err_alert'><b>WARNING:</b> Release Manager Website does not currently support the selected Version Control System</span></td></tr><input name="FRpath" type="hidden" id="FRpath" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>"><input name="FRlabel" type="hidden" id="FRlabel" value="<%=sLabel%>"><%End If%><tr><td>Short Package Description<%=Quick_Help ( "pkg_info_short_desc" )%></td><td nowrap><textarea name="pv_description" cols="57" rows="5" class="form_item" id="pv_description" onchange="strip_whitespace(this);validateDesc()"><%=objForm.GetValue( "pv_description", objFormCollector.Item("pv_description") )%></textarea><span class='val_err' id=descErr style='display:none'></span></td></tr><tr><td>Package Overview<%=Quick_Help ( "pkg_info_overview" )%></td><td nowrap><textarea name="pv_overview" cols="57" rows="10" class="form_item" id="pv_overview" onchange="strip_whitespace(this);validateOverview();"><%=objForm.GetValue( "pv_overview", objFormCollector.Item("pv_overview") )%></textarea><span class='val_err' id=viewErr style='display:none'></span></td></tr><tr><td nowrap>Build Standard</td><td nowrap><% Call RenderBldStdCombo(objFormCollector.Item("bs_name"))If objFormCollector.Item("bs_name") = "ANT" Then%><span class='err_alert'> - Not recomended for new packages.</span><%End If%></td></tr><tr><td nowrap>Build Environment<%=Quick_Help ( "build_environment" )%></td><td nowrap><%If objFormCollector.Item("is_build_env_required") = "N" Then%> Build Environment not applicable<%Else%><%End If%><div id="divBuildEnv" name="divBuildEnv" style="overflow: auto; <%If (objFormCollector.Item("is_build_env_required") = "N") Then%>display:none;<%Else%>display:block;<%End If%>"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="3" class=stdGrey><%OraDatabase.Parameters.Add "PV_ID", parPv_id, ORAPARM_INPUT, ORATYPE_NUMBERquery = _" SELECT DECODE ( pkgbinfo.BM_ID, bm.BM_ID, 'checked', NULL ) AS checked,"&_" bm.BM_ID,"&_" bm.BM_NAME, "&_" pkgbinfo.BSA_ID, "&_" DECODE (UPPER(bm.BM_NAME) , UPPER('Generic'), 1, NULL ) AS isGeneric" &_" FROM BUILD_MACHINES bm,"&_" PACKAGE_BUILD_INFO pkgbinfo"&_" WHERE pkgbinfo.BM_ID (+)= bm.BM_ID"&_" AND pkgbinfo.PV_ID (+)= :PV_ID"&_" ORDER BY UPPER(bm.bm_name) "Set rsQry = OraDatabase.DbCreateDynaset( query, cint(0))Dim rowClass : rowClass = "even"While (NOT rsQry.BOF) AND (NOT rsQry.EOF)checked = ""If objForm.IsTicked( "be_id_list", rsQry("bm_id"), rsQry("checked") ) Thenchecked = "checked"objForm.SetValue "be_id_list", checkedEnd IfrowClass = IIF( rowClass = "odd" , "even", "odd" )%><tr class='nowrap tight <%=rowClass%>'><td width='1%' ><input type="checkbox"name="be_id_list"onClick="UpdateBeDisplay(this, 'build_type_<%=rsQry("bm_id")%>');"<%=disableCriticalSectionEdit%><%=IIf(rsQry("ISGENERIC"), " data-generic='1'","")%>data-target-id='build_type_<%=rsQry("bm_id")%>'value="<%=rsQry("bm_id")%>" <%=checked%>></td><td width='1%' ><%=rsQry("bm_name")%></td><td width='98%' ><div id="build_type_<%=rsQry("bm_id")%>" <%=ShowHideBuildType( checked )%>><% Call RenderBuildTypeCombo( rsQry("bsa_id"), rsQry("bm_id"), objFormCollector.Item("bs_id") )%></div></td><%If checked = "checked" AND rsQry("bsa_id") = 0 Then%><td><td valign='top' width='1%' style='vertical-align: middle;'><img src='icons/i_bulet_red.gif' width='4' height='4' hspace='3' vspace='4' border='0' align='absmiddle'></td><td class='val_err'>Required</td><%End If%></tr><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = NothingOraDatabase.Parameters.Remove "PV_ID"%></table></td></tr></table></div></td></tr></table></td></tr><tr><td align="right"><input id="btn_submit" type="submit" name="btn" value="Submit" <%If pageIsEditable Then%>class="form_btn_comp"<%Else%>disabled class="form_btn_comp_disabled"<%End If%>><input type="reset" name="btn" value="Cancel" class="form_btn_comp" onclick="parent.closeIFrame();"></td></tr></table><input type="hidden" name="pv_id" id="pv_id" value="<%=parPv_id%>"><input type="hidden" name="rtag_id" id="rtag_id" value="<%=parRtag_id%>"><input type="hidden" name="vcs_tag" id="vcs_tag" value="<%=parVCSTag%>"><input type="hidden" name="bs_name" id="bs_name" value="<%=parBSName%>"><%objForm.AddPostBack()%></form></body></html><%'------------- RUN AFTER PAGE RENDER ---------------Set objFormCollector = Nothing'---------------------------------------------------%><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->