Subversion Repositories DevTools

Rev

Rev 5632 | Rev 5901 | Go to most recent revision | Details | Compare with Previous | 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'>"
5384 dpurdie 24
Const IMG_OFFICIAL = "<img src='images/i_locked.gif' width='7' height='10' hspace='5' vspace='2' title='Package has been Released'>"
25
Const IMG_NOT_OFFICIAL = "<img src='images/spacer.gif' width='7' height='10' hspace='5' vspace='2' title='Package not yet released'>"
119 ghuddy 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 = _
5759 dpurdie 52
	" SELECT DISTINCT PV.PV_ID," &_
53
    "   PV.PKG_VERSION," &_
54
    "   PV.DLOCKED," &_
55
    "   PV.MODIFIED_STAMP," &_
56
    "   USR.FULL_NAME," &_
57
    "   usr.user_name," &_
58
    "   USR.USER_EMAIL," &_
59
    "   PV.COMMENTS," &_
60
    "   PV.PKG_LABEL," &_
61
    "   PV.IS_PATCH," &_
62
    "   PV.RELEASE_NOTES_INFO," &_
63
    "   PV.BUILD_TYPE," &_
64
    "   pv.CREATOR_ID," &_
65
    "   pv.OWNER_ID," &_
66
    "   NVL2(rc.rtag_id,1,0) as inuse," &_
67
    "   trunc(SYSDATE - pv.CREATED_STAMP + 0.5) as age" &_
68
    " FROM PACKAGE_VERSIONS PV," &_
69
    "      USERS USR,"&_
70
    "      RELEASE_CONTENT rc" &_
71
	" WHERE PV.MODIFIER_ID = USR.USER_ID(+) " &_
72
	"   AND PV.PKG_ID = :PKG_ID" &_
73
    "   AND pv.pv_id = rc.pv_id(+)" &_
74
	"    /*-- Manual Filter --*/" &_
119 ghuddy 75
	"    "& Construct_Filter ( parFLpkg_version, "pv.pkg_version" ) &_
76
	"    "& Construct_Filter ( parFLuser_name, "usr.user_name" ) &_
4703 dpurdie 77
    "    "& rippleFilter &_
119 ghuddy 78
	"    /*------------------*/"
79
 
80
	Get_All_Versions = Replace( Get_All_Versions, ":PKG_ID", nPkg_id)
81
End Function
82
'-----------------------------------------------------------------------------------------------------------------------------------
83
Function Construct_Filter ( sPar_val, sCol_name )
84
	Select Case sPar_val
85
	Case Empty
86
		Construct_Filter = "AND "& sCol_name &" IS NULL"
87
 
88
	Case "*"
89
		Construct_Filter = ""
90
 
91
	Case Else
92
		If InStr( sPar_val, "*") > 0 Then
93
			' Asterisk found in string. Use LIKE
94
			Construct_Filter = "AND "& sCol_name &" LIKE '"& Replace( sPar_val, "*", "%" ) &"'"
95
		Else
96
			' No asterisk. Use =
97
			Construct_Filter = "AND "& sCol_name &" = '"& sPar_val &"'"
98
		End If
99
 
100
	End Select
101
 
102
End Function
103
'-----------------------------------------------------------------------------------------------------------------------------------
104
Function Is_Filter_In_Use ( sFilters )
105
	Dim filters, filterName
106
	Is_Filter_In_Use = FALSE
107
 
108
	filters = Split( Replace( sFilters, " ", "" ), "," )
109
 
110
	For Each filterName In filters
111
		If Request( filterName ) <> "*" Then 
112
			Is_Filter_In_Use = TRUE
113
			Exit For
114
		End If
115
	Next
116
 
