Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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"><%
108
		  If Request("rtag_id") = ""  OR  _
109
		  	 Request("pv_id") = "" OR _
110
			 bIsPatch OR _
111
			 (NOT objAccessControl.UserLogedIn) OR _
112
			 ( NOT objAccessControl.IsDataVisible ("PROJECTS", DB_PROJ_ID, "EditProjects") ) OR _
4084 dpurdie 113
			 (ReleaseMode = enumDB_RELEASE_IN_CLOSED_MODE) OR _
114
			 (ReleaseMode = enumDB_RELEASE_IN_ARCHIVE_MODE) OR _
119 ghuddy 115
			 (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) _
116
		  Then
117
			 	'Response.write "HERE"& Request("rtag_id")
118
		  		Response.write "<img src='images/abtn_use_this_version_off.gif' width='108' height='26' hspace='1' border='0'>"
119
 
120
		  Else
121
 
122
 
123
		  	If pkgInfoHash.Item("can_edit_in_project") = "1" OR  _
124
			   objAccessControl.IsVisible("EditPackageInExternalProjects")  _
125
 
126
			Then
127
		  		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>"
128
			End If
129
 
130
 
131
		  End If
132
 
133
		  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
134
		  If filterInUse Then
135
		  	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!)'>"
136
		  Else
137
		    Response.write "<input type='image' name='btn' src='images/abtn_filter.gif' width='25' height='25' border='0' alt='Apply filter'>"
138
		  End If
139
		  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 140
 
141
		  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
142
          Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "hideRipple=" & not hideRipple ) &"'>"
143
    		  If hideRipple Then
144
    		  	Response.write "<img src='images/RippleSquareOff.gif' width='25' height='25' border='0' title='Rippled Versions Hidden. Toggle'>"
145
    		  Else
146
    		    Response.write "<img src='images/RippleSquare.gif' width='25' height='25' border='0' title='Rippled Versions Shown. Toggle'>"
147
    		  End If
148
          Response.write "</a>"
149
 
119 ghuddy 150
		  %></td>
151
		  <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>
152
		  <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>
153
        </tr>
154
      </table>
155
	  <!--------------------- CAPTION ---------------------------->
156
	  <table width="100%" border="0" cellspacing="0" cellpadding="0">
157
	    <tr>
158
	      <td class="lbox_ttl_b" background="images/bg_action_dark.gif" align="center"><%=sPkg_Name%></td>
159
		</tr>
160
      </table>
161
	  <!------------------ VERSION LIST -------------------------->
162
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
163
        <tr>
164
          <td background="images/bg_action_norm.gif"> 
165
            <div id="LayerVersions" style="height: 350px; overflow: auto;" name="LayerVersions"> 
166
              <table width="100%" border="0" cellspacing="1" cellpadding="2">
167
                <tr>
168
                  <td width="1" nowrap background="images/bg_action_dark.gif"><img src="images/spacer.gif" width="15" height="10"></td>
169
                  <td width="1" nowrap background="images/bg_action_dark.gif">&nbsp;</td>
170
                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Version&nbsp;&nbsp;<br><input name="FLpkg_version" type="text" class="form_ifilter" value="<%=parFLpkg_version%>" size="15"></td>
171
                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Mod. Date&nbsp;&nbsp;</td>
172
                  <td width="100%" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Reason for this version</td>
173
				  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Modified&nbsp;&nbsp;<br><input name="FLuser_name" type="text" class="form_ifilter" value="<%=parFLuser_name%>" size="15"></td>
174
                  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
175
				  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
176
                </tr>
177
				<%
178
				Dim aVersions, lastRow, i, objSortHelper
179
 
180
 
181
				Set rsVB = OraDatabase.DbCreateDynaset( Get_All_Versions ( parPkg_id ), cint(0))
182
 
183
 
184
 
185
 
186
			  	' Descending order
187
				If rsVB.RecordCount > 0 Then
188
				aVersions = rsVB.GetRows()
189
				lastRow = UBound( aVersions, 2 )
190
 
191
				Set objSortHelper = New SortHelper
192
 
193
 
