Subversion Repositories DevTools

Rev

Rev 4183 | Rev 4236 | Go to most recent revision | 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_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 SQLstr
Dim parIStates
'------------ Constants Declaration -----------
Const rspMax = 15   ' maximum number of records displayed
Const LENUM_ALL = "ALL"
'------------ Variable Init -------------------
parPv_id = Request("pv_id")
parRtag_id = Request("rtag_id")
rspPage = Request("rpg")
parFRiss_id = Request("FRiss_id")
parFRiss_num = Request("FRiss_num")
parIStates = Request("istates")
parFRpkey = Request("FRpkey")

Set rsCQ = Server.CreateObject("ADODB.Recordset")

imported = FALSE
'-- CONDITIONS --------------------------------
If rspPage = "" Then rspPage = 1
if InStr(1, Request("btn"), "Find",1) 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

'----------------------------------------------
'Response.write "btn="& Request("btn") & "rspPage=" &rspPage&"<br>"
'Response.write "parPackage="& parPackage &", parProject="& parProject &", parProduct="& parProduct &", parSkipOpen="& parSkipOpen &"<br>"
'Response.write "parPv_id="& parPv_id &", parRtag_id="& parRtag_id &", rspPage="& rspPage &", parFRiss_id="& parFRiss_id &", parFRiss_num="& parFRiss_num
'Response.write "parIStates="& parIStates &", parSkipOpen="& parSkipOpen
%>
<%
'------------------------------------------------------------------------------------------------------------------------------------
Function Get_Issues ( NNiss_num, NNrecordCount, OOrsCQ, apkey)
   Dim SQLstr, issARR, iss_num, col_name, Title

      SQLstr = _
      "SELECT project.pkey as project, I.issuenum AS iss_num, I.summary as 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.issuenum"
      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

    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 Import_Issues ( NNpv_id, NNiss_id_list )
   Dim issArr , iss_id
   If NNiss_id_list = "" Then Exit Sub

   issArr = Split ( NNiss_id_list, ",")
   'Response.Write("Import_Issues" & NNiss_id_list)

   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 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_id )
   imported = TRUE
   Call OpenInParentWindow ("fixed_issues.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id)
End If
%>
<%
'-------------- Main Line ---------------

retVal = Get_Issues ( 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%" height="100%" border="0" cellspacing="0" cellpadding="2">
    <!-- Form Body -->
    <tr height="1%">
      <td nowrap class="wform_ttl" background="images/bg_admin_dark.gif">
        <table 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, or a list</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>
      </tr>
    <!-- Find Button -->
    <tr height="1%">
        <td background="images/bg_admin_dark.gif">
        <table width="100%" 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>
    <!-- Import Close Button -->
    <tr height="1%">
        <td background="images/lbox_bg_blue.gif" >
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
            <td align="right">
            <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>
        </table>
        </tr>
    <!-- Post Import Message Area -->
    <tr height="1%">
        <td>
            <%If imported Then%>
                <%Call DisplayInfo ( "ISSUES_IMPORTED", "300" )%>
            <%End If%>
        </td>
        </tr>
    <!-- Table of issues wrapper -->
    <tr height="1%">
        <td>
            <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))
                           dim jiraIssue, jiraText
                           jiraIssue = rsCQ("project") & "-" & rsCQ("iss_num")
                           jiraText = jiraIssue
                   %>
                <tr>
                    <td><input type="checkbox" name="FRiss_id" value='<%=jiraIssue%>'></td>
                    <td nowrap class="form_item">
                    <%If parFRiss_num <> LENUM_ALL and parFRpkey = LENUM_ALL Then
                        jiraText = Highlight_Substring( jiraIssue, parFRiss_num )
                    End If%>
                    <a href="<%=JIRA_URL%>/browse/<%=jiraIssue%>" target="_blank"><%=jiraText%></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>
                <!-- Number of issues found -->
                    <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>
            </table>
        <!-- Next and Previous Buttons -->
        <tr height="90%" valign="bottom">
            <td>
            <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>
            </td>
            </tr>
        <!-- Bottom Line -->
        <tr>
            <td>
                <img src="images/lbox_bg_blue.gif" width="100%" height="5">
            </td>
        </tr>
    </table>
    <input name="rpg" type="hidden" value="<%=rspPage%>">
    <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"-->