Rev 6048 | Rev 6371 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| INDEX |'| |'=====================================================%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store%><!--#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"--><%'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_login.asp"--><!--#include file="_access_control_general.asp"--><%'------------ Variable Definition -------------Dim parMsgDim msgScript, msgTitleDim userIdDim pkgCountDim rsQryDim rsLastReleaseDim AutomatedPackages, TotalPackagesDim Query_StringDim Auto'------------ Constants Declaration -----------'------------ Variable Init -------------------parMsg = QStrPar("msg") ' Messages'----------------------------------------------%><%'-----------------------------------------------------------------------------------------------------------------------Function Get_MessagesGet_Messages = _" SELECT * FROM message_board WHERE expiry_date > "& ORA_SYSDATE &" OR due_date >= "& ORA_SYSDATE &"+2"End Function'-----------------------------------------------------------------------------------------------------------------------%><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" type="text/css"><link rel="stylesheet" href="images/navigation.css" type="text/css"><script language="JavaScript" src="images/common.js"></script><script language="JavaScript" src="scripts/remote_scripting.js"></script><!--#include file="_jquery_includes.asp"--><!-- TIPS --><script language="JavaScript" src="images/tipster.js"></script><script language="JavaScript" src="images/_help_tips.js"></script><!-- DROPDOWN MENUS --><!--#include file="_menu_def.asp"--><script language="JavaScript1.2" src="images/popup_menu.js"></script><script language="JavaScript" type="text/javascript"><!--formTips.tips.h_wip = stdTip(300, 'Work In Progress', 'These are versions of packages that have not yet been Released.' +'<p>The versions are associated with a Release and are considered to be a "Work In Progress".' +'<p>Consider Releasing or Deleting these versions.');formTips.tips.h_dangling = stdTip(300, 'Dangling Versions', 'Dangling package versions are versions of a package that have not been released and are not associated with any Release.' +'<p>These are commonly caused by "Removing" a WIP instead of "Destroying" it.' +'<p>Please consider destroying these versions.');function RequestUserWip( paramString, rowId ){var requestURL = 'RequestUserWip.asp';// Show divToggleDisplay( 'DIVWIP_'+ rowId, 'IMG_EXPAND_WIP_' + rowId, 'IMG_COLLAPSE_WIP_' + rowId );// Set ajax divnameajaxdivname = 'DIVWIP_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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 RequestUserDangle( paramString, rowId ){var requestURL = 'RequestUserDangle.asp';// Show divToggleDisplay( 'DIVDANGLE_'+ rowId, 'IMG_EXPAND_DANGLE_' + rowId, 'IMG_COLLAPSE_DANGLE_' + rowId );// Set ajax divnameajaxdivname = 'DIVDANGLE_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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);}else{//Destroy the data when closed//This will force a fresh when its redisplayedMM_findObj( ajaxdivname ).innerHTML = '<%=enumLOADING%>'}}function RequestProjectRelease( paramString, rowId ){var requestURL = 'RequestProjectRelease.asp';// Show divToggleDisplay( 'DIVPROJ_'+ rowId, 'IMG_EXPAND_PROJ_' + rowId, 'IMG_COLLAPSE_PROJ_' + rowId );// Set ajax divnameajaxdivname = 'DIVPROJ_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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 RequestReleasePackages( paramString, rowId ){var requestURL = 'RequestReleasePackages.asp';// Show divToggleDisplay( 'DIVRTAG_'+ rowId, 'IMG_EXPAND_RTAG_' + rowId, 'IMG_COLLAPSE_RTAG_' + rowId );// Set ajax divnameajaxdivname = 'DIVRTAG_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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 RequestTop10ChangesInLastWeek( paramString, rowId ){var requestURL = 'RequestTop10Changes.asp';// Show divToggleDisplay( 'DIVRTAG_'+ rowId + '_TOP10_1_WEEK', 'IMG_EXPAND_RTAG_' + rowId + '_TOP10_1_WEEK', 'IMG_COLLAPSE_RTAG_' + rowId + '_TOP10_1_WEEK' );// Set ajax divnameajaxdivname = 'DIVRTAG_'+ rowId + '_TOP10_1_WEEK';if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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 RequestTop10ChangesInLastMonth( paramString, rowId ){var requestURL = 'RequestTop10Changes.asp';// Show divToggleDisplay( 'DIVRTAG_'+ rowId + '_TOP10_1_MONTH', 'IMG_EXPAND_RTAG_' + rowId + '_TOP10_1_MONTH', 'IMG_COLLAPSE_RTAG_' + rowId + '_TOP10_1_MONTH' );// Set ajax divnameajaxdivname = 'DIVRTAG_'+ rowId + '_TOP10_1_MONTH';if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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 RequestTop10ChangesInLast3Months( paramString, rowId ){var requestURL = 'RequestTop10Changes.asp';// Show divToggleDisplay( 'DIVRTAG_'+ rowId + '_TOP10_3_MONTHS', 'IMG_EXPAND_RTAG_' + rowId + '_TOP10_3_MONTHS', 'IMG_COLLAPSE_RTAG_' + rowId + '_TOP10_3_MONTHS' );// Set ajax divnameajaxdivname = 'DIVRTAG_'+ rowId + '_TOP10_3_MONTHS';if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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 RequestPreviousPackageVersions( paramString, rowId ){var requestURL = 'RequestPackageVersionHistoryMetrics.asp';// Show divToggleDisplay( 'DIVRTAG_'+ rowId + '_PREV_PKG_VERS', 'IMG_EXPAND_RTAG_' + rowId + '_PREV_PKG_VERS', 'IMG_COLLAPSE_RTAG_' + rowId + '_PREV_PKG_VERS' );// Set ajax divnameajaxdivname = 'DIVRTAG_'+ rowId + '_PREV_PKG_VERS';if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//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);}}//--></script><style type="text/css"><!--.style1 {font-family: Arial, Helvetica, sans-serif;font-size: 12px;}.style3 {font-size: 11px;font-family: tahoma, sans-serif;}--></style></head><!-- TIPS LAYERS --------------------------------------><div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10"> </div><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" ><!-- HEADER --><!--#include file="_header.asp"--><!-- BODY ----><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1%" background="images/bg_home_orange.gif" valign="top"><!--#include file="_front_explorer.asp"--></td><td rowspan="2" width="1%" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1%"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td background="images/bg_comp_gear.gif"><img src="images/img_comp_gear_left.jpg" width="436" height="88"></td><td align="right" background="images/bg_comp_gear.gif"><img src="images/img_comp_gear_right.jpg" width="70" height="88"></td></tr></table></td><td background="images/bg_action_norm.gif"></td></tr><tr><td width="1%"><img src="images/h_trsp_dot.gif" width="15" height="518"></td><td width="100%" valign="top" class="body_txt"><br><!-- MESSAGE BOARD ----------------------------------------------><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="2" class="body_sect">Message Board</td></tr><tr><td align="center" width="1%" nowrap class="body_txt" background="images/bg_form_lightbluedark.gif">Due Date</td><td width="100%" background="images/bg_form_lightbluedark.gif" align="right"><a href="javascript:;" onclick="MM_openVixIFrame('_wform_schedule_add.asp','Add Scheduled Task')"><img src="images/i_schedule.gif" width="16" height="15" border="0" hspace="4" vspace="2" alt="Schedule a Task" title="Schedule a Task"></a><a href="javascript:;" onclick="MM_openVixIFrame('_wform_memo_add.asp','Add Memo')"><img src="images/i_memo.gif" width="12" height="15" border="0" hspace="4" vspace="2" alt="Memo" title="Memo"></a></td></tr><%Set rsTemp = OraDatabase.DbCreateDynaset( Get_Messages, cint(0))If rsTemp.RecordCount < 1 Then Response.write "<tr><td colspan='2' class='msgb_item'> No messages at this time.</td></tr>"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))If rsTemp.Fields("due_date") <> "" ThenmsgScript = "schedule"msgTitle = "Edit Scheduled Task"ElsemsgScript = "memo"msgTitle = "Edit Memo"End If%><tr><td align="center" valign="top" nowrap><%If rsTemp.Fields("due_date") <> "" Then%><a href="javascript:;" onClick="MM_openVixIFrame('_wform_<%=msgScript%>_edit.asp?FRmsg_id=<%=rsTemp.Fields("msg_id")%>','<%=msgTitle%>')" class="msgb_item"><%=DisplayDate(rsTemp.Fields("due_date"))%><br><img src="images/i_clock.gif" width="14" height="14" border="0"></a><%Else%><img src="images/h_trsp_dot.gif" width="1" height="25"><%End If%></td><td valign="top"><a href="javascript:;" onClick="MM_openVixIFrame('_wform_<%=msgScript%>_edit.asp?FRmsg_id=<%=rsTemp.Fields("msg_id")%>','<%=msgTitle%>')" class="msgb_item"><%=Replace(rsTemp.Fields("msg_details"), VBNewLine, "<br>")%></a></td></tr><tr><td colspan="2" background="images/bg_form_lightbluedark.gif"><img src="images/h_trsp_dot.gif" width="1" height="1"></td></tr><%rsTemp.MoveNextWEndrsTemp.CloseSet rsTemp = nothing%><tr><td><img src="images/h_trsp_dot.gif" width="80" height="1"></td><td align="right"></td></tr></table><!-- MESSAGE BOARD END ----------------------------------------------><br><br><!-- WORK IN PROGRESS ----------------------------------------------><table width="100%" border="0" cellspacing="1" cellpadding="1"><tr><td colspan="4" class="body_sect">Work In Progress<%=Quick_Help("h_wip")%></td></tr><tr><td width="40%" nowrap class="body_txt" background="images/bg_form_lightbluedark.gif"> User</td><td width="50%" nowrap class="body_txt" background="images/bg_form_lightbluedark.gif"> Package Count</td><td width="1%" background="images/bg_form_lightbluedark.gif"><img src="images/h_trsp_dot.gif" width="1" height="17"></td></tr><!-- PERSONAL WORK IN PROGRESS --><%If objAccessControl.UserLogedIn ThenOraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsTemp = OraDatabase.DbCreateDynaset( GetQuery("WorkInProgressByUser.sql"), cint(0))OraDatabase.Parameters.Remove "USER_ID"userId = rsTemp("user_id")%><tr><td nowrap><span id="IMG_EXPAND_WIP_<%=userId%>" style="display:block;"><a href="javascript:;" class="txt_linked" onClick="RequestUserWip('?user_id=<%=userId%>', '<%=userId%>');"><img src="images/bt_plus.gif" border="0" align="absmiddle" hspace="3"><img src="images/i_user.gif" border="0" align="absmiddle" hspace="3"><%=rsTemp("full_name")%></a></span><span id="IMG_COLLAPSE_WIP_<%=userId%>" style="display:none;"><a href="javascript:;" class="txt_linked" onClick="ToggleDisplay( 'DIVWIP_<%=userId%>', 'IMG_EXPAND_WIP_<%=userId%>', 'IMG_COLLAPSE_WIP_<%=userId%>');"><img src="images/bt_minus.gif" border="0" align="absmiddle" hspace="3"><img src="images/i_user.gif" border="0" align="absmiddle" hspace="3"><%=rsTemp("full_name")%></a></span></td><td nowrap class="body_txt"><%=rsTemp("counter")%></td><td nowrap class="body_txt"><a href="mailto:<%=rsTemp("user_email")%>"><img src="images/bt_send_email.gif" width="36" height="13" border="0" alt="<%=rsTemp("user_email")%>"></a></td></tr><tr><td nowrap class="body_txt" colspan="3"><div id="DIVWIP_<%=userId%>" style="display:none;"><%=enumLOADING%></div></td></tr><tr><td colspan="3" background="images/bg_form_lightbluedark_line.gif"><img src="images/h_trsp_dot.gif" width="1" height="1"></td></tr><%rsTemp.CloseSet rsTemp = nothingEnd If%></table><!-- WORK IN PROGRESS END ------------------------------------------><!-- DANGLING PACKAGES ----------------------------------------------><%pkgCount = 0If objAccessControl.UserLogedIn ThenOraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsTemp = OraDatabase.DbCreateDynaset( GetQuery("WorkNotInProgressByUser.sql"), cint(0))OraDatabase.Parameters.Remove "USER_ID"userId = rsTemp("user_id")pkgCount = rsTemp("counter")End If%><table width="100%" border="0" cellspacing="1" cellpadding="1"><tr><td colspan="4" class="body_sect">Dangling Package Versions<%=Quick_Help("h_dangling")%><%If pkgCount > 10 Then%><img src='images/a_warning.gif' width='21' height='21' border='0' title='Unreleased packages that are not in use.'><%End If%></td></tr><tr><td width="40%" nowrap class="body_txt" background="images/bg_form_lightbluedark.gif"> User</td><td width="50%" nowrap class="body_txt" background="images/bg_form_lightbluedark.gif"> Package Count</td><td width="1%" background="images/bg_form_lightbluedark.gif"><img src="images/h_trsp_dot.gif" width="1" height="17"></td></tr><%If objAccessControl.UserLogedIn Then %><tr><td nowrap><span id="IMG_EXPAND_DANGLE_<%=userId%>" style="display:block;"><a href="javascript:;" class="txt_linked" onClick="RequestUserDangle('?user_id=<%=userId%>', '<%=userId%>');"><img src="images/bt_plus.gif" border="0" align="absmiddle" hspace="3"><img src="images/i_user.gif" border="0" align="absmiddle" hspace="3"><%=rsTemp("full_name")%></a></span><span id="IMG_COLLAPSE_DANGLE_<%=userId%>" style="display:none;"><a href="javascript:;" class="txt_linked" onClick="RequestUserDangle('?user_id=<%=userId%>', '<%=userId%>');"><img src="images/bt_minus.gif" border="0" align="absmiddle" hspace="3"><img src="images/i_user.gif" border="0" align="absmiddle" hspace="3"><%=rsTemp("full_name")%></a></span></td><td nowrap class="body_txt"><%=pkgCount%></td><td nowrap class="body_txt"><a href="mailto:<%=rsTemp("user_email")%>"><img src="images/bt_send_email.gif" width="36" height="13" border="0" alt="<%=rsTemp("user_email")%>"></a></td></tr><tr><td nowrap class="body_txt" colspan="3"><div id="DIVDANGLE_<%=userId%>" style="display:none;"><%=enumLOADING%></div></td></tr><tr><td colspan="3" background="images/bg_form_lightbluedark_line.gif"><img src="images/h_trsp_dot.gif" width="1" height="1"></td></tr><%rsTemp.CloseSet rsTemp = nothingEnd If%></table><!-- DANGLING PACKAGES END ------------------------------------------><br><br><!-- RELEASE METRICS --------------------------------------------------------><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="4" class="body_sect">Release Metrics</td></tr><tr><td colspan="2"><table width="100%" border="0" cellspacing="1" cellpadding="1"><tr><td nowrap class="body_txt" valign="top" background="images/bg_form_lightbluedark.gif">Project</td><td nowrap class="body_txt" valign="top" background="images/bg_form_lightbluedark.gif">Last Autobuilt<br>Release</td><td nowrap class="body_txt" valign="top" background="images/bg_form_lightbluedark.gif">Last Autobuild<br>Completed</td><td nowrap class="body_txt" valign="top" background="images/bg_form_lightbluedark.gif">Autobuilt Packages</td></tr><%Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsWithMetrics.sql"), cint(0))While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))OraDatabase.Parameters.Add "PROJ_ID", rsQry("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsTemp = OraDatabase.DbCreateDynaset( GetQuery("ReleaseMetrics.sql"), cint(0))If rsTemp.RecordCount > 0 ThenAuto=FormatPercent(rsTemp("autobuilt")/rsTemp("total_packages"), 2)End If%><tr><td background="images/bg_form_lightgray.gif" nowrap class="body_txt"><span id="IMG_EXPAND_PROJ_<%=rsQry("proj_id")%>" style="display:block;"><a href="javascript:;" class="txt_linked" onClick="RequestProjectRelease('?proj_id=<%=rsQry("proj_id")%>', '<%=rsQry("proj_id")%>');"><img src="images/bt_plus.gif" border="0" align="absmiddle" hspace="3"><img src="images/i_world.gif" border="0" align="absmiddle" hspace="3"><%=rsQry("proj_name")%></a></span><span id="IMG_COLLAPSE_PROJ_<%=rsQry("proj_id")%>" style="display:none;"><a href="javascript:;" class="txt_linked" onClick="ToggleDisplay( 'DIVPROJ_<%=rsQry("proj_id")%>', 'IMG_EXPAND_PROJ_<%=rsQry("proj_id")%>', 'IMG_COLLAPSE_PROJ_<%=rsQry("proj_id")%>');"><img src="images/bt_minus.gif" border="0" align="absmiddle" hspace="3"><img src="images/i_world.gif" border="0" align="absmiddle" hspace="3"><%=rsQry("proj_name")%></a></span></td><td background="images/bg_form_lightgray.gif" nowrap class="body_txt"><%=rsTemp("rtag_name")%></td><td background="images/bg_form_lightgray.gif" nowrap class="body_txt"><%=rsTemp("last_build_time")%></td><%If rsTemp.RecordCount > 0 Then%><td background="images/bg_form_lightgray.gif" nowrap class="body_txt"><%=rsTemp("autobuilt")%>/<%=rsTemp("total_packages")%>(<%=Auto%>)</td><%Else%><td background="images/bg_form_lightgray.gif" nowrap class="body_txt"></td><%End If%></tr><tr><td nowrap class="body_txt" colspan="4"><div id="DIVPROJ_<%=rsQry("proj_id")%>" style="display:none;"><%=enumLOADING%></div></td></tr><tr><td colspan="5" background="images/bg_form_lightbluedark_line.gif"><img src="images/h_trsp_dot.gif" width="1" height="1"></td></tr><%OraDatabase.Parameters.Remove "PROJ_ID"rsTemp.Close()Set rsTemp = NothingrsQry.MoveNextWendrsQry.Close()Set rsQry = Nothing%></table></td></tr></table><!-- DASH BOARD END ----------------------------------------------------></td><td width="1%"><img src="images/h_trsp_dot.gif" width="15" height="10"></td><td background="images/bg_action_norm.gif" width="1%"><img src="images/h_trsp_dot.gif" width="5" height="10"></td></tr></table></td></tr></table></td><td width="100%"> </td></tr><tr><td valign="bottom" align="center" background="images/bg_home_orange.gif"><img src="images/img_gear.gif" width="107" height="107" vspace="20" hspace="30"></td><td> </td></tr></table><!-- FOOTER --><!--#include file="_footer.asp"--></body></html>