| 119 |
ghuddy |
1 |
<%
|
|
|
2 |
'===============================================================
|
|
|
3 |
' Version Browser
|
|
|
4 |
'===============================================================
|
|
|
5 |
%>
|
|
|
6 |
<!--#include file="class/classSortHelper.asp"-->
|
|
|
7 |
<%
|
|
|
8 |
'------------ Variable Definition -------------
|
|
|
9 |
Dim parFLpkg_version, parFLuser_name
|
|
|
10 |
Dim imgLock, fieldRelease_Date, fieldReleased_By, fieldDownloadFullReleaseNotes
|
|
|
11 |
Dim rsVB
|
|
|
12 |
Dim rowColor, imgPointer
|
|
|
13 |
Dim URLstring
|
|
|
14 |
Dim anchorName
|
|
|
15 |
Dim filterInUse
|
| 4703 |
dpurdie |
16 |
Dim hideRipple
|
|
|
17 |
Dim rippleFilter
|
| 119 |
ghuddy |
18 |
Dim DestroyPackage
|
|
|
19 |
Dim CanDestroyPackage
|
|
|
20 |
'------------ Constants Declaration -----------
|
|
|
21 |
Const IMGBG_ROW_HI = "background='images/bg_row_hi.gif'"
|
|
|
22 |
Const IMGBG_ROW = "bgcolor='#FFFFFF'"
|
|
|
23 |
Const IMG_PONTER = "<img src='images/i_pointer.gif' width='6' height='11' hspace='3'>"
|
|
|
24 |
Const IMG_OFFICIAL = "<img src='images/i_locked.gif' width='7' height='10' hspace='5' vspace='2' alt='Package is official'>"
|
|
|
25 |
Const IMG_NOT_OFFICIAL = "<img src='images/spacer.gif' width='7' height='10' hspace='5' vspace='2'>"
|
|
|
26 |
Const IMG_DOWNLOAD = "<img src='images/i_download_small.gif' alt='Download full release notes.' width='16' height='16' hspace='2' border='0'>"
|
|
|
27 |
'------------ Variable Init -------------------
|
|
|
28 |
If Request("filter_reset") <> "" Then
|
|
|
29 |
parFLpkg_version = "*"
|
|
|
30 |
parFLuser_name = "*"
|
|
|
31 |
filterInUse = FALSE
|
|
|
32 |
Else
|
|
|
33 |
parFLpkg_version = Request( "FLpkg_version" )
|
|
|
34 |
parFLuser_name = Request( "FLuser_name" )
|
|
|
35 |
filterInUse = Is_Filter_In_Use ( "FLpkg_version, FLuser_name" )
|
|
|
36 |
End If
|
| 4703 |
dpurdie |
37 |
|
|
|
38 |
If Request("hideRipple") = "True" Then
|
|
|
39 |
hideRipple = True
|
|
|
40 |
rippleFilter = "AND PV.BUILD_TYPE != 'Y'"
|
|
|
41 |
Else
|
|
|
42 |
hideRipple = False
|
|
|
43 |
rippleFilter = ""
|
|
|
44 |
End If
|
|
|
45 |
|
| 119 |
ghuddy |
46 |
'----------------------------------------------
|
|
|
47 |
%>
|
|
|
48 |
<%
|
|
|
49 |
'-----------------------------------------------------------------------------------------------------------------------------------
|
|
|
50 |
Function Get_All_Versions ( nPkg_id )
|
|
|
51 |
Get_All_Versions = _
|
| 4703 |
dpurdie |
52 |
" SELECT PV.PV_ID, PV.PKG_VERSION, PV.DLOCKED, PV.MODIFIED_STAMP, USR.FULL_NAME, usr.user_name, USR.USER_EMAIL, PV.COMMENTS, PV.PKG_LABEL, PV.IS_PATCH, PV.RELEASE_NOTES_INFO, PV.BUILD_TYPE "&_
|
| 119 |
ghuddy |
53 |
" FROM PACKAGE_VERSIONS PV, USERS USR "&_
|
|
|
54 |
" WHERE PV.MODIFIER_ID = USR.USER_ID "&_
|
|
|
55 |
" AND PV.PKG_ID = :PKG_ID"&_
|
|
|
56 |
" /*-- Manual Filer --*/"&_
|
|
|
57 |
" "& Construct_Filter ( parFLpkg_version, "pv.pkg_version" ) &_
|
|
|
58 |
" "& Construct_Filter ( parFLuser_name, "usr.user_name" ) &_
|
| 4703 |
dpurdie |
59 |
" "& rippleFilter &_
|
| 119 |
ghuddy |
60 |
" /*------------------*/"
|
|
|
61 |
|
|
|
62 |
Get_All_Versions = Replace( Get_All_Versions, ":PKG_ID", nPkg_id)
|
|
|
63 |
End Function
|
|
|
64 |
'-----------------------------------------------------------------------------------------------------------------------------------
|
|
|
65 |
Function Construct_Filter ( sPar_val, sCol_name )
|
|
|
66 |
Select Case sPar_val
|
|
|
67 |
Case Empty
|
|
|
68 |
Construct_Filter = "AND "& sCol_name &" IS NULL"
|
|
|
69 |
|
|
|
70 |
Case "*"
|
|
|
71 |
Construct_Filter = ""
|
|
|
72 |
|
|
|
73 |
Case Else
|
|
|
74 |
If InStr( sPar_val, "*") > 0 Then
|
|
|
75 |
' Asterisk found in string. Use LIKE
|
|
|
76 |
Construct_Filter = "AND "& sCol_name &" LIKE '"& Replace( sPar_val, "*", "%" ) &"'"
|
|
|
77 |
Else
|
|
|
78 |
' No asterisk. Use =
|
|
|
79 |
Construct_Filter = "AND "& sCol_name &" = '"& sPar_val &"'"
|
|
|
80 |
End If
|
|
|
81 |
|
|
|
82 |
End Select
|
|
|
83 |
|
|
|
84 |
End Function
|
|
|
85 |
'-----------------------------------------------------------------------------------------------------------------------------------
|
|
|
86 |
Function Is_Filter_In_Use ( sFilters )
|
|
|
87 |
Dim filters, filterName
|
|
|
88 |
Is_Filter_In_Use = FALSE
|
|
|
89 |
|
|
|
90 |
filters = Split( Replace( sFilters, " ", "" ), "," )
|
|
|
91 |
|
|
|
92 |
For Each filterName In filters
|
|
|
93 |
If Request( filterName ) <> "*" Then
|
|
|
94 |
Is_Filter_In_Use = TRUE
|
|
|
95 |
Exit For
|
|
|
96 |
End If
|
|
|
97 |
Next
|
|
|
98 |
|
|
|
99 |
End Function
|
|
|
100 |
'-----------------------------------------------------------------------------------------------------------------------------------
|
|
|
101 |
%>
|
|
|
102 |
<!--------------- ACTION BUTTONS -------------------------->
|
|
|
103 |
<form name="filter" method="get" action="<%=scriptName%>">
|
|
|
104 |
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
|
105 |
<tr>
|
|
|
106 |
<td width="1" valign="middle" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="5" height="35"></td>
|
|
|
107 |
<td width="100%" valign="middle" background="images/bg_action_norm.gif"><%
|
| 5082 |
dpurdie |
108 |
Dim bEnableUse : bEnableUse = FALSE
|
| 119 |
ghuddy |
109 |
If Request("rtag_id") = "" OR _
|
|
|
110 |
Request("pv_id") = "" OR _
|
|
|
111 |
bIsPatch OR _
|
| 5082 |
dpurdie |
112 |
(NOT bCanInsertPkg) OR _
|
| 119 |
ghuddy |
113 |
(NOT objAccessControl.UserLogedIn) OR _
|
| 5061 |
dpurdie |
114 |
(NOT canActionInProject() ) OR _
|
| 4084 |
dpurdie |
115 |
(ReleaseMode = enumDB_RELEASE_IN_CLOSED_MODE) OR _
|
|
|
116 |
(ReleaseMode = enumDB_RELEASE_IN_ARCHIVE_MODE) OR _
|
| 5082 |
dpurdie |
117 |
(ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE AND NOT canActionControlInProject("AlterReleaseContentsInRestrictiveMode")) OR _
|
|
|
118 |
(ReleaseMode = enumDB_RELEASE_IN_CCB_MODE AND NOT canActionControlInProject("AlterReleaseContentsInRestrictiveMode")) _
|
| 119 |
ghuddy |
119 |
Then
|
| 5082 |
dpurdie |
120 |
bEnableUse = FALSE
|
| 119 |
ghuddy |
121 |
Else
|
| 5082 |
dpurdie |
122 |
bEnableUse = TRUE
|
| 119 |
ghuddy |
123 |
End If
|
| 5082 |
dpurdie |
124 |
|
|
|
125 |
If bEnableUse Then
|
|
|
126 |
Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "action=true" ) &"' onClick='return confirmAction(""You are about to insert "& sPkg_Name &" "& sPkg_Version &" into a project release. \nDo you want to proceed?"");'><img src='images/abtn_use_this_version.gif' alt='Use this version in project release.' width='107' height='25' hspace='1' border='0'></a>"
|
|
|
127 |
Else
|
|
|
128 |
Response.write "<img src='images/abtn_use_this_version_off.gif' width='108' height='26' hspace='1' border='0'>"
|
|
|
129 |
End If
|
| 119 |
ghuddy |
130 |
|
|
|
131 |
Response.write "<img src='images/spacer.gif' width='25' height='25'>"
|
|
|
132 |
If filterInUse Then
|
|
|
133 |
Response.write "<input type='image' name='btn' src='images/abtn_filter_on.gif' width='25' height='25' border='0' alt='Apply filter. (Filter is in use!)'>"
|
|
|
134 |
Else
|
|
|
135 |
Response.write "<input type='image' name='btn' src='images/abtn_filter.gif' width='25' height='25' border='0' alt='Apply filter'>"
|
|
|
136 |
End If
|
|
|
137 |
Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "filter_reset=true" ) &"'><img src='images/abtn_remove_filter.gif' alt='Remove filter' width='25' height='25' hspace='2' border='0'></a>"
|
| 4703 |
dpurdie |
138 |
|
|
|
139 |
Response.write "<img src='images/spacer.gif' width='25' height='25'>"
|
|
|
140 |
Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "hideRipple=" & not hideRipple ) &"'>"
|
|
|
141 |
If hideRipple Then
|
|
|
142 |
Response.write "<img src='images/RippleSquareOff.gif' width='25' height='25' border='0' title='Rippled Versions Hidden. Toggle'>"
|
|
|
143 |
Else
|
|
|
144 |
Response.write "<img src='images/RippleSquare.gif' width='25' height='25' border='0' title='Rippled Versions Shown. Toggle'>"
|
|
|
145 |
End If
|
|
|
146 |
Response.write "</a>"
|
|
|
147 |
|
| 119 |
ghuddy |
148 |
%></td>
|
|
|
149 |
<td width="1" valign="middle" background="images/bg_action_norm.gif"><a href="javascript:;" onClick="window.opener.document.location='dependencies.asp?pv_id=<%=parPv_id%>';self.close();"><img src="images/abtn_open.gif" width="46" height="25" hspace="5" border="0" alt="Open In Parent Window."></a></td>
|
|
|
150 |
<td width="1" valign="middle" background="images/bg_action_norm.gif"><a href="javascript:;" onClick="self.close();"><img src="images/abtn_close.gif" width="46" height="25" hspace="5" border="0" alt="Close this window."></a></td>
|
|
|
151 |
</tr>
|
|
|
152 |
</table>
|
|
|
153 |
<!--------------------- CAPTION ---------------------------->
|
|
|
154 |
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
|
155 |
<tr>
|
|
|
156 |
<td class="lbox_ttl_b" background="images/bg_action_dark.gif" align="center"><%=sPkg_Name%></td>
|
|
|
157 |
</tr>
|
|
|
158 |
</table>
|
|
|
159 |
<!------------------ VERSION LIST -------------------------->
|
|
|
160 |
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
|
161 |
<tr>
|
|
|
162 |
<td background="images/bg_action_norm.gif">
|
|
|
163 |
<div id="LayerVersions" style="height: 350px; overflow: auto;" name="LayerVersions">
|
|
|
164 |
<table width="100%" border="0" cellspacing="1" cellpadding="2">
|
|
|
165 |
<tr>
|
|
|
166 |
<td width="1" nowrap background="images/bg_action_dark.gif"><img src="images/spacer.gif" width="15" height="10"></td>
|
|
|
167 |
<td width="1" nowrap background="images/bg_action_dark.gif"> </td>
|
|
|
168 |
<td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Version <br><input name="FLpkg_version" type="text" class="form_ifilter" value="<%=parFLpkg_version%>" size="15"></td>
|
|
|
169 |
<td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Mod. Date </td>
|
|
|
170 |
<td width="100%" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Reason for this version</td>
|
|
|
171 |
<td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Modified <br><input name="FLuser_name" type="text" class="form_ifilter" value="<%=parFLuser_name%>" size="15"></td>
|
|
|
172 |
<td width="1" nowrap background="images/bg_action_dark.gif"></td>
|
|
|
173 |
<td width="1" nowrap background="images/bg_action_dark.gif"></td>
|
|
|
174 |
</tr>
|
|
|
175 |
<%
|
|
|
176 |
Dim aVersions, lastRow, i, objSortHelper
|
|
|
177 |
|
|
|
178 |
|
|
|
179 |
Set rsVB = OraDatabase.DbCreateDynaset( Get_All_Versions ( parPkg_id ), cint(0))
|
|
|
180 |
|
|
|
181 |
|
|
|
182 |
|
|
|
183 |
|
|
|
184 |
' Descending order
|
|
|
185 |
If rsVB.RecordCount > 0 Then
|
|
|
186 |
aVersions = rsVB.GetRows()
|
|
|
187 |
lastRow = UBound( aVersions, 2 )
|
|
|
188 |
|
|
|
189 |
Set objSortHelper = New SortHelper
|
|
|
190 |
|
|
|
191 |
|
|
|
192 |
' Sort versions
|
|
|
193 |
Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsVB.FieldIndex("pkg_version") )
|
|
|
194 |
|
|
|
195 |
|
|
|
196 |
DestroyPackage = ""
|
| 5061 |
dpurdie |
197 |
CanDestroyPackage = canShowControlInProject ( "DestroyPackage" )
|
| 119 |
ghuddy |
198 |
|
|
|
199 |
' Descending order
|
|
|
200 |
For i = lastRow To 0 Step -1
|
| 4703 |
dpurdie |
201 |
|
| 119 |
ghuddy |
202 |
%>
|
|
|
203 |
<% ' Highlight row case
|
|
|
204 |
rowColor = IMGBG_ROW
|
|
|
205 |
imgPointer = ""
|
|
|
206 |
If CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) = parPv_id Then
|
|
|
207 |
rowColor = IMGBG_ROW_HI
|
|
|
208 |
imgPointer = IMG_PONTER
|
|
|
209 |
End If
|
|
|
210 |
|
|
|
211 |
' Official/Unofficial case
|
|
|
212 |
imgLock = IMG_NOT_OFFICIAL
|
|
|
213 |
'fieldRelease_Date = ""
|
|
|
214 |
'fieldReleased_By = ""
|
|
|
215 |
If (aVersions( rsVB.FieldIndex("dlocked"), i ) = "Y") OR (aVersions( rsVB.FieldIndex("dlocked"), i ) = "A") Then
|
|
|
216 |
imgLock = IMG_OFFICIAL
|
|
|
217 |
End If
|
|
|
218 |
|
|
|
219 |
fieldRelease_Date = EuroDateTime ( aVersions( rsVB.FieldIndex("modified_stamp"), i ) )
|
|
|
220 |
fieldReleased_By = "<a href='mailto:"& aVersions( rsVB.FieldIndex("user_email"), i ) &"' class='txt_linked'><img src='images/i_user.gif' width='10' height='13' hspace='2' border='0' align='absmiddle' alt='"& aVersions( rsVB.FieldIndex("full_name"), i ) &" <"& aVersions( rsVB.FieldIndex("user_email"), i ) &">'>"& aVersions( rsVB.FieldIndex("user_name"), i ) &"</a>"
|
|
|
221 |
|
|
|
222 |
' Full Release Notes availability
|
|
|
223 |
fieldDownloadFullReleaseNotes = ""
|
|
|
224 |
If NOT IsNull( aVersions( rsVB.FieldIndex("release_notes_info"), i ) ) OR ( InStr( aVersions( rsVB.FieldIndex("release_notes_info"), i ), "MGS:") < 1) Then
|
| 177 |
brianf |
225 |
fieldDownloadFullReleaseNotes = "<a href='"& HTTP_PKG_ARCHIVE & aVersions( rsVB.FieldIndex("release_notes_info"), i ) &"' target='_blank'><img src='images/i_download_small.gif' alt='Download full release notes.' width='16' height='16' hspace='2' border='0'></a>"
|
| 119 |
ghuddy |
226 |
End If
|
|
|
227 |
|
|
|
228 |
anchorName = "ANC_"& aVersions( rsVB.FieldIndex("pv_id"), i )
|
|
|
229 |
If aVersions( rsVB.FieldIndex("is_patch"), i ) = "Y" Then
|
|
|
230 |
URLstring = "_wform_versions_history_release_notes.asp?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
|
|
|
231 |
Else
|
|
|
232 |
URLstring = scriptName &"?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
|
|
|
233 |
End If
|
|
|
234 |
|
|
|
235 |
|
|
|
236 |
' Set destroy package action
|
|
|
237 |
If CanDestroyPackage Then
|
|
|
238 |
DestroyPackage = "<a href='_destroy_package.asp?pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) &"&bfile="& ScriptName &"&rtag_id="& parRtag_id &"&FLuser_name="& parFLuser_name &"&FLpkg_version="& parFLpkg_version &"&rfile="& parRfile &"&pkg_id="& parPkg_id &"&OLDpv_id="& parOLDpv_id &"' "&_
|
|
|
239 |
" title='Destroy this package from the database.' "&_
|
|
|
240 |
" onClick='return confirmAction(""You are about to destroy ["& sPkg_Name &" "& aVersions( rsVB.FieldIndex("pkg_version"), i ) &"]. You cannot undo this operation.\nDo you want to proceed?"");' ><img src='icons/i_destroy_package_sml.gif' width='15' height='15' border='0' ><a>"
|
|
|
241 |
End If
|
|
|
242 |
%>
|
|
|
243 |
<tr <%=Set_Row_Style ( URLstring )%>>
|
|
|
244 |
<td align="right" background="images/bg_action_dark.gif"><%=imgPointer%></td>
|
|
|
245 |
<td align="center" valign="top" <%=rowColor%>><%=imgLock%></td>
|
|
|
246 |
<td valign="top" nowrap <%=rowColor%>><a name="<%=anchorName%>"></a><a href="<%=URLstring%>" class="txt_linked"><%=aVersions( rsVB.FieldIndex("pkg_version"), i )%></a></td>
|
|
|
247 |
<td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldRelease_Date%></td>
|
|
|
248 |
<td valign="top" <%=rowColor%> class="form_item"><%=NewLine_To_BR ( To_HTML( aVersions( rsVB.FieldIndex("comments"), i ) ) )%></td>
|
|
|
249 |
<td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldReleased_By%></td>
|
|
|
250 |
<td align="center" valign="top" <%=rowColor%>><%=fieldDownloadFullReleaseNotes%></td>
|
|
|
251 |
<td align="center" valign="top" <%=rowColor%>><%=DestroyPackage%></td>
|
|
|
252 |
</tr>
|
|
|
253 |
<%
|
|
|
254 |
Next
|
|
|
255 |
End If
|
|
|
256 |
%>
|
|
|
257 |
</table>
|
|
|
258 |
</div></td>
|
|
|
259 |
</tr>
|
|
|
260 |
</table>
|
|
|
261 |
<input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
|
|
|
262 |
<input type="hidden" name="pkg_id" value="<%=parPkg_id%>">
|
|
|
263 |
<input type="hidden" name="rfile" value="<%=parRfile%>">
|
|
|
264 |
<input type="hidden" name="OLDpv_id" value="<%=parOLDpv_id%>">
|
| 1268 |
iaugusti |
265 |
<input type="hidden" name="pv_id" value="<%=parPv_id%>">
|
| 119 |
ghuddy |
266 |
<input type="hidden" name="filter_reset" value="">
|
|
|
267 |
</form>
|
|
|
268 |
|
|
|
269 |
|
|
|
270 |
|