<%@LANGUAGE="VBSCRIPT"%> <% Option explicit Response.Expires = 0 ' always load the page, dont store %> <% '===================================================== ' Import Issues '===================================================== %> <% ' Set rfile parameter. This is a return page after Login Call objPMod.StoreParameter ( "rfile", "fixed_issues.asp" ) '------------ ACCESS CONTROL ------------------ %> <% '------------ 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 parDoQuery 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") parDoQuery = Request("doQuery") 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 If (parDoQuery = "") Then parDoQuery = "0" ' Get DEVI issue states checked Set oIStates = GetIStates() '---------------------------------------------- 'Response.write "parPackage="& parPackage &", parProject="& parProject &", parProduct="& parProduct &", parSkipOpen="& parSkipOpen &"
" '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 CQ_DEVI.admin.software_issue si,"&_ " CQ_DEVI.admin.STATEDEF sd"&_ " WHERE si.STATE = sd.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 End If '-- Keyword search -- If ( NNiss_num <> LENUM_ALL ) Then issARR = Split( Replace( NNiss_num, " ", ""), "," ) col_name = "new_num" 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" End If 'Response.write SQLstr OOrsCQ.ActiveConnection = CQ_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 = CQ_conn 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 = CQ_conn If CInt(nIssDB) = enumCLEARQUEST_DEVI_ID Then SQLstr = _ " SELECT si.dbid, sd.name AS state_name, si.state AS state_id"&_ " FROM CQ_DEVI.admin.software_issue si,"&_ " CQ_DEVI.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("dbid")), CStr(rsTemp("state_name")) 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, ",") Call Get_CQ_Issues_States ( NNiss_id_list, NNiss_db, oCQissState ) objEH.TryORA ( OraSession ) On Error Resume Next For Each iss_id In issArr iss_num = GetIssueNumber ( NNiss_db, iss_id ) iss_state = Set_Issue_State ( oCQissState.Item (Trim(iss_id)) ) If Err.Number = 0 Then OraDatabase.ExecuteSQL _ " INSERT INTO cq_issues ( pv_id, iss_db, iss_id, iss_state, mod_date )"&_ " VALUES ( "& NNpv_id &", "& NNiss_db &", "& iss_id &", "& iss_state &", "& ORA_SYSDATE &")" 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 &", 'issue_add', "& objAccessControl.UserId &", 'Issue number: "& iss_num &", Fixed: "& iss_state_human_readable &"' ); 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 --------------- If parDoQuery <> "0" Then retVal = Get_Issues ( parFRiss_db, parFRiss_num, rspTotal, rsCQ ) End If ' total number of pages required rspTotalPages = rspTotal \ rspMax If (rspTotal Mod rspMax) > 0 Then rspTotalPages = rspTotalPages + 1 %> Release Manager <%If retVal = 0 Then%>
Issue Number Example: ALL, 123, DEVI-123
Database
Options...
style="display:block;"<%Else%>style="display:none;"<%End If%>>
style="display:block;"<%Else%>style="display:none;"<%End If%>>
Title
Package
Project
Product
 
Issue Status <% '---- ISSUE STATES ---- Set rsCQTemp = Server.CreateObject("ADODB.Recordset") rsCQTemp.ActiveConnection = CQ_conn '-- Get Issuestates SQLstr = _ " SELECT sd.ID,"&_ " sd.NAME"&_ " FROM CQ_DEVI.admin.STATEDEF sd"&_ " ORDER BY sd.ORDINAL" rsCQTemp.Source = SQLstr rsCQTemp.CursorType = 0 rsCQTemp.CursorLocation = 2 rsCQTemp.LockType = 3 rsCQTemp.Open() While (NOT rsCQTemp.BOF) AND (NOT rsCQTemp.EOF) checked = "" If oIStates.Exists("ALL") OR oIStates.Exists(Cstr(rsCQTemp("id"))) Then checked = "checked" %> <% rsCQTemp.MoveNext WEnd rsCQTemp.Close() %>
" <%=checked%>>
  Click Find to initiate clearquest query based on your options
   
  <% If imported Then Call DisplayInfo ( "ISSUES_IMPORTED", "300" ) End If %> <% rspCount = 0 If (parDoQuery <> "0") Then 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)) If (objAccessControl.IsActive("ImportOpenIssues")) Then Select Case UCase( rsCQ("state") ) Case "OPEN" disabled = "" Case "SUSPENDED" disabled = "" Case Else disabled = "" End Select End If If NOT (objAccessControl.IsActive("ImportOpenIssues")) Then If (parSkipOpen <> "") Then Select Case UCase( rsCQ("state") ) Case "OPEN" disabled = "disabled" Case Else disabled = "" End Select Else Select Case UCase( rsCQ("state") ) Case "CLOSED" disabled = "disabled" Case Else disabled = "" End Select End If End If %> <% rspCount = rspCount + 1 rsCQ.MoveNext WEnd rsCQ.Close Set rsCQ = nothing End If End If %>
  Issue Number State Summary
" <%=disabled%>> ','IssueDetails','resizable=yes,width=580,height=500')" class="txt_linked"> <%If parFRiss_num <> LENUM_ALL Then%> <%=Highlight_Substring( rsCQ("iss_num"), parFRiss_num )%> <%Else%> <%=rsCQ("iss_num")%> <%End If%> <%=rsCQ("state")%> <%=Server.HTMLEncode(rsCQ("summary"))%>
  <% 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 %>
<%If CInt(rspPage) > 1 Then%><previous<%End If%>  <%If CInt(rspPage) < CInt(rspTotalPages) Then%>next ><%End If%>

<%Else%> <%=enumMSSQL_ERROR%> <%End If%>