Subversion Repositories DevTools

Rev

Rev 119 | Blame | 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 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 IsOptionUsed
Dim parCategMain
Dim parCategMinor
Dim parIStates
Dim parTitle
Dim oIStates
Dim checked
'------------ Constants Declaration -----------
Const rspMax = 100   ' 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")

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

imported = FALSE
IsOptionUsed = 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 (parTitle = "") Then parTitle = LCONST_STAR  ' Default

If parFRiss_db = "" Then parFRiss_db = enumCLEARQUEST_DEVI_ID      ' Default

If CInt(parFRiss_db) = enumCLEARQUEST_DEVI_ID Then
   If (parPackage <> "") OR  (parProject <> "")  OR  (parProduct <> "") OR (parTitle <> LCONST_STAR) Then IsOptionUsed = TRUE
Else
   If (parCategMain <> "") OR  (parCategMinor <> "") Then IsOptionUsed = TRUE
End If

' 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 )
   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 DEVI_PROD.admin.software_issue si,"&_
   '   "        DEVI_PROD.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 TDSE_2002.admin.request si, "&_
   '   "        TDSE_2002.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 VT5DM.admin.software_issue si,"&_
   '   "        VT5DM.admin.STATEDEF sd"&_
   '   "  WHERE si.STATE = sd.ID "

      'SQLstr = "SELECT * FROM JIRA.jirauser.jiraissue"

   Dim rsProjId, pkey
   Set rsProjId = OraDatabase.DbCreateDynaset("SELECT PROJ_ID FROM RELEASE_TAGS WHERE RTAG_ID ="& Request("rtag_id") &"", cint(0))
   If rsProjId("proj_id") = 202 Then
      pkey = "SLSIP"
   Elseif rsProjId("proj_id") = 42 Then
      pkey = "SFRM"
   End If

      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 "&_
      "AND project.pkey='"& pkey &"' "&_
      "AND I.issuestatus = ISS.ID "


   'End If


   '-- User filter --
   If CInt(NNiss_db) = enumCLEARQUEST_DEVI_ID Then
      ' Add package Filter
      If (parPackage <> "") Then
         SQLstr = SQLstr &" AND  si.package_ref = '"& Replace( parPackage, "'","''" ) &"'"
      End If

      ' Add project Filter
      If (parProject <> "") Then
         SQLstr = SQLstr &" AND  si.project = '"& Replace( parProject, "'","''" ) &"'"
      End If

      ' Add product Filter
      If (parProduct <> "") Then
         SQLstr = SQLstr &" AND  si.product = '"& Replace( parProduct, "'","''" ) &"'"
      End If

      ' Add Issue State Filter
      If (parIStates <> "") Then
         SQLstr = SQLstr &" AND  sd.id IN ("& parIStates &")"
      End If

      ' Add Title keyword search
      If ( parTitle <> LCONST_STAR ) Then
         Title = Replace( parTitle, "'", "''" )
         Title = Replace( Title, "*", "%" )
         SQLstr = SQLstr &" AND  si.headline LIKE ( '"& Title &"' )"
      End If

   ElseIf ( CInt(NNiss_db) = enumCLEARQUEST_TDSE_ID) Then

      ' Add project Filter
      If (parProject <> "") Then
         SQLstr = SQLstr &" AND  si.category_main = '"& Replace( parCategMain, "'","''" ) &"'"
      End If

      ' Add product Filter
      If (parProduct <> "") Then
         SQLstr = SQLstr &" AND  si.category_minor = '"& Replace( parCategMinor, "'","''" ) &"'"
      End If

   End If


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

      'If ( CInt(NNiss_db) = enumCLEARQUEST_TDSE_ID ) Then
      '   col_name = "job_number"
      'Else
         col_name = "I.pkey"
      'End If
      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 ---
   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 If



   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 "

   'If CInt(nIssDB) = enumCLEARQUEST_DEVI_ID Then
   '   SQLstr = _
   '   " SELECT si.dbid, sd.name AS state_name, si.state AS state_id"&_
   '   "  FROM DEVI_PROD.admin.software_issue si,"&_
   '   "       DEVI_PROD.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 TDSE_2002.admin.request si,"&_
   '   "       TDSE_2002.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 VT5DM.admin.software_issue si,"&_
   '   "       VT5DM.admin.statedef sd"&_
   '   " WHERE si.STATE = sd.ID"&_
   '   "   AND si.dbid IN ("& sIssIdList &")"
   '

   'End If

   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
'------------------------------------------------------------------------------------------------------------------------------------
Function Is_Pkg_Official ( nPv_id )
   Dim rsTemp, Query_String
   Query_String = _
   " SELECT dlocked"&_
   "  FROM package_versions "&_
   " WHERE pv_id = "& nPv_id
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
   If rsTemp("dlocked") = "Y" Then
      Is_Pkg_Official = TRUE
   Else
      Is_Pkg_Official = FALSE
   End If
   rsTemp.Close
   Set rsTemp = nothing
End Function
'------------------------------------------------------------------------------------------------------------------------------------
Function Set_Issue_State ( sCQState )
   If parSkipOpen <> "" Then
      Set_Issue_State = enumISSUES_STATE_FIXED

   Else
      Set_Issue_State = enumISSUES_STATE_IMPORTED

   End If
End Function
'------------------------------------------------------------------------------------------------------------------------------------
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
'------------------------------------------------------------------------------------------------------------------------------------
%>
<%
'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 )


' 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">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">&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="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 + 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; alert(importform.rpg.value); 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; alert(importform.rpg.value); 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"-->