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
'-----------------------------------------------------------------------------------------------------------------------------------
5190 dpurdie 101
Function Set_Row_Style ( sLink, pvid )
102
	Set_Row_Style = "onMouseOver='this.style.cursor=""pointer""' onClick='selectVersion("""& sLink &""",event)' "
103
End Function
104
'-----------------------------------------------------------------------------------------------------------------------------------
119 ghuddy 105
%>
5173 dpurdie 106
<!--#include file="_jquery_includes.asp"-->
107
<script language="JavaScript" type="text/JavaScript">
108
function useThisVersion (pkgName, pkgVersion, rtagId, oldPvid, newPvid) {
109
    console.log("useThisVersion:", pkgName, pkgVersion);
110
    debugger;
111
    //alert ("Use this version");
112
    $( "#dialog-confirm" ).dialog({
113
      position: { my: "top", at: "top+100", of: window },
114
      modal: true,
115
      draggable: true,
116
      resizable: true,
117
      dialogClass: "rounded_box",
118
      height:250,
119
      width:350,
120
      buttons: {
121
        "Direct": function() {
122
          window.opener.document.location="_new_version.asp?OLDpv_id=" + oldPvid + "&rtag_id=" + rtagId + "&pv_id=" + newPvid
123
          self.close();
124
          $( this ).dialog( "close" );
125
        },
126
        "Pending": function() {
127
          window.opener.document.location="_new_version.asp?OLDpv_id=" + oldPvid + "&rtag_id=" + rtagId + "&pv_id=" + newPvid + '&iMode=pending';
128
          self.close();
129
          $( this ).dialog( "close" );
130
        },
131
        Cancel: function() {
132
          $( this ).dialog( "close" );
133
        }
134
      },
135
      open: function() {
136
          $(this).siblings('.ui-dialog-buttonpane').find('button:eq(2)').focus(); 
137
      }
138
    });
139
 
140
    return false;
141
}
5190 dpurdie 142
 
143
//  This function is invoked when the user clicks within a row
144
//  The click will re-load and reposition the verion history to the selected version
145
//  The problem is that the 'Destroy Version' intercats with this.
146
//  Solution: The DestroyVersin is an image within an anchor. 
147
//            If the anchor has a class of nogo, then don't navigate
148
function selectVersion(href,event)
149
{
150
    if (! $(event.target).closest('a').hasClass('nogo')) {
151
        location.href = href;
152
    }
153
}
154
 
5173 dpurdie 155
//# sourceURL=_version_browser_1.asp	
156
</script>
157
 
119 ghuddy 158
	  <!--------------- ACTION BUTTONS -------------------------->
159
	  <form name="filter" method="get" action="<%=scriptName%>">
160
	  <table width="100%" border="0" cellspacing="0" cellpadding="0">
161
        <tr>
162
          <td width="1" valign="middle" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="5" height="35"></td>
163
          <td width="100%" valign="middle" background="images/bg_action_norm.gif"><%
5082 dpurdie 164
          Dim bEnableUse : bEnableUse = FALSE
119 ghuddy 165
		  If Request("rtag_id") = ""  OR  _
166
		  	 Request("pv_id") = "" OR _
5173 dpurdie 167
             parOLDpv_id = ParPv_id OR _
119 ghuddy 168
			 bIsPatch OR _
5082 dpurdie 169
             (NOT bCanInsertPkg) OR _
119 ghuddy 170
			 (NOT objAccessControl.UserLogedIn) OR _
5178 dpurdie 171
             (NOT releaseIsWritable(ReleaseMode))  _
119 ghuddy 172
		  Then
5082 dpurdie 173
                bEnableUse = FALSE
119 ghuddy 174
		  Else
5082 dpurdie 175
                bEnableUse = TRUE
119 ghuddy 176
		  End If
5082 dpurdie 177
 
178
          If bEnableUse Then
5173 dpurdie 179
          %>
180
          <div id='dialog-confirm' title="Confirm version change" style="display:none">
181
          <p>Replace the current version of package <%=sPkg_Name%> with Version <%=sPkg_Version%>.
182
          <p>The new version may be added directly into the release or the change may be made pending. 
183
          </div>
184
          <%
185
            Response.write "<a href=';' onClick='return useThisVersion("""& sPkg_Name &""","""& sPkg_Version & """,""" & parRtag_id & ""","""& parOLDpv_id & """,""" & parPv_id & """);'><img src='images/abtn_use_this_version.gif' title='Use this version in project release.' width='107' height='25' hspace='1' border='0'></a>"
5082 dpurdie 186
          Else
187
		    Response.write "<img src='images/abtn_use_this_version_off.gif' width='108' height='26' hspace='1' border='0'>"
188
          End If
119 ghuddy 189
 
190
		  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
191
		  If filterInUse Then
192
		  	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!)'>"
193
		  Else
194
		    Response.write "<input type='image' name='btn' src='images/abtn_filter.gif' width='25' height='25' border='0' alt='Apply filter'>"
195
		  End If
196
		  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 197
 
198
		  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
199
          Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "hideRipple=" & not hideRipple ) &"'>"
200
    		  If hideRipple Then
201
    		  	Response.write "<img src='images/RippleSquareOff.gif' width='25' height='25' border='0' title='Rippled Versions Hidden. Toggle'>"
202
    		  Else
203
    		    Response.write "<img src='images/RippleSquare.gif' width='25' height='25' border='0' title='Rippled Versions Shown. Toggle'>"
204
    		  End If
205
          Response.write "</a>"
206
 
119 ghuddy 207
		  %></td>
208
		  <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>
209
		  <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>
210
        </tr>
211
      </table>
212
	  <!--------------------- CAPTION ---------------------------->
213
	  <table width="100%" border="0" cellspacing="0" cellpadding="0">
214
	    <tr>
215
	      <td class="lbox_ttl_b" background="images/bg_action_dark.gif" align="center"><%=sPkg_Name%></td>
216
		</tr>
217
      </table>
218
	  <!------------------ VERSION LIST -------------------------->
219
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
220
        <tr>
221
          <td background="images/bg_action_norm.gif"> 
222
            <div id="LayerVersions" style="height: 350px; overflow: auto;" name="LayerVersions"> 
223
              <table width="100%" border="0" cellspacing="1" cellpadding="2">
224
                <tr>
225
                  <td width="1" nowrap background="images/bg_action_dark.gif"><img src="images/spacer.gif" width="15" height="10"></td>
226
                  <td width="1" nowrap background="images/bg_action_dark.gif">&nbsp;</td>
227
                  <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>
228
                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Mod. Date&nbsp;&nbsp;</td>
229
                  <td width="100%" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Reason for this version</td>
230
				  <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>
231
                  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
232
				  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
233
                </tr>
234
				<%
235
				Dim aVersions, lastRow, i, objSortHelper
236
 
237
 
238
				Set rsVB = OraDatabase.DbCreateDynaset( Get_All_Versions ( parPkg_id ), cint(0))
239
 
240
 
241
 
242
 
243
			  	' Descending order
244
				If rsVB.RecordCount > 0 Then
245
				aVersions = rsVB.GetRows()
246
				lastRow = UBound( aVersions, 2 )
247
 
248
				Set objSortHelper = New SortHelper
249
 
250
 
251
				' Sort versions
252
				Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsVB.FieldIndex("pkg_version") )
253
 
254
 
255
				DestroyPackage = ""
5061 dpurdie 256
				CanDestroyPackage = canShowControlInProject ( "DestroyPackage" )
119 ghuddy 257
 
258
			  	' Descending order
259
				For i = lastRow To 0 Step -1
4703 dpurdie 260
 
119 ghuddy 261
				%>
262
				<%	' Highlight row case
263
					rowColor = IMGBG_ROW
264
					imgPointer = ""
265
					If CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) = parPv_id Then 
266
						rowColor = IMGBG_ROW_HI
267
						imgPointer = IMG_PONTER
268
					End If
269
 
270
					' Official/Unofficial case
271
					imgLock = IMG_NOT_OFFICIAL
272
					'fieldRelease_Date = ""
273
					'fieldReleased_By = ""
274
					If (aVersions( rsVB.FieldIndex("dlocked"), i ) = "Y")  OR (aVersions( rsVB.FieldIndex("dlocked"), i ) = "A") Then
275
						imgLock = IMG_OFFICIAL
276
					End If
277
 
278
					fieldRelease_Date = EuroDateTime ( aVersions( rsVB.FieldIndex("modified_stamp"), i ) )
279
					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>"
280
 
281
					' Full Release Notes availability
282
					fieldDownloadFullReleaseNotes = ""
283
					If NOT IsNull( aVersions( rsVB.FieldIndex("release_notes_info"), i ) ) OR ( InStr( aVersions( rsVB.FieldIndex("release_notes_info"), i ), "MGS:") < 1)  Then
177 brianf 284
						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 285
					End If
286
 
287
					anchorName = "ANC_"& aVersions( rsVB.FieldIndex("pv_id"), i )
288
					If aVersions( rsVB.FieldIndex("is_patch"), i ) = "Y" Then
289
						URLstring = "_wform_versions_history_release_notes.asp?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
290
					Else
291
						URLstring = scriptName &"?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
292
					End If
293
 
294
 
295
					' Set destroy package action
296
					If CanDestroyPackage Then
5190 dpurdie 297
						DestroyPackage = "<a class='nogo' href='javascript:;'"&_
119 ghuddy 298
										 " title='Destroy this package from the database.' "&_
5190 dpurdie 299
										 " onClick=""return vixConfirm('You are about to destroy ["& sPkg_Name &" "& aVersions( rsVB.FieldIndex("pkg_version"), i ) &"].<p>You cannot undo this operation.<br>Do you want to proceed?', {button : 'Destroy', url : '_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 &"'});"" >" &_
300
                                         " <img src='icons/i_destroy_package_sml.gif' width='15' height='15' border='0' ><a>"
301
 
119 ghuddy 302
					End If
303
				%>
5190 dpurdie 304
                <tr <%=Set_Row_Style ( URLstring, CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) )%>> 
119 ghuddy 305
                  <td align="right" background="images/bg_action_dark.gif"><%=imgPointer%></td>
306
                  <td align="center" valign="top" <%=rowColor%>><%=imgLock%></td>
307
                  <td valign="top" nowrap <%=rowColor%>><a name="<%=anchorName%>"></a><a href="<%=URLstring%>" class="txt_linked"><%=aVersions( rsVB.FieldIndex("pkg_version"), i )%></a></td>
308
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldRelease_Date%></td>
309
                  <td valign="top" <%=rowColor%> class="form_item"><%=NewLine_To_BR ( To_HTML( aVersions( rsVB.FieldIndex("comments"), i ) ) )%></td>
310
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldReleased_By%></td>
311
                  <td align="center" valign="top" <%=rowColor%>><%=fieldDownloadFullReleaseNotes%></td>
5190 dpurdie 312
				  <td align="center" valign="top" class="nogo" <%=rowColor%>><%=DestroyPackage%></td>
119 ghuddy 313
                </tr>
314
				<%
315
				Next
316
				End If
317
				%>
318
              </table>
319
            </div></td>
320
        </tr>
321
      </table> 
322
	  <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
323
	  <input type="hidden" name="pkg_id" value="<%=parPkg_id%>">
324
	  <input type="hidden" name="rfile" value="<%=parRfile%>">
325
	  <input type="hidden" name="OLDpv_id" value="<%=parOLDpv_id%>">
1268 iaugusti 326
	  <input type="hidden" name="pv_id" value="<%=parPv_id%>">
119 ghuddy 327
	  <input type="hidden" name="filter_reset" value="">
328
	  </form>
329
 
330
 
5173 dpurdie 331