Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
Option explicit
129 ghuddy 4
Response.Expires = 0   ' always load the page, dont store
119 ghuddy 5
%>
6
<%
7
'=====================================================
129 ghuddy 8
'               Import Issues
119 ghuddy 9
'=====================================================
10
%>
11
<!--#include file="common/conf.asp"-->
12
<!--#include file="common/globals.asp"-->
13
<!--#include file="common/qstr.asp"-->
14
<!--#include file="common/common_subs.asp"-->
15
<!--#include file="common/common_dbedit.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/_popup_window_common.asp"-->
18
<%
19
' Set rfile parameter. This is a return page after Login
20
Call objPMod.StoreParameter ( "rfile", "fixed_issues.asp" )
21
'------------ ACCESS CONTROL ------------------
22
%>
23
<!--#include file="_access_control_login.asp"-->
24
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_project.asp"-->
26
<%
27
'------------ Variable Definition -------------
28
Dim parPv_id
29
Dim parFRiss_db
30
Dim parFRiss_id
31
Dim parFRiss_num
171 brianf 32
Dim parFRpkey
119 ghuddy 33
Dim rsCQ
129 ghuddy 34
Dim rspPage      ' current page number for multiple page results
35
Dim rspTotal   ' total number of records
36
Dim rspCount   ' Record counter
37
Dim rspTotalPages   ' Total number of pages required to display results
119 ghuddy 38
Dim imported
39
Dim retVal
40
Dim rsCQTemp
41
Dim SQLstr
42
Dim parPackage
43
Dim parProject
44
Dim parProduct
45
Dim parSkipOpen
46
Dim disabled
47
Dim parCategMain
48
Dim parCategMinor
49
Dim parIStates
50
Dim parTitle
51
Dim oIStates
52
Dim checked
53
'------------ Constants Declaration -----------
1338 dpurdie 54
Const rspMax = 15   ' maximum number of records displayed
119 ghuddy 55
Const LENUM_ALL = "ALL"
56
Const LCONST_STAR = "*"
57
'------------ Variable Init -------------------
58
parPv_id = Request("pv_id")
59
parRtag_id = Request("rtag_id")
60
rspPage = Request("rpg")
61
parFRiss_db = Request("FRiss_db")
62
parFRiss_id = Request("FRiss_id")
63
parFRiss_num = Request("FRiss_num")
64
parPackage = Request("package")
65
parProject = Request("project")
66
parProduct = Request("product")
67
parCategMain = Request("categmain")
68
parCategMinor = Request("categminor")
69
parSkipOpen = Request("skip_open")
70
parIStates = Request("istates")
71
parTitle = Request("title")
171 brianf 72
parFRpkey = Request("FRpkey")
119 ghuddy 73
 
74
Set rsCQ = Server.CreateObject("ADODB.Recordset")
75
 
76
imported = FALSE
77
'-- CONDITIONS --------------------------------
78
If rspPage = "" Then rspPage = 1
79
If ( Request("btn") = "Filter" )  OR ( Request("btn") = "Find" ) Then rspPage = 1
80
If (parFRiss_num = "") Then parFRiss_num = LENUM_ALL
171 brianf 81
 
82
If (parFRpkey = "") Then
83
  parFRpkey = GetDefaultProjectKey(Request("rtag_id"))
84
  if parFRpkey="" OR IsNull(parFRpkey) Then parFRpkey = LENUM_ALL
85
End If
86
 
119 ghuddy 87
If (parTitle = "") Then parTitle = LCONST_STAR  ' Default
88
 
89
' Get DEVI issue states checked
90
Set oIStates = GetIStates()
91
 
92
 
93
'----------------------------------------------
94
'Response.write "parPackage="& parPackage &", parProject="& parProject &", parProduct="& parProduct &", parSkipOpen="& parSkipOpen &"<br>"
95
'Response.write "parPv_id="& parPv_id &", parRtag_id="& parRtag_id &", rspPage="& rspPage &", parFRiss_db="& parFRiss_db &", parFRiss_id="& parFRiss_id &", parFRiss_num="& parFRiss_num
96
'Response.write "parIStates="& parIStates &", parSkipOpen="& parSkipOpen
97
%>
98
<%
99
'------------------------------------------------------------------------------------------------------------------------------------
100
Function GetIStates()
129 ghuddy 101
   Dim IStates, aStates, stateId
