Rev 1338 | Blame | Compare with Previous | 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 parFRpkeyDim 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 parCategMainDim parCategMinorDim parIStatesDim parTitleDim oIStatesDim checked'------------ Constants Declaration -----------Const rspMax = 15 ' 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")parFRpkey = Request("FRpkey")Set rsCQ = Server.CreateObject("ADODB.Recordset")imported = FALSE'-- CONDITIONS --------------------------------If rspPage = "" Then rspPage = 1If ( Request("btn") = "Filter" ) OR ( Request("btn") = "Find" ) Then rspPage = 1If (parFRiss_num = "") Then parFRiss_num = LENUM_ALLIf (parFRpkey = "") ThenparFRpkey = GetDefaultProjectKey(Request("rtag_id"))if parFRpkey="" OR IsNull(parFRpkey) Then parFRpkey = LENUM_ALLEnd IfIf (parTitle = "") Then parTitle = LCONST_STAR ' Default' 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, apkey)Dim SQLstr, issARR, iss_num, col_name, TitleSQLstr = _"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 "If ( apkey <> LENUM_ALL ) ThenSQLstr = SQLstr & "AND project.pkey='"& apkey &"' "End IfSQLstr = SQLstr & "AND I.issuestatus = ISS.ID "'-- Keyword search --If ( NNiss_num <> LENUM_ALL ) ThenissARR = Split( Replace( NNiss_num, " ", ""), "," )col_name = "I.pkey"SQLstr = 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 --- MAYBE MORE SPEED HERE?!??!NNrecordCount = Get_Record_Count( SQLstr )DIM objConnection'ADDED BY RICHO 6th August 2012 - Increase SpeedSet objConnection = Server.CreateObject ("ADODB.Connection")objConnection.Open JIRA_connOn Error Resume Next'Response.Write(SQLstr)OOrsCQ.Open SQLstr, objConnection'***********************************************'OOrsCQ.ActiveConnection = JIRA_conn'OOrsCQ.Source = SQLstr'OOrsCQ.CursorType = 0'OOrsCQ.CursorLocation = 2'OOrsCQ.LockType = 3'On Error Resume Next'OOrsCQ.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 "rsTemp.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'------------------------------------------------------------------------------------------------------------------------------------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'------------------------------------------------------------------------------------------------------------------------------------Function GetDefaultProjectKey(artag_id)Dim rsProjIdSet rsProjId = OraDatabase.DbCreateDynaset("SELECT PRJ.JIRA_KEY FROM RELEASE_TAGS RLT, PROJECTS PRJ WHERE RLT.RTAG_ID ="& artag_id &" AND RLT.PROJ_ID = PRJ.PROJ_ID", cint(0))GetDefaultProjectKey = rsProjId("jira_key")Set rsProjId = NothingEnd Function'------------------------------------------------------------------------------------------------------------------------------------%><%'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, parFRpkey)' 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">Project Key</td><td nowrap><input name="FRpkey" type="text" class="form_item" id="FRpkey" value="<%=parFRpkey%>" size="30" > <span class="form_wtxt_link">Example: ALL, SLSCM </span></td></tr><tr><td align="left" class="wform_ttl">Database</td><td><span class="form_item"><%=JIRA_DATABASE%>: <%=JIRA_URL%></span></td></tr></table><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="<%=JIRA_URL%>/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; 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; 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"-->