117
End Function
118
'-----------------------------------------------------------------------------------------------------------------------------------
5190 dpurdie 119
Function Set_Row_Style ( sLink, pvid )
120
	Set_Row_Style = "onMouseOver='this.style.cursor=""pointer""' onClick='selectVersion("""& sLink &""",event)' "
121
End Function
122
'-----------------------------------------------------------------------------------------------------------------------------------
119 ghuddy 123
%>
5173 dpurdie 124
<!--#include file="_jquery_includes.asp"-->
125
<script language="JavaScript" type="text/JavaScript">
126
function useThisVersion (pkgName, pkgVersion, rtagId, oldPvid, newPvid) {
127
    console.log("useThisVersion:", pkgName, pkgVersion);
128
    debugger;
129
    //alert ("Use this version");
130
    $( "#dialog-confirm" ).dialog({
131
      position: { my: "top", at: "top+100", of: window },
132
      modal: true,
133
      draggable: true,
134
      resizable: true,
135
      dialogClass: "rounded_box",
136
      height:250,
137
      width:350,
138
      buttons: {
139
        "Direct": function() {
140
          window.opener.document.location="_new_version.asp?OLDpv_id=" + oldPvid + "&rtag_id=" + rtagId + "&pv_id=" + newPvid
141
          self.close();
142
          $( this ).dialog( "close" );
143
        },
144
        "Pending": function() {
145
          window.opener.document.location="_new_version.asp?OLDpv_id=" + oldPvid + "&rtag_id=" + rtagId + "&pv_id=" + newPvid + '&iMode=pending';
146
          self.close();
147
          $( this ).dialog( "close" );
148
        },
149
        Cancel: function() {
150
          $( this ).dialog( "close" );
151
        }
152
      },
153
      open: function() {
154
          $(this).siblings('.ui-dialog-buttonpane').find('button:eq(2)').focus(); 
155
      }
156
    });
157
 
158
    return false;
159
}
5190 dpurdie 160
 
161
//  This function is invoked when the user clicks within a row
162
//  The click will re-load and reposition the verion history to the selected version
163
//  The problem is that the 'Destroy Version' intercats with this.
164
//  Solution: The DestroyVersin is an image within an anchor. 
165
//            If the anchor has a class of nogo, then don't navigate
166
function selectVersion(href,event)
167
{
168
    if (! $(event.target).closest('a').hasClass('nogo')) {
169
        location.href = href;
170
    }
171
}
172
 
5173 dpurdie 173
//# sourceURL=_version_browser_1.asp	
174
</script>
175
 
119 ghuddy 176
	  <!--------------- ACTION BUTTONS -------------------------->
177
	  <form name="filter" method="get" action="<%=scriptName%>">
178
	  <table width="100%" border="0" cellspacing="0" cellpadding="0">
179
        <tr>
180
          <td width="1" valign="middle" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="5" height="35"></td>
181
          <td width="100%" valign="middle" background="images/bg_action_norm.gif"><%
5082 dpurdie 182
          Dim bEnableUse : bEnableUse = FALSE
119 ghuddy 183
		  If Request("rtag_id") = ""  OR  _
184
		  	 Request("pv_id") = "" OR _
5173 dpurdie 185
             parOLDpv_id = ParPv_id OR _
119 ghuddy 186
			 bIsPatch OR _
5082 dpurdie 187
             (NOT bCanInsertPkg) OR _
119 ghuddy 188
			 (NOT objAccessControl.UserLogedIn) OR _
5178 dpurdie 189
             (NOT releaseIsWritable(ReleaseMode))  _
119 ghuddy 190
		  Then
5082 dpurdie 191
                bEnableUse = FALSE
119 ghuddy 192
		  Else
5082 dpurdie 193
                bEnableUse = TRUE
119 ghuddy 194
		  End If
5082 dpurdie 195
 
196
          If bEnableUse Then
5173 dpurdie 197
          %>
198
          <div id='dialog-confirm' title="Confirm version change" style="display:none">
199
          <p>Replace the current version of package <%=sPkg_Name%> with Version <%=sPkg_Version%>.
200
          <p>The new version may be added directly into the release or the change may be made pending. 
201
          </div>
202
          <%
203
            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 204
          Else
205
		    Response.write "<img src='images/abtn_use_this_version_off.gif' width='108' height='26' hspace='1' border='0'>"
206
          End If
119 ghuddy 207
 
208
		  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
209
		  If filterInUse Then
210
		  	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!)'>"
211
		  Else
212
		    Response.write "<input type='image' name='btn' src='images/abtn_filter.gif' width='25' height='25' border='0' alt='Apply filter'>"
213
		  End If
214
		  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 215
 
216
		  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
217
          Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "hideRipple=" & not hideRipple ) &"'>"
218
    		  If hideRipple Then
219
    		  	Response.write "<img src='images/RippleSquareOff.gif' width='25' height='25' border='0' title='Rippled Versions Hidden. Toggle'>"
220
    		  Else
221
    		    Response.write "<img src='images/RippleSquare.gif' width='25' height='25' border='0' title='Rippled Versions Shown. Toggle'>"
222
    		  End If
223
          Response.write "</a>"
224
 
119 ghuddy 225
		  %></td>
226
		  <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>
227
		  <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>
228
        </tr>
229
      </table>
230
	  <!--------------------- CAPTION ---------------------------->
231
	  <table width="100%" border="0" cellspacing="0" cellpadding="0">
232
	    <tr>
233
	      <td class="lbox_ttl_b" background="images/bg_action_dark.gif" align="center"><%=sPkg_Name%></td>
234
		</tr>
235
      </table>
236
	  <!------------------ VERSION LIST -------------------------->
237
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
238
        <tr>
239
          <td background="images/bg_action_norm.gif"> 
240
            <div id="LayerVersions" style="height: 350px; overflow: auto;" name="LayerVersions"> 
241
              <table width="100%" border="0" cellspacing="1" cellpadding="2">
242
                <tr>
243
                  <td width="1" nowrap background="images/bg_action_dark.gif"><img src="images/spacer.gif" width="15" height="10"></td>
244
                  <td width="1" nowrap background="images/bg_action_dark.gif">&nbsp;</td>
245
                  <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>
246
                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Mod. Date&nbsp;&nbsp;</td>
247
                  <td width="100%" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Reason for this version</td>
248
				  <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>
249
                  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
250
				  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
251
                </tr>
252
				<%
253
				Dim aVersions, lastRow, i, objSortHelper
254
 
255
 
256
				Set rsVB = OraDatabase.DbCreateDynaset( Get_All_Versions ( parPkg_id ), cint(0))
257
 
258
 
259
 
260
 
261
			  	' Descending order
262
				If rsVB.RecordCount > 0 Then
263
				aVersions = rsVB.GetRows()
264
				lastRow = UBound( aVersions, 2 )
265
 
266
				Set objSortHelper = New SortHelper
267
 
268
 
269
				' Sort versions
270
				Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsVB.FieldIndex("pkg_version") )
271
 
5061 dpurdie 272
				CanDestroyPackage = canShowControlInProject ( "DestroyPackage" )
119 ghuddy 273
 
274
			  	' Descending order
275
				For i = lastRow To 0 Step -1
4703 dpurdie 276
 
119 ghuddy 277
				%>
278
				<%	' Highlight row case
279
					rowColor = IMGBG_ROW
280
					imgPointer = ""
281
					If CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) = parPv_id Then 
282
						rowColor = IMGBG_ROW_HI
283
						imgPointer = IMG_PONTER
284
					End If
285
 
286
					' Official/Unofficial case
287
					imgLock = IMG_NOT_OFFICIAL
288
					'fieldRelease_Date = ""
289
					'fieldReleased_By = ""
290
					If (aVersions( rsVB.FieldIndex("dlocked"), i ) = "Y")  OR (aVersions( rsVB.FieldIndex("dlocked"), i ) = "A") Then
291
						imgLock = IMG_OFFICIAL
292
					End If
293
 
5632 dpurdie 294
					fieldRelease_Date = DisplayShortDateTime ( aVersions( rsVB.FieldIndex("modified_stamp"), i ) )
119 ghuddy 295
					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>"
296
 
297
					' Full Release Notes availability
298
					fieldDownloadFullReleaseNotes = ""
299
					If NOT IsNull( aVersions( rsVB.FieldIndex("release_notes_info"), i ) ) OR ( InStr( aVersions( rsVB.FieldIndex("release_notes_info"), i ), "MGS:") < 1)  Then
177 brianf 300
						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 301
					End If
302
 
303
					anchorName = "ANC_"& aVersions( rsVB.FieldIndex("pv_id"), i )
304
					If aVersions( rsVB.FieldIndex("is_patch"), i ) = "Y" Then
305
						URLstring = "_wform_versions_history_release_notes.asp?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
306
					Else
307
						URLstring = scriptName &"?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
308
					End If
309
 
5759 dpurdie 310
                    ' User can try to delete package iff
311
                    '   Have suffiecient access (unusual)
312
                    '   They created it or own it
313
                    '   The version is not in use by any release (allow to be in pendinf or WIP)
314
                    '   [Not at the moment] The package was created less than xxxx days ago
315
                    '   Is not locked or Approved for Autobuild
316
                    If CanDestroyPackage = false Then
317
                        If  objAccessControl.UserId = aVersions( rsVB.FieldIndex("CREATOR_ID"), i ) OR objAccessControl.UserId = aVersions( rsVB.FieldIndex("OWNER_ID"), i )Then
318
                            If aVersions( rsVB.FieldIndex("inuse"), i ) = 0 Then
319
                                'If aVersions( rsVB.FieldIndex("age") , i ) < 1000 Then
320
                                    If aVersions( rsVB.FieldIndex("dlocked"), i ) <> "Y" Then
321
                                        If aVersions( rsVB.FieldIndex("dlocked"), i ) <> "A" Then
322
                                            CanDestroyPackage = true
323
                                        End If
324
                                    End If
325
                                'End If
326
                            End If
327
                        End If
328
                    End If
119 ghuddy 329
 
330
					' Set destroy package action
331
					If CanDestroyPackage Then
5190 dpurdie 332
						DestroyPackage = "<a class='nogo' href='javascript:;'"&_
119 ghuddy 333
										 " title='Destroy this package from the database.' "&_
5190 dpurdie 334
										 " 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 &"'});"" >" &_
335
                                         " <img src='icons/i_destroy_package_sml.gif' width='15' height='15' border='0' ><a>"
5759 dpurdie 336
                    Else
337
                        DestroyPackage = ""
119 ghuddy 338
					End If
339
				%>
5190 dpurdie 340
                <tr <%=Set_Row_Style ( URLstring, CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) )%>> 
119 ghuddy 341
                  <td align="right" background="images/bg_action_dark.gif"><%=imgPointer%></td>
342
                  <td align="center" valign="top" <%=rowColor%>><%=imgLock%></td>
343
                  <td valign="top" nowrap <%=rowColor%>><a name="<%=anchorName%>"></a><a href="<%=URLstring%>" class="txt_linked"><%=aVersions( rsVB.FieldIndex("pkg_version"), i )%></a></td>
344
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldRelease_Date%></td>
345
                  <td valign="top" <%=rowColor%> class="form_item"><%=NewLine_To_BR ( To_HTML( aVersions( rsVB.FieldIndex("comments"), i ) ) )%></td>
346
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldReleased_By%></td>
347
                  <td align="center" valign="top" <%=rowColor%>><%=fieldDownloadFullReleaseNotes%></td>
5190 dpurdie 348
				  <td align="center" valign="top" class="nogo" <%=rowColor%>><%=DestroyPackage%></td>
119 ghuddy 349
                </tr>
350
				<%
351
				Next
352
				End If
353
				%>
354
              </table>
355
            </div></td>
356
        </tr>
357
      </table> 
358
	  <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
359
	  <input type="hidden" name="pkg_id" value="<%=parPkg_id%>">
360
	  <input type="hidden" name="rfile" value="<%=parRfile%>">
361
	  <input type="hidden" name="OLDpv_id" value="<%=parOLDpv_id%>">
1268 iaugusti 362
	  <input type="hidden" name="pv_id" value="<%=parPv_id%>">
119 ghuddy 363
	  <input type="hidden" name="filter_reset" value="">
364
	  </form>
365
 
366
 
5173 dpurdie 367