102
   Set IStates = CreateObject("Scripting.Dictionary")
103
 
104
   If parIStates = "" Then
105
      IStates.Item ("ALL") = "checked"
106
   Else
107
 
108
      aStates = Split( Replace( parIStates, " ", "" ), ",")
109
 
110
      For Each stateId In aStates
111
         IStates.Item (CStr(stateId)) = "checked"
112
      Next
113
 
114
 
115
   End If
116
 
117
   Set GetIStates = IStates
118
 
119 ghuddy 119
End Function
171 brianf 120
 
119 ghuddy 121
'------------------------------------------------------------------------------------------------------------------------------------
171 brianf 122
Function Get_Issues ( NNiss_db, NNiss_num, NNrecordCount, OOrsCQ, apkey)
129 ghuddy 123
   Dim SQLstr, issARR, iss_num, col_name, Title
119 ghuddy 124
 
129 ghuddy 125
      SQLstr = _
126
      "SELECT project.pkey as project, I.pkey AS iss_num, I.summary, ISS.pname AS state "&_
127
      "FROM jiraissue I, project, issuestatus ISS "&_
171 brianf 128
      "WHERE I.project=project.ID "
1338 dpurdie 129
 
130
 
171 brianf 131
      If ( apkey <> LENUM_ALL ) Then
132
         SQLstr = SQLstr & "AND project.pkey='"& apkey &"' "
133
      End If
134
      SQLstr = SQLstr & "AND I.issuestatus = ISS.ID "
129 ghuddy 135
 
136
   '-- Keyword search --
137
   If ( NNiss_num <> LENUM_ALL ) Then
138
      issARR = Split( Replace( NNiss_num, " ", ""), "," )
139
 
3974 dpurdie 140
      col_name = "I.pkey"
129 ghuddy 141
      SQLstr = SQLstr & " AND ( "
142
      For Each iss_num IN issARR
143
         SQLstr = SQLstr &" ("& col_name &" LIKE '%"& iss_num &"%') OR"
144
      Next
145
 
146
      SQLstr = Left( SQLstr, Len(SQLstr) - 2 )   ' Remove last 'OR'
147
 
148
      SQLstr = SQLstr & "     ) "
149
 
150
   End If
151
 
1338 dpurdie 152
   '-- Get record count ---  MAYBE MORE SPEED HERE?!??!
129 ghuddy 153
   NNrecordCount = Get_Record_Count( SQLstr )
154
 
1338 dpurdie 155
	DIM objConnection
156
 
157
	'ADDED BY RICHO 6th August 2012 - Increase Speed
158
	Set objConnection = Server.CreateObject ("ADODB.Connection")
159
	objConnection.Open JIRA_conn
160
 
161
	On Error Resume Next
3974 dpurdie 162
'Response.Write(SQLstr)
163
 
1338 dpurdie 164
	OOrsCQ.Open SQLstr, objConnection
165
	'***********************************************
166
 
167
   'OOrsCQ.ActiveConnection = JIRA_conn
168
   'OOrsCQ.Source = SQLstr
169
   'OOrsCQ.CursorType = 0
170
   'OOrsCQ.CursorLocation = 2
171
   'OOrsCQ.LockType = 3
172
   'On Error Resume Next
173
   'OOrsCQ.Open()
129 ghuddy 174
 
175
   Get_Issues = Err.Number
176
 
177
End Function
119 ghuddy 178
'------------------------------------------------------------------------------------------------------------------------------------
179
Function Get_Record_Count ( SSsql )
129 ghuddy 180
   Dim rsTemp
181
   Set rsTemp = Server.CreateObject("ADODB.Recordset")
182
   rsTemp.ActiveConnection = JIRA_conn
183
   'Response.Write(rsTemp.ActiveConnection)
119 ghuddy 184
 
129 ghuddy 185
   rsTemp.Source = _
186
   " SELECT COUNT(*) as record_count "&_
