Subversion Repositories DevTools

Rev

Rev 1338 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@LANGUAGE="VBSCRIPT"%>
<%
Option explicit
Response.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 Login
Call 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_id
Dim parFRiss_db
Dim parFRiss_id
Dim parFRiss_num
Dim parFRpkey
Dim rsCQ
Dim rspPage      ' current page number for multiple page results
Dim rspTotal   ' total number of records
Dim rspCount   ' Record counter
Dim rspTotalPages   ' Total number of pages required to display results
Dim imported
Dim retVal
Dim rsCQTemp
Dim SQLstr
Dim parPackage
Dim parProject
Dim parProduct
Dim parSkipOpen
Dim disabled
Dim parCategMain
Dim parCategMinor
Dim parIStates
Dim parTitle
Dim oIStates
Dim checked
'------------ Constants Declaration -----------
Const rspMax = 15   ' maximum number of records displayed
Const 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 = 1
If ( Request("btn") = "Filter" )  OR ( Request("btn") = "Find" ) Then rspPage = 1
If (parFRiss_num = "") Then parFRiss_num = LENUM_ALL

If (parFRpkey = "") Then
  parFRpkey = GetDefaultProjectKey(Request("rtag_id"))
  if parFRpkey="" OR IsNull(parFRpkey) Then parFRpkey = LENUM_ALL
End If

If (parTitle = "") Then parTitle = LCONST_STAR  ' Default

' Get DEVI issue states checked
Set 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, stateId
   Set IStates = CreateObject("Scripting.Dictionary")

   If parIStates = "" Then
      IStates.Item ("ALL") = "checked"
   Else

      aStates = Split( Replace( parIStates, " ", "" ), ",")

      For Each stateId In aStates
         IStates.Item (CStr(stateId)) = "checked"
      Next


   End If

   Set GetIStates = IStates

End Function

'------------------------------------------------------------------------------------------------------------------------------------
Function Get_Issues ( NNiss_db, NNiss_num, NNrecordCount, OOrsCQ, apkey)
   Dim SQLstr, issARR, iss_num, col_name, Title

      SQLstr = _
      "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 ) Then
         SQLstr = SQLstr & "AND project.pkey='"& apkey &"' "
      End If
      SQLstr = SQLstr & "AND I.issuestatus = ISS.ID "

   '-- Keyword search --
   If ( NNiss_num <> LENUM_ALL ) Then
      issARR = Split( Replace( NNiss_num, " ", ""), "," )

      col_name = "I.pkey"
      SQLstr = SQLstr & " AND ( "
      For Each iss_num IN issARR
         SQLstr = SQLstr &" ("& col_name &" LIKE '%"& iss_num &"%') OR"
      Next

      SQLstr = 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 Speed
        Set objConnection = Server.CreateObject ("ADODB.Connection")
        objConnection.Open JIRA_conn
   
        On 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.Number

End Function
'------------------------------------------------------------------------------------------------------------------------------------
Function Get_Record_Count ( SSsql )
   Dim rsTemp
   Set 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 = 0
   rsTemp.CursorLocation = 2
   rsTemp.LockType = 3
   rsTemp.Open()

   If (NOT rsTemp.BOF) AND (NOT rsTemp.EOF) Then
      Get_Record_Count = rsTemp("record_count")
   Else
      Get_Record_Count = 0
   End If

   rsTemp.Close
   Set rsTemp = nothing
End Function
'------------------------------------------------------------------------------------------------------------------------------------
Sub Get_CQ_Issues_States ( sIssIdList, nIssDB, outObjCQissState )
   Dim rsTemp, SQLstr
   Set rsTemp = Server.CreateObject("ADODB.Recordset")
   rsTemp.ActiveConnection = JIRA_conn

   SQLstr = _
   "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 = SQLstr
   rsTemp.CursorType = 0
   rsTemp.CursorLocation = 2
   rsTemp.LockType = 3
   rsTemp.Open()



   While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
      outObjCQissState.Add CStr(rsTemp("iss_num")), CStr(rsTemp("state"))
      rsTemp.MoveNext
   WEnd

   rsTemp.Close
   Set rsTemp = nothing
End Sub
'------------------------------------------------------------------------------------------------------------------------------------
Sub Import_Issues ( NNpv_id, NNiss_db, NNiss_id_list )
   Dim issArr, iss_id, oCQissState, iss_num, iss_state, iss_state_human_readable
   If NNiss_id_list = "" Then Exit Sub
   Set 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 Next

   For Each iss_id In issArr

      If Err.Number = 0 Then
         OraDatabase.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 If

         If Err.Number = 0 Then
            OraDatabase.ExecuteSQL _
               "BEGIN  Log_Action ( "& NNpv_id &", 'jira_issue_added', "& objAccessControl.UserId &", 'Issue number: "& LTrim(iss_id) &"' );  END;"
         End If

      End If
   Next

   objEH.CatchORA ( OraSession )
End Sub
'------------------------------------------------------------------------------------------------------------------------------------
Function GetDefaultProjectKey(artag_id)
   Dim rsProjId
   Set 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 = Nothing
End Function
'------------------------------------------------------------------------------------------------------------------------------------
%>
<%
'Process submition
If CBool(Request("action")) AND (Request("btn") = "Import")  AND objAccessControl.UserLogedIn Then
   Call Import_Issues ( parPv_id, parFRiss_db, parFRiss_id )
   imported = TRUE
   Call 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 required
rspTotalPages = rspTotal \ rspMax
If (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&nbsp;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&nbsp;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">&nbsp;</td>
            <td width="100%"><input type="submit" name="btn" value="Find &raquo;" class="form_btn_comp"></td>
          </tr>
        </table></td>
    </tr>

    <tr>
      <td background="images/lbox_bg_blue.gif" width="1%" height="1%">&nbsp;</td>
      <td background="images/lbox_bg_blue.gif" nowrap width="50%" class="wform_ttl">&nbsp;</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%">&nbsp;</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">&nbsp;</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 = 0
         If (NOT rsCQ.BOF) AND (NOT rsCQ.EOF) Then
           rsCQ.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 + 1
              rsCQ.MoveNext
           WEnd
           rsCQ.Close
           Set rsCQ = nothing%>
        <%End If%>
          <tr>
            <td background="images/bg_form_lightbluedark.gif">&nbsp;</td>
            <td colspan="3" nowrap background="images/bg_form_lightbluedark.gif" class="form_step">
            <%
            If rspTotal > rspMax Then
               If CInt(rspPage) = CInt(rspTotalPages) Then
                  Response.write "Found "& rspTotal &" records, showing "& (rspMax * rspPage) - rspMax + 1 &" - "& rspTotal
               Else
                  Response.write "Found "& rspTotal &" records, showing "& (rspMax * rspPage) - rspMax + 1 &" - "& (rspCount * rspPage)
               End If
            Else
               Response.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">&lt;previous</a><%End If%>&nbsp;
              <%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 &gt;</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"-->