Rev 129 | Blame | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%Option explicitResponse.Expires = 0 ' always load the page, dont store%><%'=====================================================' Import Issues'=====================================================%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/_popup_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 parFRiss_dbDim parFRiss_idDim parFRiss_numDim rsCQDim rspPage ' current page number for multiple page resultsDim rspTotal ' total number of recordsDim rspCount ' Record counterDim rspTotalPages ' Total number of pages required to display resultsDim importedDim retValDim rsCQTempDim SQLstrDim parPackageDim parProjectDim parProductDim parSkipOpenDim disabledDim IsOptionUsedDim parCategMainDim parCategMinorDim parIStatesDim parTitleDim oIStatesDim checked'------------ Constants Declaration -----------Const rspMax = 100 ' maximum number of records displayedConst LENUM_ALL = "ALL"Const LCONST_STAR = "*"'------------ Variable Init -------------------parPv_id = Request("pv_id")parRtag_id = Request("rtag_id")rspPage = Request("rpg")parFRiss_db = Request("FRiss_db")parFRiss_id = Request("FRiss_id")parFRiss_num = Request("FRiss_num")parPackage = Request("package")parProject = Request("project")parProduct = Request("product")parCategMain = Request("categmain")parCategMinor = Request("categminor")parSkipOpen = Request("skip_open")parIStates = Request("istates")parTitle = Request("title")Set rsCQ = Server.CreateObject("ADODB.Recordset")imported = FALSEIsOptionUsed = FALSE'-- CONDITIONS --------------------------------If rspPage = "" Then rspPage = 1If ( Request("btn") = "Filter" ) OR ( Request("btn") = "Find" ) Then rspPage = 1If (parFRiss_num = "") Then parFRiss_num = LENUM_ALLIf (parTitle = "") Then parTitle = LCONST_STAR ' DefaultIf parFRiss_db = "" Then parFRiss_db = enumCLEARQUEST_DEVI_ID ' DefaultIf CInt(parFRiss_db) = enumCLEARQUEST_DEVI_ID ThenIf (parPackage <> "") OR (parProject <> "") OR (parProduct <> "") OR (parTitle <> LCONST_STAR) Then IsOptionUsed = TRUEElseIf (parCategMain <> "") OR (parCategMinor <> "") Then IsOptionUsed = TRUEEnd If' Get DEVI issue states checkedSet oIStates = GetIStates()'----------------------------------------------'Response.write "parPackage="& parPackage &", parProject="& parProject &", parProduct="& parProduct &", parSkipOpen="& parSkipOpen &"<br>"'Response.write "parPv_id="& parPv_id &", parRtag_id="& parRtag_id &", rspPage="& rspPage &", parFRiss_db="& parFRiss_db &", parFRiss_id="& parFRiss_id &", parFRiss_num="& parFRiss_num'Response.write "parIStates="& parIStates &", parSkipOpen="& parSkipOpen%><%'------------------------------------------------------------------------------------------------------------------------------------Function GetIStates()Dim IStates, aStates, stateIdSet IStates = CreateObject("Scripting.Dictionary")If parIStates = "" ThenIStates.Item ("ALL") = "checked"ElseaStates = Split( Replace( parIStates, " ", "" ), ",")For Each stateId In aStatesIStates.Item (CStr(stateId)) = "checked"NextEnd IfSet GetIStates = IStatesEnd Function'------------------------------------------------------------------------------------------------------------------------------------Function Get_Issues ( NNiss_db, NNiss_num, NNrecordCount, OOrsCQ )Dim SQLstr, issARR, iss_num, col_name, Title'If CInt(NNiss_db) = enumCLEARQUEST_DEVI_ID Then' SQLstr = _' " SELECT si.dbid AS iss_id, si.new_num AS iss_num, si.headline AS summary, sd.NAME AS state"&_' " FROM CQ_DEVI.admin.software_issue si,"&_' " CQ_DEVI.admin.STATEDEF sd"&_' " WHERE si.STATE = sd.ID "'ElseIf ( CInt(NNiss_db) = enumCLEARQUEST_TDSE_ID) Then' SQLstr = _' " SELECT si.dbid AS iss_id, si.job_number AS iss_num, si.problem_summary AS summary, sd.NAME AS state"&_' " FROM CQ_TDSE.admin.request si, "&_' " CQ_TDSE.admin.STATEDEF sd"&_' " WHERE si.STATE = sd.ID "'ElseIf ( CInt(NNiss_db) = enumCLEARQUEST_VT5DM_ID) Then' SQLstr = _' " SELECT si.dbid AS iss_id, si.new_num AS iss_num, si.headline AS summary, sd.NAME AS state"&_' " FROM CQ_VT5DM..admin.software_issue si,"&_' " CQ_VT5DM..admin.STATEDEF sd"&_' " WHERE si.STATE = sd.ID "'SQLstr = "SELECT * FROM JIRA.jirauser.jiraissue"Dim rsProjId, pkeySet rsProjId = OraDatabase.DbCreateDynaset("SELECT PROJ_ID FROM RELEASE_TAGS WHERE RTAG_ID ="& Request("rtag_id") &"", cint(0))If rsProjId("proj_id") = 202 Thenpkey = "SLSIP"Elseif rsProjId("proj_id") = 42 Thenpkey = "SFRM"End IfSQLstr = _"SELECT project.pkey as project, I.pkey AS iss_num, I.summary, ISS.pname AS state "&_"FROM jiraissue I, project, issuestatus ISS "&_"WHERE I.project=project.ID "&_"AND project.pkey='"& pkey &"' "&_"AND I.issuestatus = ISS.ID "'End If'-- User filter --If CInt(NNiss_db) = enumCLEARQUEST_DEVI_ID Then' Add package FilterIf (parPackage <> "") ThenSQLstr = SQLstr &" AND si.package_ref = '"& Replace( parPackage, "'","''" ) &"'"End If' Add project FilterIf (parProject <> "") ThenSQLstr = SQLstr &" AND si.project = '"& Replace( parProject, "'","''" ) &"'"End If' Add product FilterIf (parProduct <> "") ThenSQLstr = SQLstr &" AND si.product = '"& Replace( parProduct, "'","''" ) &"'"End If' Add Issue State FilterIf (parIStates <> "") ThenSQLstr = SQLstr &" AND sd.id IN ("& parIStates &")"End If' Add Title keyword searchIf ( parTitle <> LCONST_STAR ) ThenTitle = Replace( parTitle, "'", "''" )Title = Replace( Title, "*", "%" )SQLstr = SQLstr &" AND si.headline LIKE ( '"& Title &"' )"End IfElseIf ( CInt(NNiss_db) = enumCLEARQUEST_TDSE_ID) Then' Add project FilterIf (parProject <> "") ThenSQLstr = SQLstr &" AND si.category_main = '"& Replace( parCategMain, "'","''" ) &"'"End If' Add product FilterIf (parProduct <> "") ThenSQLstr = SQLstr &" AND si.category_minor = '"& Replace( parCategMinor, "'","''" ) &"'"End IfEnd If'-- Keyword search --If ( NNiss_num <> LENUM_ALL ) ThenissARR = Split( Replace( NNiss_num, " ", ""), "," )'If ( CInt(NNiss_db) = enumCLEARQUEST_TDSE_ID ) Then' col_name = "job_number"'Elsecol_name = "I.pkey"'End IfSQLstr = SQLstr & " AND ( "For Each iss_num IN issARRSQLstr = SQLstr &" ("& col_name &" LIKE '%"& iss_num &"%') OR"NextSQLstr = Left( SQLstr, Len(SQLstr) - 2 ) ' Remove last 'OR'SQLstr = SQLstr & " ) "End If'-- Get record count ---NNrecordCount = Get_Record_Count( SQLstr )'-- Order by --'If CInt(NNiss_db) = enumCLEARQUEST_DEVI_ID Then' SQLstr = SQLstr &" ORDER BY si.submit_date DESC"'ElseIf ( CInt(NNiss_db) = enumCLEARQUEST_TDSE_ID) Then' SQLstr = SQLstr &" ORDER BY si.when_reported DESC"'End IfOOrsCQ.ActiveConnection = JIRA_connOOrsCQ.Source = SQLstrOOrsCQ.CursorType = 0OOrsCQ.CursorLocation = 2OOrsCQ.LockType = 3On Error Resume NextOOrsCQ.Open()Get_Issues = Err.NumberEnd Function'------------------------------------------------------------------------------------------------------------------------------------Function Get_Record_Count ( SSsql )Dim rsTempSet rsTemp = Server.CreateObject("ADODB.Recordset")rsTemp.ActiveConnection = JIRA_conn'Response.Write(rsTemp.ActiveConnection)rsTemp.Source = _" SELECT COUNT(*) as record_count "&_" FROM ("& SSsql &") ct"rsTemp.CursorType = 0rsTemp.CursorLocation = 2rsTemp.LockType = 3rsTemp.Open()If (NOT rsTemp.BOF) AND (NOT rsTemp.EOF) ThenGet_Record_Count = rsTemp("record_count")ElseGet_Record_Count = 0End IfrsTemp.CloseSet rsTemp = nothingEnd Function'------------------------------------------------------------------------------------------------------------------------------------Sub Get_CQ_Issues_States ( sIssIdList, nIssDB, outObjCQissState )Dim rsTemp, SQLstrSet rsTemp = Server.CreateObject("ADODB.Recordset")rsTemp.ActiveConnection = JIRA_connSQLstr = _"SELECT I.pkey AS iss_num, I.summary, ISS.pname AS state "&_" FROM jiraissue I, issuestatus ISS "&_" WHERE I.pkey IN ('"& sIssIdList &"') "&_"AND I.issuestatus = ISS.ID "'If CInt(nIssDB) = enumCLEARQUEST_DEVI_ID Then' SQLstr = _' " SELECT si.dbid, sd.name AS state_name, si.state AS state_id"&_' " FROM CQ_DEVI.admin.software_issue si,"&_' " CQ_DEVI.admin.statedef sd"&_' " WHERE si.STATE = sd.ID"&_' " AND si.dbid IN ("& sIssIdList &")"'ElseIf CInt(nIssDB) = enumCLEARQUEST_TDSE_ID Then' SQLstr = _' " SELECT si.dbid, sd.name AS state_name, si.state AS state_id"&_' " FROM CQ_TDSE.admin.request si,"&_' " CQ_TDSE.admin.statedef sd"&_' " WHERE si.STATE = sd.ID"&_' " AND si.dbid IN ("& sIssIdList &")"'ElseIf CInt(nIssDB) = enumCLEARQUEST_VT5DM_ID Then' SQLstr = _' " SELECT si.dbid, sd.name AS state_name, si.state AS state_id"&_' " FROM CQ_VT5DM..admin.software_issue si,"&_' " CQ_VT5DM..admin.statedef sd"&_' " WHERE si.STATE = sd.ID"&_' " AND si.dbid IN ("& sIssIdList &")"''End IfrsTemp.Source = SQLstrrsTemp.CursorType = 0rsTemp.CursorLocation = 2rsTemp.LockType = 3rsTemp.Open()While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)outObjCQissState.Add CStr(rsTemp("iss_num")), CStr(rsTemp("state"))rsTemp.MoveNextWEndrsTemp.CloseSet rsTemp = nothingEnd Sub'------------------------------------------------------------------------------------------------------------------------------------Function Is_Pkg_Official ( nPv_id )Dim rsTemp, Query_StringQuery_String = _" SELECT dlocked"&_" FROM package_versions "&_" WHERE pv_id = "& nPv_idSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If rsTemp("dlocked") = "Y" ThenIs_Pkg_Official = TRUEElseIs_Pkg_Official = FALSEEnd IfrsTemp.CloseSet rsTemp = nothingEnd Function'------------------------------------------------------------------------------------------------------------------------------------Function Set_Issue_State ( sCQState )If parSkipOpen <> "" ThenSet_Issue_State = enumISSUES_STATE_FIXEDElseSet_Issue_State = enumISSUES_STATE_IMPORTEDEnd IfEnd Function'------------------------------------------------------------------------------------------------------------------------------------Sub Import_Issues ( NNpv_id, NNiss_db, NNiss_id_list )Dim issArr, iss_id, oCQissState, iss_num, iss_state, iss_state_human_readableIf NNiss_id_list = "" Then Exit SubSet oCQissState = CreateObject("Scripting.Dictionary")issArr = Split ( NNiss_id_list, ",")'Response.Write(NNiss_id_list)Call Get_CQ_Issues_States ( NNiss_id_list, NNiss_db, oCQissState )objEH.TryORA ( OraSession )On Error Resume NextFor Each iss_id In issArrIf Err.Number = 0 ThenOraDatabase.ExecuteSQL _" INSERT INTO JIRA_ISSUES ( pv_id, iss_key, date_time_stamp )"&_" VALUES ( "& NNpv_id &", '"& LTrim(iss_id) &"', "& ORA_SYSDATETIME &")"'If iss_state = 0 Then' iss_state_human_readable = "No"'Else' iss_state_human_readable = "Yes"'End IfIf Err.Number = 0 ThenOraDatabase.ExecuteSQL _"BEGIN Log_Action ( "& NNpv_id &", 'jira_issue_added', "& objAccessControl.UserId &", 'Issue number: "& LTrim(iss_id) &"' ); END;"End IfEnd IfNextobjEH.CatchORA ( OraSession )End Sub'------------------------------------------------------------------------------------------------------------------------------------%><%'Process submitionIf CBool(Request("action")) AND (Request("btn") = "Import") AND objAccessControl.UserLogedIn ThenCall Import_Issues ( parPv_id, parFRiss_db, parFRiss_id )imported = TRUECall OpenInParentWindow ("fixed_issues.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id)End If%><%'-------------- Main Line ---------------retVal = Get_Issues ( parFRiss_db, parFRiss_num, rspTotal, rsCQ )' total number of pages requiredrspTotalPages = rspTotal \ rspMaxIf (rspTotal Mod rspMax) > 0 Then rspTotalPages = rspTotalPages + 1%><html><head><title>Release Manager</title><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></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="self.focus();"><%If retVal = 0 Then%><form name="importform" method="post" action="<%=scriptName%>"><table width="100%" border="0" cellspacing="0" cellpadding="2" height="100%"><tr><td height="1%" background="images/bg_admin_dark.gif"><img src="images/spacer.gif" width="10" height="40"></td><td nowrap colspan="3" class="wform_ttl" background="images/bg_admin_dark.gif"><table width="100" border="0" cellspacing="5" cellpadding="0"><tr><td align="left" class="wform_ttl">Issue Number</td><td nowrap><input name="FRiss_num" type="text" class="form_item" id="FRiss_num" value="<%=parFRiss_num%>" size="30" > <span class="form_wtxt_link">Example: ALL, 123, DEVI-123 </span></td></tr><tr><td align="left" class="wform_ttl">Database</td><td>JIRA</td></tr></table><DIV id="DIVOPTIONS" <%If IsOptionUsed Then%>style="display:block;"<%Else%>style="display:none;"<%End If%>><DIV id="DIVOPTIONSDEVI" <%If CInt(parFRiss_db) = enumCLEARQUEST_DEVI_ID Then%>style="display:block;"<%Else%>style="display:none;"<%End If%>> </DIV><DIV id="DIVOPTIONSTDSE" <%If CInt(parFRiss_db) = enumCLEARQUEST_TDSE_ID Then%>style="display:block;"<%Else%>style="display:none;"<%End If%>> </DIV></DIV><table width="400" border="0" cellspacing="5" cellpadding="0"><tr background="images/lbox_bg_blue.gif"><td colspan="2"><img src="images/spacer.gif" width="1" height="1"></td></tr><tr><td width="1"> </td><td width="100%"><input type="submit" name="btn" value="Find »" class="form_btn_comp"></td></tr></table></td></tr><tr><td background="images/lbox_bg_blue.gif" width="1%" height="1%"> </td><td background="images/lbox_bg_blue.gif" nowrap width="50%" class="wform_ttl"> </td><td background="images/lbox_bg_blue.gif" align="right" width="50%"><input type="submit" name="btn" value="Import" class="form_btn_comp"><input type="reset" name="btn" value="Close" class="form_btn_comp" onclick="self.close()"></td><td background="images/lbox_bg_blue.gif" align="right" width="1%" nowrap><img src="images/h_trsp_dot.gif" width="5" height="22"> </td></tr><tr><td height="100%" width="1%"> </td><td valign="top" nowrap colspan="3" class="wform_ttl" background="images/bg_form_lightgray.gif"><%If imported Then%><%Call DisplayInfo ( "ISSUES_IMPORTED", "300" )%><%End If%><table width="100%" border="0" cellspacing="1" cellpadding="2"><tr><td width="1%" background="images/bg_form_lightbluedark.gif"> </td><td width="1%" nowrap background="images/bg_form_lightbluedark.gif" class="form_field">Issue Key</td><td width="1%" nowrap background="images/bg_form_lightbluedark.gif" class="form_field">State</td><td width="100%" nowrap background="images/bg_form_lightbluedark.gif" class="form_field">Summary</td></tr><%rspCount = 0If (NOT rsCQ.BOF) AND (NOT rsCQ.EOF) ThenrsCQ.Move( rspMax * (rspPage - 1))%><%While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF) AND (rspCount < rspMax))%><tr><td><input type="checkbox" name="FRiss_id" value="<%=rsCQ("iss_num")%>"></td><td nowrap class="form_item"><%If parFRiss_num <> LENUM_ALL Then%><%=Highlight_Substring( rsCQ("iss_num"), parFRiss_num )%><%Else%><a href="http://auperajir01:8080/browse/<%=rsCQ("iss_num")%>" target="_blank"><%=rsCQ("iss_num")%><%End If%></a></td><td class="form_item"><%=rsCQ("state")%></td><td class="form_item"><%=rsCQ("summary")%></td></tr><%rspCount = rspCount + 1rsCQ.MoveNextWEndrsCQ.CloseSet rsCQ = nothing%><%End If%><tr><td background="images/bg_form_lightbluedark.gif"> </td><td colspan="3" nowrap background="images/bg_form_lightbluedark.gif" class="form_step"><%If rspTotal > rspMax ThenIf CInt(rspPage) = CInt(rspTotalPages) ThenResponse.write "Found "& rspTotal &" records, showing "& (rspMax * rspPage) - rspMax + 1 &" - "& rspTotalElseResponse.write "Found "& rspTotal &" records, showing "& (rspMax * rspPage) - rspMax + 1 &" - "& (rspCount * rspPage)End IfElseResponse.write "Found "& rspTotal &" records"End If%></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="2"><tr><td align="center"><%If CInt(rspPage) > 1 Then%><a href="javascript:;" onClick="importform.rpg.value = parseInt(importform.rpg.value) - 1; alert(importform.rpg.value); importform.submit();" class="txt_linked"><previous</a><%End If%> <%If CInt(rspPage) < CInt(rspTotalPages) Then%><a href="javascript:void(document.importform.submit())" onClick="importform.rpg.value = parseInt(importform.rpg.value) + 1; alert(importform.rpg.value); importform.btn.value='next';" class="txt_linked">next ></a><%End If%></td></tr></table><br></td></tr><tr><td width="1%" height="1%" background="images/lbox_bg_blue.gif"><img src="images/h_trsp_dot.gif" width="5" height="5"></td><td valign="top" nowrap colspan="3" class="wform_ttl" background="images/lbox_bg_blue.gif"></td></tr></table><input name="rpg" type="hidden" value="<%=rspPage%>"><input name="skip_open" type="hidden" value="<%=parSkipOpen%>"><input name="pv_id" type="hidden" value="<%=parPv_id%>"><input name="rtag_id" type="hidden" value="<%=parRtag_id%>"><input name="action" type="hidden" value="true"></form><%Else%><%=enumMSSQL_ERROR%><%End If%></body></html><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->