187
   "   FROM ("& SSsql &") ct"
188
 
189
   rsTemp.CursorType = 0
190
   rsTemp.CursorLocation = 2
191
   rsTemp.LockType = 3
192
   rsTemp.Open()
193
 
194
   If (NOT rsTemp.BOF) AND (NOT rsTemp.EOF) Then
195
      Get_Record_Count = rsTemp("record_count")
196
   Else
197
      Get_Record_Count = 0
198
   End If
199
 
200
   rsTemp.Close
201
   Set rsTemp = nothing
119 ghuddy 202
End Function
203
'------------------------------------------------------------------------------------------------------------------------------------
204
Sub Get_CQ_Issues_States ( sIssIdList, nIssDB, outObjCQissState )
129 ghuddy 205
   Dim rsTemp, SQLstr
206
   Set rsTemp = Server.CreateObject("ADODB.Recordset")
207
   rsTemp.ActiveConnection = JIRA_conn
119 ghuddy 208
 
129 ghuddy 209
   SQLstr = _
210
   "SELECT I.pkey AS iss_num, I.summary, ISS.pname AS state "&_
211
   " FROM jiraissue I, issuestatus ISS "&_
212
   " WHERE I.pkey IN ('"& sIssIdList &"') "&_
213
   "AND I.issuestatus = ISS.ID "
214
 
215
   rsTemp.Source = SQLstr
216
   rsTemp.CursorType = 0
217
   rsTemp.CursorLocation = 2
218
   rsTemp.LockType = 3
219
   rsTemp.Open()
220
 
221
 
222
 
223
   While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
224
      outObjCQissState.Add CStr(rsTemp("iss_num")), CStr(rsTemp("state"))
225
      rsTemp.MoveNext
226
   WEnd
227
 
228
   rsTemp.Close
229
   Set rsTemp = nothing
119 ghuddy 230
End Sub
231
'------------------------------------------------------------------------------------------------------------------------------------
232
Sub Import_Issues ( NNpv_id, NNiss_db, NNiss_id_list )
129 ghuddy 233
   Dim issArr, iss_id, oCQissState, iss_num, iss_state, iss_state_human_readable
234
   If NNiss_id_list = "" Then Exit Sub
235
   Set oCQissState = CreateObject("Scripting.Dictionary")
119 ghuddy 236
 
129 ghuddy 237
   issArr = Split ( NNiss_id_list, ",")
238
   'Response.Write(NNiss_id_list)
239
 
240
   Call Get_CQ_Issues_States ( NNiss_id_list, NNiss_db, oCQissState )
241
 
242
   objEH.TryORA ( OraSession )
243
   On Error Resume Next
244
 
245
   For Each iss_id In issArr
246
 
247
      If Err.Number = 0 Then
248
         OraDatabase.ExecuteSQL _
249
            " INSERT INTO JIRA_ISSUES ( pv_id, iss_key, date_time_stamp )"&_
250
            " VALUES ( "& NNpv_id &", '"& LTrim(iss_id) &"', "& ORA_SYSDATETIME &")"
251
 
252
         'If iss_state = 0 Then
253
         '   iss_state_human_readable = "No"
254
         'Else
255
         '   iss_state_human_readable = "Yes"
256
         'End If
257
 
258
         If Err.Number = 0 Then
259
            OraDatabase.ExecuteSQL _
260
               "BEGIN  Log_Action ( "& NNpv_id &", 'jira_issue_added', "& objAccessControl.UserId &", 'Issue number: "& LTrim(iss_id) &"' );  END;"
261
         End If
262
 
263
      End If
264
   Next
265
 
266
   objEH.CatchORA ( OraSession )
119 ghuddy 267
End Sub
268
'------------------------------------------------------------------------------------------------------------------------------------
171 brianf 269
Function GetDefaultProjectKey(artag_id)
270
   Dim rsProjId
271
   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))
272
   GetDefaultProjectKey = rsProjId("jira_key")
273
   Set rsProjId = Nothing