194
				' Sort versions
195
				Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsVB.FieldIndex("pkg_version") )
196
 
197
 
198
				DestroyPackage = ""
199
				CanDestroyPackage = objAccessControl.IsVisible ( "DestroyPackage" )
200
 
201
			  	' Descending order
202
				For i = lastRow To 0 Step -1
4703 dpurdie 203
 
119 ghuddy 204
				%>
205
				<%	' Highlight row case
206
					rowColor = IMGBG_ROW
207
					imgPointer = ""
208
					If CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) = parPv_id Then 
209
						rowColor = IMGBG_ROW_HI
210
						imgPointer = IMG_PONTER
211
					End If
212
 
213
					' Official/Unofficial case
214
					imgLock = IMG_NOT_OFFICIAL
215
					'fieldRelease_Date = ""
216
					'fieldReleased_By = ""
217
					If (aVersions( rsVB.FieldIndex("dlocked"), i ) = "Y")  OR (aVersions( rsVB.FieldIndex("dlocked"), i ) = "A") Then
218
						imgLock = IMG_OFFICIAL
219
					End If
220
 
221
					fieldRelease_Date = EuroDateTime ( aVersions( rsVB.FieldIndex("modified_stamp"), i ) )
222
					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 ) &" &lt;"& aVersions( rsVB.FieldIndex("user_email"), i ) &"&gt;'>"& aVersions( rsVB.FieldIndex("user_name"), i ) &"</a>"
223
 
224
					' Full Release Notes availability
225
					fieldDownloadFullReleaseNotes = ""
226
					If NOT IsNull( aVersions( rsVB.FieldIndex("release_notes_info"), i ) ) OR ( InStr( aVersions( rsVB.FieldIndex("release_notes_info"), i ), "MGS:") < 1)  Then
177 brianf 227
						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 228
					End If
229
 
230
					anchorName = "ANC_"& aVersions( rsVB.FieldIndex("pv_id"), i )
231
					If aVersions( rsVB.FieldIndex("is_patch"), i ) = "Y" Then
232
						URLstring = "_wform_versions_history_release_notes.asp?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
233
					Else
234
						URLstring = scriptName &"?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
235
					End If
236
 
237
 
238
					' Set destroy package action
239
					If CanDestroyPackage Then
240
						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 &"' "&_
241
										 " title='Destroy this package from the database.' "&_
242
										 " 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>"
243
					End If
244
				%>
245
                <tr <%=Set_Row_Style ( URLstring )%>> 
246
                  <td align="right" background="images/bg_action_dark.gif"><%=imgPointer%></td>
247
                  <td align="center" valign="top" <%=rowColor%>><%=imgLock%></td>
248
                  <td valign="top" nowrap <%=rowColor%>><a name="<%=anchorName%>"></a><a href="<%=URLstring%>" class="txt_linked"><%=aVersions( rsVB.FieldIndex("pkg_version"), i )%></a></td>
249
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldRelease_Date%></td>
250
                  <td valign="top" <%=rowColor%> class="form_item"><%=NewLine_To_BR ( To_HTML( aVersions( rsVB.FieldIndex("comments"), i ) ) )%></td>
251
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldReleased_By%></td>
252
                  <td align="center" valign="top" <%=rowColor%>><%=fieldDownloadFullReleaseNotes%></td>
253
				  <td align="center" valign="top" <%=rowColor%>><%=DestroyPackage%></td>
254
                </tr>
255
				<%
256
				Next
257
				End If
258
				%>
259
              </table>
260
            </div></td>
261
        </tr>
262
      </table> 
263
	  <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
264
	  <input type="hidden" name="pkg_id" value="<%=parPkg_id%>">
265
	  <input type="hidden" name="rfile" value="<%=parRfile%>">
266
	  <input type="hidden" name="OLDpv_id" value="<%=parOLDpv_id%>">
1268 iaugusti 267
	  <input type="hidden" name="pv_id" value="<%=parPv_id%>">
119 ghuddy 268
	  <input type="hidden" name="filter_reset" value="">
269
	  </form>
270
 
271
 
272