Rev 125 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%'=====================================================' Build Environment'=====================================================%><!--#include file="_tabs_definition_env.asp"--><!--#include file="common/_form_window_common.asp"--><%'------------ Variable Definition -------------Dim parOLshow ' show/hide outer-latestDim parBshow ' expand/collapse base viewsDim parPshow ' expand/collapse personal viewsDim parPview ' enable/disable all personal viewsDim parDview ' enable/disable deployment view.Dim IMG_lockedDim rsEnvQryDim pvIdInListDim checkedDim disabledDim pkgTypeDim SCRIPT_NAME 'Use this here only as the previous one ScriptName is Already Defined'------------ Constants Declaration -----------Const imgMaximise = "<IMG src='images/i_maximise.gif' alt='Show view contents.' width=13 height=13 hspace='2' vspace='1' border='0'>"Const imgMinimise = "<IMG src='images/i_minimise.gif' alt='Hide view contents.' width=13 height=13 hspace='2' vspace='1' border='0'>"Const imgForced = "<img src='images/s_forced.gif' width='19' height='17' align='absmiddle'>"Const imgLocked = "<img src='images/i_locked.gif' width='7' height='10' border='0' hspace='2'>"Const hlColor = "#DDDDDD"Const imgAdded = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='To Be Added'>"Const imgRemoved = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='To Be Removed'>"'------------ Variable Init -------------------parOLshow = QStrPar("OLshow")parBshow = QStrPar("Bshow")parPshow = QStrPar("Pshow")parPview = QStrPar("Pview")parDview = QStrPar("Dview")'----------------------------------------------%><script language="JavaScript" type="text/javascript"><!--var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0;var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0;//netscape, safari, mozilla behave the same???var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// This function is executed when the Bulk Release action button is pressed. It will do some local// client side checks and then if all is well, it will use the make_bulk_release.asp to initiate// the bulk release process on the server side.////////////////////////////////////////////////////////////////////////////////////////////////////////////////////function makeBulkRelease(){// Get the form containing all of the pending itemsvar f = document.getElementById('pending_PVID_List');if (f == null)alert('Failed To Get pending_PVID_List'); // should never happen unless a coding/rendering mistake is made?else{// When no items exist in the pending tab, the pending_PVID_List form will not contain any// element called pv_id_list, so it will be null. Check for that and issue an alert as appropriate.if (f.pv_id_list == null){alert('There are no items pending that can be considered for bulk release.\n\n' +'Use the Bulk Release button when items with checkboxes are present in the\n' +'Pending Tab.');}else{var doBulkRelease = true;// Count the number of checked and enabled items to see if there is actually any work to// do and if not issue an alert to the user. The pending_PVID_List form contains checkbox// items representing the pending versions, and the user may have checked any number of them// or none.//// NOTE, disabled items are indicative of pending autobuild versions that have already// been approved and are just awaiting processing by the build daemon that will make// them released once they have built successfully. We must not count those in our total.var n;var numCheckedAndEnabled = 0;var numUncheckedAndEnabled = 0;// Unbelievably, if the form has just one single PV_ID checkbox item, the syntax via which we access it// has to change. We cannot use array access syntax in such a case.if (f.length == 1 ){if (f.pv_id_list.value != null){if (false == f.pv_id_list.disabled){if (true == f.pv_id_list.checked)numCheckedAndEnabled++;elsenumUncheckedAndEnabled++;}}}else{// Here we can and have to use array access syntax.for (n = 0; n < f.pv_id_list.length; n++){if (false == f.pv_id_list[n].disabled){if (true == f.pv_id_list[n].checked)numCheckedAndEnabled++;elsenumUncheckedAndEnabled++;}}}if (numCheckedAndEnabled == 0){if (numUncheckedAndEnabled == 0){alert('Currently, there are no items that can be bulk released');doBulkRelease = false;}else{// No enabled items have their checkboxes checked. Offer the user an easy way to// bulk release the entire set, or to abortdoBulkRelease = confirm('No (enabled) items in the Pending Tab have been checked.\n' +'This may mean you wish to bulk release ALL items without\n' +'having to check every single one of them individually.\n\n' +'\tPress OK to bulk release all outstanding items.\n' +'\tPress CANCEL to abort bulk release.\n\n' );if (doBulkRelease == true){// Programmatically check all the enabled items. The user will see this happening on their browser// and may be able to uncheck a few items before the submit() action further down in this// function is called. However, the worst that can happen is that a few items will not get// bulk released and the user has to do another bulk release operation.if (f.length == 1 ){if (false == f.pv_id_list.checked && false == f.pv_id_list.disabled){f.pv_id_list.checked = true;}}else{for (n = 0; n < f.pv_id_list.length; n++){if (false == f.pv_id_list[n].checked && false == f.pv_id_list[n].disabled){f.pv_id_list[n].checked = true;}}}}}}if (doBulkRelease == true){// Initiate the bulk release by redirecting the browser to the make_bulk_release.asp page// which holds the server side VBScript code that actually carries out the release operations.// Once complete, that code will redirect the browser back to the dependencies.asp page of which// this _environment.asp file is a part (by direct inclusion)<%If Request("pv_id") Then%>f.action = "make_bulk_release.asp?pv_id=<%=Request("pv_id")%>&rtag_id=<%=parRtag_id%>";<%Else%>f.action = "make_bulk_release.asp?rtag_id=<%=parRtag_id%>";<%End If%>f.submit();// TODO : I would like to show progress? Is that even possible? If so, how?}}}}function RequestViewContent( paramString, rowId ){var requestURL = 'RequestViewContent.asp';// Toggle divToggleDisplay( 'ENVDIV'+ rowId );// Change display statesif ( (MM_findObj( 'ENVIMG'+ rowId ).src).indexOf('btn_max.gif') == -1 ){// View is currently minimisedMM_findObj( 'ENVIMG'+ rowId ).src = 'images/btn_max.gif';MM_findObj( 'SPANVIEW'+ rowId ).style.color = '#808080';// Remove from SHow View ListRemoveFromShowView ( rowId );}else{// View is currently maximisedMM_findObj( 'ENVIMG'+ rowId ).src = 'images/btn_min.gif';MM_findObj( 'SPANVIEW'+ rowId ).style.color = '#000000';// Add it to Show view idAddToShowView ( rowId );}// Fix div width for ie so it does not overflowif (is_ie){MM_findObj( 'ENVDIV'+ rowId ).style.width = '100%';}// Set ajax divnameajaxdivname = 'ENVDIV'+ rowId;// Request data from serverif ( (MM_findObj( ajaxdivname ).innerHTML).indexOf('<%=enumLOADING%>') != -1 ){//Append the name to search for to the requestURLvar url = requestURL + paramString;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}}function GetXmlHttpObject(handler) {var objXmlHttp = null; //Holds the local xmlHTTP object instance//Depending on the browser, try to create the xmlHttp objectif (is_ie){//The object to create depends on version of IE//If it isn't ie5, then default to the Msxml2.XMLHTTP objectvar strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';//Attempt to create the objecttry{objXmlHttp = new ActiveXObject(strObjName);objXmlHttp.onreadystatechange = handler;}catch(e){//Object creation erroredalert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');return;}}else if (is_opera){//Opera has some issues with xmlHttp object functionalityalert('Opera detected. The page may not behave as expected.');return;}else{// Mozilla | Netscape | SafariobjXmlHttp = new XMLHttpRequest();objXmlHttp.onload = handler;objXmlHttp.onerror = handler;}//Return the instantiated objectreturn objXmlHttp;}//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)function stateChangeHandler(){//readyState of 4 or 'complete' represents that data has been returnedif (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){//Gather the results from the callbackvar str = xmlHttp.responseText;//Populate the innerHTML of the div with the resultsdocument.getElementById(ajaxdivname).innerHTML = str;}}// XMLHttp send GET requestfunction xmlHttp_Get(xmlhttp, url) {//Getting a permissions error here? Check the url string to// ensure it is accurate (defined above)xmlhttp.open('GET', url, true);xmlhttp.send(null);}function RemoveFromShowView ( ViewId ){// Get current cookie settingsvar us = GetCookie('<%=COOKIE_RELMGR_SHOW_VIEW%>');var aShowViews = new Array();if (us){// Cookie is not empty, hence just append new valuevar aViews = us.split(',');// Make sure that view is not already on the listfor (i=0; i<aViews.length; i++){if (aViews[i] != ViewId){aShowViews.push(aViews[i]);}}// Make a new view list to be stored in cookieus = aShowViews.join(',');}else{us = '';}// Store to cookiedocument.cookie = '<%=COOKIE_RELMGR_SHOW_VIEW%>' + '=' + us;}function AddToShowView ( ViewId ){// Get current cookie settingsvar us = GetCookie('<%=COOKIE_RELMGR_SHOW_VIEW%>');var aShowViews = new Array();//Release Manager Cookie Available on Show Viewif ( us ){// Cookie is not empty, hence just append new valuevar aViews = us.split(',');// Make sure that view is not already on the listfor (i=0; i<aViews.length; i++){if (aViews[i] != ViewId){aShowViews.push(aViews[i]);}}// Make a new view list to be stored in cookieus = aShowViews.join(',') + ',' + ViewId;}else//Release Manager Cookie Not Available on Show View{// Cookie is empty, just add this valueus = ViewId;}// Store to cookiedocument.cookie = '<%=COOKIE_RELMGR_SHOW_VIEW%>' + '=' + us;}//--></script><%'------------------------------------------------------------------------------------------------------------------------------------------------Function GetEnvTab ( sEnvTab )If sEnvTab <> "" ThenGetEnvTab = sEnvTabResponse.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab") = sEnvTabElseIf Request.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab") <> "" ThenGetEnvTab = Request.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab")ElseGetEnvTab = enumENVTAB_WORK_IN_PROGRESSResponse.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab") = enumENVTAB_WORK_IN_PROGRESSEnd IfEnd IfEnd Function'------------------------------------------------------------------------------------------------------------------------------------------------Sub Display_Env_BaseView ( NNbase_view_id, SSbase_view, BBviewCollapsed, SScontents )%><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1" align="left" valign="top" bgcolor="#dad7c8"><img src="images/p_ctl.gif" width="3" height="3"></td><td width="100%" bgcolor="#dad7c8"><img src="images/spacer.gif" width="1" height="1"></td><td width="1" bgcolor="#dad7c8"><img src="images/spacer.gif" width="1" height="1"></td><td width="1" align="right" valign="top" bgcolor="#dad7c8"><img src="images/p_ctr.gif" width="3" height="3"></td></tr><tr><td align="left" valign="top" bgcolor="#dad7c8"> </td><td bgcolor="#dad7c8"><SPAN id="SPANVIEW<%=NNbase_view_id%>" <%If BBviewCollapsed Then%>class="body_scol_thin"<%Else%>class="body_txt"<%End If%>> <b><%=SSbase_view%></b></SPAN></td><td align="right" bgcolor="#dad7c8"><a href="javascript:;" onClick="RequestViewContent('?envtab=<%=nEnvTab%>&rtag_id=<%=parRtag_id%>&view_id=<%=NNbase_view_id%>&script_name=<%=ScriptName%>','<%=NNbase_view_id%>');"><img id="ENVIMG<%=NNbase_view_id%>" src="images/<%If BBviewCollapsed Then %>btn_max.gif<%Else%>btn_min.gif<%End If%>" border="0"></a></td><td align="right" valign="top" bgcolor="#dad7c8"> </td></tr></table><DIV id="ENVDIV<%=NNbase_view_id%>" class="envContent" <%If BBviewCollapsed Then %>style="display:none;"<%Else%>style="display:block;"<%End If%>><%If NOT BBviewCollapsed Then %><%=SScontents%><%Else%><%=enumLOADING%><%End If%></DIV><br><%End Sub'------------------------------------------------------------------------------------------------------------------------------------------------Sub Print_View( NNEnvTab, SSviewtype, NNrtag_id, SSshowviews, NNuser_id )Dim rsView, Query_String'Dim btn1Dim tmpURLDim SSscriptDim qstrParDim nViewTypeDim nTrueRecordCountDim nOperationDim relContentsSTR, viewCollapsed, curr_view_id, view_nameIf scriptName = "find.asp" ThenSSscript = "dependencies.asp"ElseSSscript = scriptNameEnd IfIf SSviewtype = "guest" ThennViewType = 1qstrPar = "Bshow"ElseIf SSviewtype = "personal" ThennViewType = 2qstrPar = "Pshow"End IfOraDatabase.Parameters.Add "VIEW_TYPE", nViewType, ORAPARM_INPUT, ORATYPE_NUMBER'OraDatabase.Parameters.Add "VIEW_ID_SHOW_LIST", ShowView( Pipes2Commas( SSshowviews ), SSviewtype ), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "VIEW_ID_SHOW_LIST", GetShowViewList(), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", NNuser_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "TRUE_RECORD_COUNT", NULL, ORAPARM_OUTPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RECORD_SET", NULL, ORAPARM_OUTPUT, ORATYPE_CURSOR'If it's a Deployment ViewIf parDview = "enable" Then' Decide which environment list is to be displayed to the Integrators/TestersSelect Case CInt( NNEnvTab )Case enumENVTAB_PRODRELEASEOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_PRODRELEASE_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case enumENVTAB_INTEGRATEOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_INTEGRATION_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case enumENVTAB_TESTOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_TEST_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case enumENVTAB_DEPLOYOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_DEPLOY_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case enumENVTAB_REJECTOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_REJECT_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"End SelectElse' Decide which environment list is to be displayedSelect Case CInt( NNEnvTab )Case enumENVTAB_WORK_IN_PROGRESSOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_WORK_IN_PROGRESS_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case enumENVTAB_PLANNEDOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_PENDING_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case enumENVTAB_RELEASEDOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_RELEASED_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"Case ElseOraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_ENVIRONMENT_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"End SelectEnd If' Get Record set from databaseSet rsView = OraDatabase.Parameters("RECORD_SET").ValuenTrueRecordCount = OraDatabase.Parameters("TRUE_RECORD_COUNT").ValueOraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "VIEW_TYPE"OraDatabase.Parameters.Remove "VIEW_ID_SHOW_LIST"OraDatabase.Parameters.Remove "RECORD_SET"OraDatabase.Parameters.Remove "TRUE_RECORD_COUNT"' Initialise variablesIf ((NOT rsView.BOF) AND (NOT rsView.EOF)) ThenrelContentsSTR = ""viewCollapsed = FALSEcurr_view_id = rsView("view_id") ' Set current viewview_name = rsView("view_name")End IfWhile ((NOT rsView.BOF) AND (NOT rsView.EOF))'==== Get View Contents ====If NOT IsNull(rsView.Fields("pv_id")) ThentmpURL = SSscript &"?pv_id="& rsView.Fields("pv_id") &"&rtag_id="& parRtag_idIMG_locked = ""If rsView.Fields("dlocked") = "Y" Then IMG_locked = imgLocked' DEVI-45275 - Normally, dlocked=Y items are denoted with a padlock icon on the web page. Since we can now merge' into the pending tab, the dlocked=Y items that end up there would not give any visual indication to the user' as to why they are present. So, instead of the padlock icon, display the added or removed icon to indicate' what the intended action is to be, once the pending item is approved.' Obviously, this functionality does not apply if we are in the deployment view, and only applies if viewing' the PENDING or ALL environment tabs.' With regard to the operation value, A = Added, S = SubtractednOperation = " "If parDview <> "enable" AND (CInt( NNEnvTab ) = enumENVTAB_PLANNED OR CInt( NNEnvTab ) = enumENVTAB_ALL) ThennOperation = rsView.Fields("operation") ' NB. this field is only availble if earlier query was GET_PENDING_ITEMS or GET_ENVIRONMENT_ITEMSIf nOperation = "A" ThenIMG_locked = imgAddedElseIf nOperation = "S" ThenIMG_locked = imgRemovedEnd IfEnd IfrelContentsSTR = relContentsSTR & "<tr>" & VBNewLineIf rsView("pkg_state") = 0 And rsView.Fields("deprecated_state") <> "" ThenrelContentsSTR = relContentsSTR & " <td width='1%'>"& DefineStateIcon ( rsView.Fields("deprecated_state"), rsView("dlocked"), NULL, NULL, pkgInfoHash.Item("build_type"), TRUE ) &"</td>"& VBNewLineElseIf (parDview <> "enable") AND ( ( CInt(NNEnvTab) = enumENVTAB_PLANNED ) OR ( Request("envtab") = enumENVTAB_PLANNED ) ) Then' if package version is unlocked, rejected, or pending approval, or is to be added/subtracted to/from the release (DEVI-45275), thenIf (rsView("dlocked") = "N") OR (rsView("dlocked") = "R") OR (rsView("dlocked") = "P") OR (nOperation = "A") OR (nOperation = "S") Thenchecked = NULLdisabled = NULL' disable check box if not logged in, or if not in open mode and user has no permission to approve pendingIf objAccessControl.UserLogedIn ThenIf ( ReleaseMode <> enumDB_RELEASE_IN_OPEN_MODE ) ThenIf NOT objAccessControl.IsActive("ApproveForAutoBuild") Thendisabled = "disabled"End IfEnd IfElsedisabled = "disabled"End IfElse ' always check and disable the checkboxchecked = "checked"disabled = "disabled"End IfrelContentsSTR = relContentsSTR & " <td width='1%'><input name='pv_id_list' id='pv_id_list' type=checkbox value="&rsView.Fields("pv_id")&" "&checked&" "&disabled&"></td>"& VBNewLineElserelContentsSTR = relContentsSTR & " <td width='1%'>"& DefineStateIcon ( rsView("pkg_state"), rsView("dlocked"), NULL, NULL, pkgInfoHash.Item("build_type"), TRUE ) &"</td>"& VBNewLineEnd IfEnd IfrelContentsSTR = relContentsSTR & " <td width='100%' nowrap><a href='"& tmpURL &"' class='body_txt_drk' title="""& HTMLEncode( rsView("pv_description") ) &""">"& rsView.Fields("pkg_name") &"</a></td>" & VBNewLinerelContentsSTR = relContentsSTR & " <td width='1%' nowrap class='envPkg'>"& rsView.Fields("pkg_version") &"</td>" & VBNewLinerelContentsSTR = relContentsSTR & " <td width='1%'>"& IMG_locked &"</td>"relContentsSTR = relContentsSTR & "</tr>" & VBNewLineElse'relContentsSTR = relContentsSTR & "<tr><td><label class='form_txt' disabled>...</label></td></tr>" ' Collapsed view displays dotsviewCollapsed = TRUEEnd IfrsView.MoveNextIf ((NOT rsView.BOF) AND (NOT rsView.EOF)) Then' NOT end of the record setIf curr_view_id <> rsView("view_id") Then'====== Draw buttons ================================='If InStrPipes( SSshowviews, curr_view_id ) Then' btn1 = "<a href='"& SSscript &"?"& qstrPar &"="& RemoveFromStrPipes( SSshowviews, curr_view_id ) &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"' >"& imgMinimise &"</a>"'Else' btn1 = "<a href='"& SSscript &"?"& qstrPar &"=|"& curr_view_id &"|"& SSshowviews &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"'>"& imgMaximise &"</a>"'End If'====== Print contents ===============================relContentsSTR = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>" & relContentsSTR & "</table>"Call Display_Env_BaseView ( curr_view_id, view_name, viewCollapsed, relContentsSTR )curr_view_id = rsView("view_id")view_name = rsView("view_name")relContentsSTR = "" ' Empty the contents stringviewCollapsed = FALSEEnd IfElse' End of the record set'====== Draw buttons ================================='If InStrPipes( SSshowviews, curr_view_id ) Then' btn1 = "<a href='"& SSscript &"?"& qstrPar &"="& RemoveFromStrPipes( SSshowviews, curr_view_id ) &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"' >"& imgMinimise &"</a>"'Else' btn1 = "<a href='"& SSscript &"?"& qstrPar &"=|"& curr_view_id &"|"& SSshowviews &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"'>"& imgMaximise &"</a>"'End If'====== Print contents ===============================relContentsSTR = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>" & relContentsSTR & "</table>"Call Display_Env_BaseView ( curr_view_id, view_name, viewCollapsed, relContentsSTR )End IfWEndIf relContentsSTR <> "" ThenResponse.write "<a href='help/icons_F017.asp' target='_blank' class='body_scol'>Icon Legend...</a><br>"End IfIf nTrueRecordCount > 0 ThenIf rsView.RecordCount < 1 Then'If qstrPar = "Bshow" Then' 'Release is empty. Draw default box for Base view' Call DisplayInfo ( "EMPTY_RELEASE_CONTENTS", "100%" )''End IfIf qstrPar = "Pshow" Then'Release is empty. Draw default box for Personal viewCall DisplayInfo ( "PERSONAL_VIEW_NOT_SETUP", "100%" )End IfEnd IfEnd If' DestroyrsView.CloseSet rsView = nothingEnd Sub'------------------------------------------------------------------------------------------------------------------------------------------------Sub PopulateGetShowViews ( ByRef outShowView )If Session(SESSION_SHOW_BASE_VIEW) <> "" ThenSet outShowView = Session(SESSION_SHOW_BASE_VIEW)End IfEnd Sub'------------------------------------------------------------------------------------------------------------------------------------------------Function GetShowViewList ()'If SSparshow <> "" Then' ' get list from query string' ShowView = SSparshow'ElseIf Request.Cookies("RELEASEMANAGER_VIEW_SHOW")( SSviewtype ) <> "" Then' ' get list from cookie' ShowView = Request.Cookies("RELEASEMANAGER_VIEW_SHOW")( SSviewtype )'Else' ' no list i.e. collapse all views' ShowView = -1'End If'If oShowView.Count = 0 Then' GetShowViewList = -1'Else' GetShowViewList = Join( oShowView.Keys, "," )'End IfIf Request.Cookies(COOKIE_RELMGR_SHOW_VIEW) = "" ThenGetShowViewList = -1ElseGetShowViewList = Request.Cookies(COOKIE_RELMGR_SHOW_VIEW)End IfEnd Function'------------------------------------------------------------------------------------------------------------------------------------------------' This function forms a URL to use for refreshing the current dependencies.asp based page using the settings that are in effect at the time.' Most importantly, it filters out the pv_id parameter if it is null (which otherwise would cause the page to be rendered incorreclty for an' as yet, unknown reason).'Function RefreshedURL(NNdview, NNpview, NNpv_id, NNrtag_id)Dim urlurl = scriptName & "?Dview=" & NNdview & "&Pview=" & NNpviewIf NNpv_id Thenurl = url & "&pv_id=" & NNpv_idEnd Ifurl = url & "&rtag_id=" & NNrtag_idRefreshedURL = urlEnd Function'------------------------------------------------------------------------------------------------------------------------------------------------%><%'------------------------- MAIN LINE ---------------------------%><%If parRtag_Id <> "" Then%><!-- RELEASE ACTION BUTTONS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="10" height="35"></td><td width="100%" nowrap background="images/bg_action_norm.gif" ><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><%Dim rsTestSet rsTest = OraDataBase.DbCreateDynaset( "SELECT PROJ_ID FROM RELEASE_TAGS WHERE RTAG_ID ="&parRtag_id , ORADYN_DEFAULT )If (((ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE)) AND objAccessControl.IsActive("AddDeletePackageInRestrictiveMode") And objAccessControl.IsDataActive("PROJECTS", DB_PROJ_ID, "EditProjects")) OR (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE ) ThenResponse.write "<td width='1'><a href='form_search_pkgs.asp?rtag_id="& Request("rtag_id") &"&add_type="& enum_ADD_PACKAGES &"' title='Add package to this release'><img src='images/abtn_add_pkg.gif' width='25' height='25' hspace='1' border='0'></a></td>"'Response.write "<td width='1'><a href='_remove_package.asp?rtag_id="& Request("rtag_id") &"&pv_id="& Request("pv_id") &"' title='Remove package from this release'><img src='images/abtn_remove_pkg.gif' alt='Remove package from this release' width='26' height='26' hspace='1' border='0'></td>"ElseResponse.write "<td width='1'><img src='images/abtn_add_pkg_off.gif' alt='Add package to this release' width='26' height='26' hspace='1' border='0'></td>"'Response.write "<td width='1'><img src='images/abtn_remove_pkg_off.gif' alt='Remove package from this release' width='26' height='26' hspace='1' border='0'></td>"End IfIf (pkgInfoHash.Item("dlocked") <> "Y") AND (objAccessControl.UserLogedIn) AND (Request("pv_id") <> "") ThenIf ( (objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (objAccessControl.IsActive("DestroyPackageFromRelease")) ) ThenResponse.write "<td width='1'><a href='_destroy_package.asp?rtag_id="& Request("rtag_id") &"&bfile="& ScriptName &"&pkg_id="& pkgInfoHash.Item("pkg_id") &"&pv_id="& Request("pv_id") &"' title='Destroy the selected Package Version' onClick='return confirmAction(""You are about to destroy ["& pkgInfoHash.Item("pkg_name") &" "& pkgInfoHash.Item("pkg_version") &"]. You cannot undo this operation.\nDo you want to proceed?"");'><img src='icons/i_destroy_package.gif' alt='Destroy the selected Package Version' width='26' height='26' hspace='1' border='0'></td>"End IfEnd IfIf objAccessControl.IsActive("CreateNewRelease") ThenResponse.write "<td width='1'><a href='form_edit_release.asp?rtag_id_list="&parRtag_id&"&proj_id="&rsTest("proj_id")&"' title='Release properties'><img src='images/abtn_release_properties.gif' width='25' height='25' hspace='1' border='0'></a></td>"End IfResponse.write "<td width='1'><img src='images/spacer.gif' width='7' height='25'></td>"If objAccessControl.UserLogedIn ThenIf QStrPar("Pview") = "disable" ThenResponse.write "<td width='1'><a href='"& RefreshedURL(QStrPar("Dview"), "", Request("pv_id"), Request("rtag_id")) &"' title='Personal view disabled. Click to enable.'><img src='images/abtn_base_view.gif' width='25' height='25' hspace='1' border='0'></a></td>"ElseResponse.write "<td width='1'><a href='"& RefreshedURL(QStrPar("Dview"), "disable", Request("pv_id"), Request("rtag_id")) &"' title='Personal view enabled. Click for full view.'><img src='images/abtn_personal_view.gif' width='25' height='25' hspace='1' border='0'></a></td>"End IfElseResponse.write "<td width='1'><img src='images/abtn_personal_view_off.gif' width='26' height='26' hspace='1' border='0'></td>"End IfIf QStrPar("Dview") = "enable" ThenResponse.write "<td width='1'><a href='"& RefreshedURL("", QStrPar("Pview"), Request("pv_id"), Request("rtag_id")) &"' title='Click to switch to Release View'><img src='icons/ReleaseView.gif' width='25' height='25' hspace='1' border='0'></a></td>"ElseResponse.write "<td width='1'><a href='"& RefreshedURL("enable", QStrPar("Pview"), Request("pv_id"), Request("rtag_id")) &"' title='Click to switch to Deployment View'><img src='icons/DeploymentView.gif' width='25' height='25' hspace='1' border='0'></a></td>"End IfResponse.write "<td width='1'><img src='images/spacer.gif' width='7' height='25'></td>"Response.write "<td width='1'><a href='javascript:;' title='Reference other releases...' onClick='ToggleDisplay(""DIV_RELEASE_REFERENCES"",""SPAN_RELEASE_REFERENCES"",""SPAN_RELEASE_REFERENCES_ON""); ' ><SPAN name='SPAN_RELEASE_REFERENCES' id='SPAN_RELEASE_REFERENCES' style='display:block;'><img src='images/abtn_link_release.gif' width='25' height='25' border='0' hspace='1' ></SPAN><SPAN name='SPAN_RELEASE_REFERENCES_ON' id='SPAN_RELEASE_REFERENCES_ON' style='display:none;'><img src='images/abtn_link_release_on.gif' width='25' height='25' border='0' hspace='1' ></SPAN></a></td>"Response.write "<td width='1'><img src='images/spacer.gif' width='7' height='25'></td>"Response.write "<td width='1'><a href='javascript:;' title='Advanced Search...' onClick='ToggleAdvancedSearch(); ' ><SPAN name='SPAN_ADVANCED_SEARCH' id='SPAN_ADVANCED_SEARCH' style='display:block;'><img src='images/abtn_advanced_search.gif' width='25' height='25' border='0' hspace='1' ></SPAN><SPAN name='SPAN_ADVANCED_SEARCH_ON' id='SPAN_ADVANCED_SEARCH_ON' style='display:none;'><img src='images/abtn_advanced_search_on.gif' width='25' height='25' border='0' hspace='1' ></SPAN></a></td>"If ( (QStrPar("Dview") <> "enable") AND ( (CInt(nEnvTab) = enumENVTAB_PLANNED) OR (Request("envtab") = enumENVTAB_PLANNED) ) ) ThenIf objAccessControl.UserLogedIn ThenIf ( ReleaseMode <> enumDB_RELEASE_IN_OPEN_MODE ) ThenIf objAccessControl.IsActive("ApproveForAutoBuild") OR objAccessControl.IsActive("ApproveForManualBuild") ThenResponse.write "<td width='1'><a href='#' onClick='makeBulkRelease();'><img src='images/abtn_make_release_bulk.gif' title='Make Bulk Release...'></td>"End IfElseResponse.write "<td width='1'><a href='#' onClick='makeBulkRelease();'><img src='images/abtn_make_release_bulk.gif' title='Make Bulk Release...'></td>"End IfEnd IfEnd IfrsTest.Close()Set rsTest = nothing%><td width="100%"><img src="images/spacer.gif" width="1" height="1"></td></tr></table></td><td width="1" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="10" height="8"></td></tr></table><!-- ADVANCED SEARCH ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><DIV name="DIV_ADVANCED_SEARCH" id="DIV_ADVANCED_SEARCH" style="display:none;"><table width="100%" border="0" cellspacing="0" cellpadding="10"><form name="advancedsearch" method="get" action="find.asp"><tr><td nowrap class="form_txt" valign="middle"><%Dim FindPackageCheck, FindFileCheckFindPackageCheck = ""FindFileCheck = ""If Request("searchtype") = "2" ThenFindFileCheck = "checked"ElseFindPackageCheck = "checked"End If%><fieldset><legend class="body_colb"><img src="images/i_mglass.gif" width="17" height="17" border="0" align="absmiddle"> Advanced Search</legend><input name="searchtype" id="searchtype1" type="radio" value="1" <%=FindPackageCheck%>><a href="javascript:;" onClick="MM_findObj('searchtype1').checked=true;" class="body_txt">Find a Package</a><br><input name="searchtype" id="searchtype2" type="radio" value="2" <%=FindFileCheck%>><a href="javascript:;" onClick="MM_findObj('searchtype2').checked=true;" class="body_txt">Find a File</a><br><br><%If CInt(nEnvTab) = enumENVTAB_WORK_IN_PROGRESS Then%>Find in Work In Progress<br><%ElseIf CInt(nEnvTab) = enumENVTAB_PLANNED Then%>Find in Pending<br><%ElseIf CInt(nEnvTab) = enumENVTAB_RELEASED Then%>Find in Released<br><%End If%><input type="text" name="keyword" size="25" class="form_ivaluew" value="<%=Request("keyword")%>"><input type="submit" name="btn" value="Find" class="form_ivalue"><input type="hidden" name="envtab" value="<%=nEnvTab%>"><input type="hidden" name="rtag_id" value="<%=parRtag_id%>"></fieldset><br></td></tr></form></table></DIV><script language="JavaScript" type="text/javascript"><!--function ToggleAdvancedSearch( ){if ( MM_findObj("DIV_ADVANCED_SEARCH").style.display == 'none'){MM_findObj("DIV_ADVANCED_SEARCH").style.display = 'block';MM_findObj("SPAN_ADVANCED_SEARCH").style.display = 'none';MM_findObj("SPAN_ADVANCED_SEARCH_ON").style.display = 'block';}else{MM_findObj("DIV_ADVANCED_SEARCH").style.display = 'none';MM_findObj("SPAN_ADVANCED_SEARCH").style.display = 'block';MM_findObj("SPAN_ADVANCED_SEARCH_ON").style.display = 'none';}document.cookie = 'RELMGR_DIV_ADVANCED_SEARCH' + '=' + MM_findObj("DIV_ADVANCED_SEARCH").style.display;}// Run this on page render for default settingif (GetCookie('RELMGR_DIV_ADVANCED_SEARCH') == 'block'){ToggleAdvancedSearch();}//--></script><!-- RELEASE REFERENCES ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><DIV name="DIV_RELEASE_REFERENCES" id="DIV_RELEASE_REFERENCES" style="display:none;"><table width="100%" border="0" cellspacing="0" cellpadding="10"><form name="relref" method="get" action="_remove_release_reference.asp" onSubmit="ToggleDisplay('RelRefProgressBar');"><tr><td width="100%" nowrap class="form_txt"><fieldset><legend class="body_colb"><img src="images/i_releaseref.gif" border="0" align="absmiddle"> Release References</legend><DIV id="RelRefProgressBar" name="RelRefProgressBar" style="display:none;" class="class="body_scol""><img src="images/i_processing.gif" width="11" height="17" align="absmiddle" hspace="3">Processing...</DIV><b>References</b><hr noshade size="1"><%If (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE) Then%><input <%=objAccessControl.IsComponentDisabled("AddReleaseReference")%> type="reset" name="btn" value="Add.." class="form_ivalue" onClick="MM_openBrWindow('_wform_reference_release.asp?ToRtag_id=<%=parRtag_id%>&rfile=<%=ScriptName%>&rtag_id=<%=parRtag_id%>','ReferenceRelease','scrollbars=yes,resizable=yes,width=400,height=200')"> <input <%=objAccessControl.IsComponentDisabled("RemoveReleaseReference")%> type="submit" name="btn" value="Remove" class="form_ivalue"><br><br><%End If%><input type="hidden" name="rtag_id" value="<%=parRtag_id%>"><table width="100%" border="0" cellspacing="0" cellpadding="1"><tr><td bgcolor="#999999"><table width="100%" border="0" cellspacing="0" cellpadding="1"><%OraDatabase.Parameters.Add "RTAG_ID", parRtag_id, ORAPARM_INPUT, ORATYPE_NUMBERSet rsEnvQry = OraDatabase.DbCreateDynaset( GetQuery("ReleaseReferences.sql"), 0 )OraDatabase.Parameters.Remove "RTAG_ID"%><%If rsEnvQry.RecordCount = 0 Then%><tr><td colspan="2" bgcolor="#FFFFFF" class="body_txt_gray">No references used.</td></tr><%End If%><%While (NOT rsEnvQry.EOF) AND (NOT rsEnvQry.BOF)If rsEnvQry("official") = "Y" ThenIMG_locked = imgLockedElseIMG_locked = ""End If%><tr><td bgcolor="#FFFFFF" class="body_txt"><input type="checkbox" name="refrtag_id" value="<%=rsEnvQry("rtag_id")%>"></td><td bgcolor="#FFFFFF" class="body_txt" nowrap><a href="dependencies.asp?rtag_id=<%=rsEnvQry("rtag_id")%>" class="body_link" title="Go to this release..."><%=rsEnvQry("proj_name")%> > <%=rsEnvQry("rtag_name")%><%=IMG_locked%></a> </td></tr><%rsEnvQry.MoveNext()WEnd%><tr><td colspan="2" bgcolor="#FFFFFF" class="body_txt_gray"><br><br><br></td></tr></table></td></tr></table><br><br><b>Referenced By</b><hr noshade size="1"><table width="100%" border="0" cellspacing="0" cellpadding="1"><tr><td bgcolor="#999999"><table width="100%" border="0" cellspacing="0" cellpadding="1"><%OraDatabase.Parameters.Add "RTAG_ID", parRtag_id, ORAPARM_INPUT, ORATYPE_NUMBERSet rsEnvQry = OraDatabase.DbCreateDynaset( GetQuery("ReleaseReferencedBy.sql"), 0 )OraDatabase.Parameters.Remove "RTAG_ID"%><%If rsEnvQry.RecordCount = 0 Then%><tr><td colspan="2" bgcolor="#FFFFFF" class="body_txt_gray">Not referenced anywhere.</td></tr><%End If%><%While (NOT rsEnvQry.EOF) AND (NOT rsEnvQry.BOF)If rsEnvQry("official") = "Y" ThenIMG_locked = imgLockedElseIMG_locked = ""End If%><tr><td bgcolor="#FFFFFF" class="body_txt"><input type="checkbox" name="refrtag_id" value="<%=rsEnvQry("rtag_id")%>" disabled></td><td bgcolor="#FFFFFF" class="body_txt" nowrap><a href="dependencies.asp?rtag_id=<%=rsEnvQry("rtag_id")%>" class="body_link" title="Go to this release..."><%=rsEnvQry("proj_name")%> > <%=rsEnvQry("rtag_name")%><%=IMG_locked%></a> </td></tr><%rsEnvQry.MoveNext()WEnd%><tr><td colspan="2" bgcolor="#FFFFFF" class="body_txt_gray"><br><br><br></td></tr></table></td></tr></table><br></fieldset><br></td></tr></form></table></DIV><!-- END OF RELEASE REFERENCES ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><!-- PACKAGE LIST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><table width="100%" border="0" cellspacing="0" cellpadding="0"><form id="pending_PVID_List" name="pending_PVID_List" method="post" action="make_bulk_release.asp?pv_id=<%=Request("pv_id")%>&rtag_id=<%=parRtag_id%>", onSubmit="makeBulkRelease();"><tr><td width="1" bgcolor="#999999"><img src="images/spacer.gif" width="10" height="25"></td><td width="100%" bgcolor="#999999" valign="bottom"><!-- TAB CONTROLS ++++++++++++++++++++++ --><%Set objTabControl = New TabControlobjTabControl.TemplateDoc = ReadFile( Server.MapPath("controls/ERGTabStyleDreamWeaver/dreamweaver_style.html") ) ' Supply tab style definitionobjTabControl.TabStyle = "StyleDreamWeaver"If QStrPar("Dview") = "enable" ThenobjTabControl.AddTabDefnition ( arrProductEnv ) '- Integration/Test/DeployElseobjTabControl.AddTabDefnition ( arrEnv )End IfobjTabControl.SelectByIndex ( nEnvTab )objTabControl.Render ()%><!-- END OF TAB CONTROLS +++++++++++++++ --></td><td width="1" bgcolor="#999999"><img src="images/spacer.gif" width="10" height="1"></td></tr><tr><td></td><td><br><%Dim tempTimertempTimer = Timer%><%'Response.write "TOTAL TIME: "& Timer - tempTimer%><%'--- Render Environment ---If objAccessControl.UserLogedIn AND (parPview <> "disable") Then'Personal ViewCall Print_View( nEnvTab, "personal", parRtag_id, parPshow, objAccessControl.UserId )Else' Guest viewCall Print_View( nEnvTab, "guest", parRtag_id, parBshow, empty )End If%><%'Response.write "TOTAL TIME: "& Timer - tempTimer%><br></td><td></td></tr></form></table><!-- <input type="hidden" name="pv_id_list" value=<%=Request("pv_id_list")%>> --><!--END OF PACKAGE LIST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><%End If%>