274
End Function
275
'------------------------------------------------------------------------------------------------------------------------------------
119 ghuddy 276
%>
277
<%
278
'Process submition
279
If CBool(Request("action")) AND (Request("btn") = "Import")  AND objAccessControl.UserLogedIn Then
129 ghuddy 280
   Call Import_Issues ( parPv_id, parFRiss_db, parFRiss_id )
281
   imported = TRUE
282
   Call OpenInParentWindow ("fixed_issues.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id)
283
 
119 ghuddy 284
End If
285
%>
286
<%
287
'-------------- Main Line ---------------
288
 
171 brianf 289
retVal = Get_Issues ( parFRiss_db, parFRiss_num, rspTotal, rsCQ, parFRpkey)
119 ghuddy 290
 
291
' total number of pages required
292
rspTotalPages = rspTotal \ rspMax
293
If (rspTotal Mod rspMax) > 0 Then rspTotalPages = rspTotalPages + 1
294
%>
295
<html>
296
<head>
297
<title>Release Manager</title>
298
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
299
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
300
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
301
<link rel="stylesheet" href="images/navigation.css" type="text/css">
302
<script language="JavaScript" src="images/common.js"></script>
303
</head>
304
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="self.focus();">
305
<%If retVal = 0 Then%>
306
<form name="importform" method="post" action="<%=scriptName%>">
307
  <table width="100%" border="0" cellspacing="0" cellpadding="2" height="100%">
308
    <tr>
309
      <td height="1%" background="images/bg_admin_dark.gif"><img src="images/spacer.gif" width="10" height="40"></td>
310
      <td nowrap colspan="3" class="wform_ttl" background="images/bg_admin_dark.gif"><table width="100" border="0" cellspacing="5" cellpadding="0">
311
        <tr>
312
          <td align="left" class="wform_ttl">Issue&nbsp;Number</td>
313
          <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>
314
        </tr>
315
        <tr>
171 brianf 316
          <td align="left" class="wform_ttl">Project&nbsp;Key</td>
317
          <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>
318
        </tr>
319
        <tr>
119 ghuddy 320
          <td align="left" class="wform_ttl">Database</td>
1338 dpurdie 321
          <td><span class="form_item"><%=JIRA_DATABASE%>: <%=JIRA_URL%></span></td>
119 ghuddy 322
        </tr>
323
 
129 ghuddy 324
      </table>
325
 
119 ghuddy 326
        <table width="400" border="0" cellspacing="5" cellpadding="0">
327
          <tr background="images/lbox_bg_blue.gif">
328
            <td colspan="2"><img src="images/spacer.gif" width="1" height="1"></td>
329
          </tr>
330
          <tr>
331
            <td width="1">&nbsp;</td>
332
            <td width="100%"><input type="submit" name="btn" value="Find &raquo;" class="form_btn_comp"></td>
333
          </tr>
334
        </table></td>
335
    </tr>
129 ghuddy 336
 
337
    <tr>
119 ghuddy 338
      <td background="images/lbox_bg_blue.gif" width="1%" height="1%">&nbsp;</td>
339
      <td background="images/lbox_bg_blue.gif" nowrap width="50%" class="wform_ttl">&nbsp;</td>
340
      <td background="images/lbox_bg_blue.gif" align="right" width="50%">
129 ghuddy 341
       <input type="submit" name="btn" value="Import" class="form_btn_comp">
342
        <input type="reset" name="btn" value="Close" class="form_btn_comp" onclick="self.close()">
119 ghuddy 343
      </td>
129 ghuddy 344
      <td background="images/lbox_bg_blue.gif" align="right" width="1%" nowrap>
119 ghuddy 345
        <img src="images/h_trsp_dot.gif" width="5" height="22"> </td>
346
    </tr>
129 ghuddy 347
    <tr>
119 ghuddy 348
      <td height="100%" width="1%">&nbsp;</td>
349
      <td valign="top" nowrap colspan="3" class="wform_ttl" background="images/bg_form_lightgray.gif">
129 ghuddy 350
       <%If imported Then%>
351
         <%Call DisplayInfo ( "ISSUES_IMPORTED", "300" )%>
352
      <%End If%>
119 ghuddy 353
        <table width="100%" border="0" cellspacing="1" cellpadding="2">
129 ghuddy 354
          <tr>
119 ghuddy 355
            <td width="1%" background="images/bg_form_lightbluedark.gif">&nbsp;</td>
356
            <td width="1%" nowrap background="images/bg_form_lightbluedark.gif" class="form_field">Issue Key</td>
129 ghuddy 357
         <td width="1%" nowrap background="images/bg_form_lightbluedark.gif" class="form_field">State</td>
119 ghuddy 358
            <td width="100%" nowrap background="images/bg_form_lightbluedark.gif" class="form_field">Summary</td>
359
          </tr>
129 ghuddy 360
        <%
361
        rspCount = 0
362
         If (NOT rsCQ.BOF) AND (NOT rsCQ.EOF) Then
363
           rsCQ.Move( rspMax * (rspPage - 1))
364
 
365
           %>
366
           <%
367
           While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF) AND (rspCount < rspMax))
368
           %>
369
             <tr>
370
               <td><input type="checkbox" name="FRiss_id" value="<%=rsCQ("iss_num")%>"></td>
371
               <td nowrap class="form_item">
372
 
373
               <%If parFRiss_num <> LENUM_ALL Then%>
374
               <%=Highlight_Substring( rsCQ("iss_num"), parFRiss_num )%>
375
               <%Else%>
1338 dpurdie 376
               <a href="<%=JIRA_URL%>/browse/<%=rsCQ("iss_num")%>" target="_blank"><%=rsCQ("iss_num")%>
129 ghuddy 377
               <%End If%>
378
 
379
               </a>
380
            </td>
381
            <td class="form_item"><%=rsCQ("state")%></td>
382
               <td class="form_item"><%=rsCQ("summary")%></td>
383
             </tr>
384
           <%rspCount = rspCount + 1
385
              rsCQ.MoveNext
386
           WEnd
387
           rsCQ.Close
388
           Set rsCQ = nothing%>
389
        <%End If%>
390
          <tr>
119 ghuddy 391
            <td background="images/bg_form_lightbluedark.gif">&nbsp;</td>
392
            <td colspan="3" nowrap background="images/bg_form_lightbluedark.gif" class="form_step">
129 ghuddy 393
            <%
394
            If rspTotal > rspMax Then
395
               If CInt(rspPage) = CInt(rspTotalPages) Then
396
                  Response.write "Found "& rspTotal &" records, showing "& (rspMax * rspPage) - rspMax + 1 &" - "& rspTotal
397
               Else
398
                  Response.write "Found "& rspTotal &" records, showing "& (rspMax * rspPage) - rspMax + 1 &" - "& (rspCount * rspPage)
399
               End If
400
            Else
401
               Response.write "Found "& rspTotal &" records"
402
            End If
403
            %>
404
         </td>
119 ghuddy 405
          </tr>
406
        </table>
407
        <table width="100%" border="0" cellspacing="1" cellpadding="2">
408
          <tr>
409
            <td align="center">
171 brianf 410
           <%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;
411
              <%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>
119 ghuddy 412
          </tr>
413
        </table>
414
        <br>
415
      </td>
416
    </tr>
129 ghuddy 417
    <tr>
119 ghuddy 418
      <td width="1%" height="1%" background="images/lbox_bg_blue.gif"><img src="images/h_trsp_dot.gif" width="5" height="5"></td>
419
      <td valign="top" nowrap colspan="3" class="wform_ttl" background="images/lbox_bg_blue.gif"></td>
420
    </tr>
421
  </table>
129 ghuddy 422
<input name="rpg" type="hidden" value="<%=rspPage%>">
119 ghuddy 423
<input name="skip_open" type="hidden" value="<%=parSkipOpen%>">
424
<input name="pv_id" type="hidden" value="<%=parPv_id%>">
425
<input name="rtag_id" type="hidden" value="<%=parRtag_id%>">
426
<input name="action" type="hidden" value="true">
427
</form>
428
<%Else%>
429
<%=enumMSSQL_ERROR%>
430
<%End If%>
431
</body>
432
</html>
433
 
434
 
435
<!-- DESTRUCTOR ------->
129 ghuddy 436
<!--#include file="common/destructor.asp"-->