Subversion Repositories DevTools

Rev

Rev 7395 | Rev 7457 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5357 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
Option explicit
4
Response.Expires = 0   ' always load the page, dont store
5
%>
6
<%
7
'=====================================================
8
'               Package Information
9
'=====================================================
10
%>
11
<!--#include file="common/conf.asp"-->
12
<!--#include file="common/globals.asp"-->
13
<!--#include file="common/formating.asp"-->
14
<!--#include file="common/qstr.asp"-->
15
<!--#include file="common/common_subs.asp"-->
16
<!--#include file="common/common_dbedit.asp"-->
17
<!--#include file="common/_popup_window_common.asp"-->
7286 dpurdie 18
<!--#include file="common/_form_window_common.asp"-->
5357 dpurdie 19
<%
20
' Set rfile parameter. This is a return page after Login
21
Call objPMod.StoreParameter ( "rfile", "fixed_issues.asp" )
22
'------------ ACCESS CONTROL ------------------
23
%>
24
<!--#include file="_access_control_login.asp"-->
25
<!--#include file="_access_control_general.asp"-->
26
<!--#include file="_access_control_project.asp"-->
27
<%
28
'------------ Variable Definition -------------
29
Dim parPv_id
30
Dim query
31
Dim rsQry, rsTemp
32
Dim checked
33
Dim FRdeployableYES, FRdeployableNO
7395 dpurdie 34
Dim FRs3SyncYES, FRs3SyncNO
5357 dpurdie 35
Dim pageIsEditable, criticalSectionIsEditable
36
Dim disableCriticalSectionEdit
37
Dim Query_String
38
Dim parVCSTag
39
Dim parBSName
40
Dim submit_action_url
41
Dim on_submit_validation
42
Dim sDefaultLabel, sLabel, sLabelReadOnly
43
Dim isWIP
44
'------------ Constants Declaration -----------
45
'------------ Variable Init -------------------
46
parPv_id = QStrPar("pv_id")
47
parVCSTag = QStrPar("vcs_tag")
48
parBSName = QStrPar("bs_name")
49
'----------------------------------------------
50
%>
51
<%
52
'----------------------------------------------------------------------------------------------------------------------
53
' Function to get the build standard name (eg. JATS) from a build standard ID
54
Function bs_name_from_bs_id( nBs_Id )
55
   Dim rsTemp, Query_String
56
 
57
   bs_name_from_bs_id = "NONE"
58
 
59
   If NOT IsNull(nBs_Id) Then
60
      Query_String = " SELECT * FROM build_standards WHERE bs_id = "& nBs_Id
61
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
62
      If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
63
         bs_name_from_bs_id = rsTemp("bs_name")
64
      End If
65
   End If
66
End Function
67
'----------------------------------------------------------------------------------------------------------------------
68
' Function to get the build standard ID from a build standard name (eg. JATS)
69
Function bs_id_from_bs_name( nBs_Name )
70
   Dim rsTemp, Query_String
71
 
72
   bs_id_from_bs_name = 0
73
 
74
   Query_String = " SELECT * FROM build_standards WHERE bs_name = '"& nBs_Name &"'"
75
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
76
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
77
      bs_id_from_bs_name = rsTemp("bs_id")
78
   End If
79
End Function
80
'----------------------------------------------------------------------------------------------------------------------
81
' Function to get the Version Control System type ID for ClearCase, based on the assumption that the TAG used for
82
' ClearCase is 'CC'
83
'Function get_clearcase_vcs_type_id()
84
'   Dim rsTemp, Query_String
85
'
86
'   Query_String = _
87
'   " SELECT * FROM VCS_TYPE WHERE tag = 'CC'"
88
'
89
'   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
90
'   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
91
'      get_clearcase_vcs_type_id = rsTemp("vcs_type_id")
92
'   Else
93
'      Call RaiseMsg(enum_MSG_ERROR, "Database is missing a VCS setting for Name: ClearCase, Tag: CC")
94
'   End If
95
'   rsTemp.Close
96
'   Set rsTemp = nothing
97
'End Function
98
 
99
'----------------------------------------------------------------------------------------------------------------------
100
' Function to get the Version Control System type ID for Subversion, based on the assumption that the TAG used for
101
' Subversion is 'SVN'
102
Function get_subversion_vcs_type_id()
103
   Dim rsTemp, Query_String
104
 
105
   Query_String = _
106
   " SELECT * FROM VCS_TYPE WHERE tag = 'SVN'"
107
 
108
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
109
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
110
      get_subversion_vcs_type_id = rsTemp("vcs_type_id")
111
   Else
112
      Call RaiseMsg(enum_MSG_ERROR, "Database is missing a VCS setting for Name: Subversion, Tag: SVN")
113
   End If
114
   rsTemp.Close
115
   Set rsTemp = nothing
116
End Function
117
 
118
'----------------------------------------------------------------------------------------------------------------------
119
' Function to get the Version Control System type ID for Uncontrolled, based on the assumption that the TAG used for
120
' ClearCase is 'UC'
121
Function get_uncontrolled_vcs_type_id()
122
   Dim rsTemp, Query_String
123
 
124
   Query_String = _
125
   " SELECT * FROM VCS_TYPE WHERE tag = 'UC'"
126
 
127
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
128
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
129
      get_uncontrolled_vcs_type_id = rsTemp("vcs_type_id")
130
   Else
131
      Call RaiseMsg(enum_MSG_ERROR, "Database is missing a VCS setting for Name: Uncontrolled, Tag: UC")
132
   End If
133
   rsTemp.Close
134
   Set rsTemp = nothing
135
End Function
7395 dpurdie 136
 
5357 dpurdie 137
'----------------------------------------------------------------------------------------------------------------------
7395 dpurdie 138
' Determine s3Sync State
139
'	This is a property of the release, more than of a package
140
'		Y, N, "<empty>"
141
Function getS3SyncState(nnRtagId, nnPvId)
142
	Dim rsTemp, Query_String
143
	getS3SyncState = ""
144
 
145
	If nnRtagId <> "" Then
146
	   Query_String = "Select NVL(S3SYNC, 'N') as S3SYNC from Release_Content where rtag_id = " & nnRtagId & " AND pv_id = " & nnPvId
147
 
148
	   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
149
       If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
150
			getS3SyncState = rsTemp("S3SYNC")
151
			If getS3SyncState <> "Y" Then getS3SyncState = "N"
152
	   End If
153
 
154
	   rsTemp.Close
155
	   Set rsTemp = nothing
156
	End If
157
End Function
158
 
159
'	Update the S3Sycn State, but only if th evalue has changed
160
Sub updateS3SyncState( nnRtagId, nnPvId, cState)
161
	Dim rsTemp, Query_String
162
 
163
	If nnRtagId <> "" Then
164
		Query_String = "Select S3SYNC from Release_Content where rtag_id = " & nnRtagId & " AND pv_id = " & nnPvId
165
		Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
166
 
167
        Dim Data: Data = rsTemp("S3SYNC")
168
		If IsNull(Data) Then Data = "N"
169
		cState = Iif( cState = 1 ,"Y", "N")
170
		If ( UCase(cState) <> UCase( Data ) ) Then
171
			rsTemp.Edit
172
			rsTemp.Fields("S3SYNC").Value = UCase(cState)
173
			rsTemp.Update
7417 dpurdie 174
 
175
			'   Indicate change to the build system
176
			'   May be overkill - perhaps a seperate field
177
            OraDatabase.ExecuteSQL ("BEGIN PK_RELEASE.SET_RELEASE_MODIFIED("& nnRtagId & "); END; ")
178
 
7395 dpurdie 179
		End If
180
 
181
		rsTemp.Close
182
		Set rsTemp = nothing
183
 
184
	End If
185
End Sub
186
 
187
'----------------------------------------------------------------------------------------------------------------------
5357 dpurdie 188
Sub Get_Form_Details( nPv_id, ByRef objDetails )
189
   Dim rsTemp, Query_String
190
 
191
'   Dim CC_vcs_type_id
192
   Dim SVN_vcs_type_id
193
   Dim UC_vcs_type_id
194
 
195
   ' Get VCS type IDs to use when evaluating legacy rows created before the introduction of the VCS tables and logic.
196
   ' These get uses in the query (see below) in the CASE statement.
197
'   CC_vcs_type_id = get_clearcase_vcs_type_id()
198
   SVN_vcs_type_id = get_subversion_vcs_type_id
199
   UC_vcs_type_id = get_uncontrolled_vcs_type_id()
200
 
201
   Query_String = _
202
   " SELECT pkg.pkg_name, pv.pkg_version, pv.pkg_label, pv.src_path, pv.pv_description,"&_
203
   "        pv.pv_overview, pv.v_ext, is_deployable, is_build_env_required, pv.build_type,"&_
204
   "        pv.change_type, pv.bs_id, pv.dlocked,"&_
205
   "        (CASE WHEN pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN "& UC_vcs_type_id &_
206
   "              WHEN pv.vcs_type_id IS NULL THEN " & SVN_vcs_type_id &_
207
   "              ELSE pv.vcs_type_id END) AS vcs_type_id "&_
208
   "   FROM package_versions pv, packages pkg"&_
209
   "  WHERE pv.pkg_id = pkg.pkg_id"&_
210
   "    AND pv_id = "& nPv_id
211
 
212
 
213
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
214
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
215
      objDetails.Item("pkg_name")              = rsTemp("pkg_name")
216
      objDetails.Item("pkg_version")           = rsTemp("pkg_version")
217
      objDetails.Item("pkg_label")             = rsTemp("pkg_label")
218
      objDetails.Item("src_path")              = rsTemp("src_path")
219
      objDetails.Item("pv_description")        = rsTemp("pv_description")
220
      objDetails.Item("pv_overview")           = rsTemp("pv_overview")
221
      objDetails.Item("v_ext")                 = rsTemp("v_ext")
222
      objDetails.Item("is_deployable")         = rsTemp("is_deployable")
223
      objDetails.Item("is_build_env_required") = rsTemp("is_build_env_required")
224
      objDetails.Item("build_type")            = rsTemp("build_type")
225
      objDetails.Item("change_type")           = rsTemp("change_type")
226
      objDetails.Item("bs_id")                 = rsTemp("bs_id")
227
      objDetails.Item("dlocked")               = rsTemp("dlocked")
228
      objDetails.Item("vcs_type_id")           = rsTemp("vcs_type_id")
229
 
230
      rsTemp.Close
231
 
232
      ' This code allows the form to be altered by the user from the original build std configuration to a new
233
      ' one without having to update the database - we only want to do that when the user hits the
234
      ' submit button. The relevant fields in the objDetails are obtained in different ways accordingly.
235
      If IsNull(parBSName) OR parBSName = "" Then
236
         objDetails.Item("bs_name") = bs_name_from_bs_id( objDetails.Item("bs_id") )
237
      Else
238
         objDetails.Item("bs_id") = bs_id_from_bs_name( parBSName )
239
         objDetails.Item("bs_name") = parBSName
240
      End If
241
 
242
      ' Re-evaluate the is_build_env_required flag setting based on the possibly updated bs_name
243
      If UCase(objDetails.Item("bs_name")) = "NONE" Then
244
         objDetails.Item("is_build_env_required") = "N"
245
      Else
246
         objDetails.Item("is_build_env_required") = "Y"
247
      End If
248
 
249
      ' This code allows the form to be altered by the user from the original VCS configuration to a new
250
      ' one without having to update the database - we only want to do that when the user hits the
251
      ' submit button. The relevant fields in the objDetails are obtained in different ways accordingly.
252
      If IsNull(parVCSTag) OR parVCSTag = "" Then
253
         call vcs_info_from_vcs_type_id( objDetails.Item("vcs_type_id"), objDetails )
254
      Else
255
         call vcs_info_from_vcs_tag( parVCSTag, objDetails )
256
      End If
257
 
258
   End If
259
 
260
   rsTemp.Close
261
   Set rsTemp = Nothing
7395 dpurdie 262
 
263
   '
264
   '	Get other items needed for the form
265
   objDetails.Item("s3Sync") = getS3SyncState(parRtag_id, nPv_id)
266
 
5357 dpurdie 267
End Sub
268
'----------------------------------------------------------------------------------------------------------------------
269
' Updates the database, specifically the is_build_env_required flag setting in the package_versions table
270
' The update is only performed if it is needed, ie. if the value is already correct, no update is needed.
271
Sub UpdateIsBuildEnvRequired( nPv_id, nBs_name )
272
   Dim rsTemp, Query_String
273
 
274
   Query_String = _
275
   " SELECT bs_id, is_build_env_required"&_
276
   " FROM package_versions"&_
277
   " WHERE pv_id = "& nPv_id
278
 
279
   Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
280
 
281
   If (UCase(nBs_name) = "NONE") AND (IsNull(rsTemp("is_build_env_required")) OR (rsTemp("is_build_env_required") <> "N")) Then
282
      rsTemp.Edit
283
      rsTemp.Fields("bs_id").Value = rsTemp("bs_id")
284
      rsTemp.Fields("is_build_env_required").Value = "N"
285
      rsTemp.Update
286
   ElseIf (UCase(nBs_name) <> "NONE") AND (IsNull(rsTemp("is_build_env_required")) OR (rsTemp("is_build_env_required") <> "Y")) Then
287
      rsTemp.Edit
288
      rsTemp.Fields("bs_id").Value = rsTemp("bs_id")
289
      rsTemp.Fields("is_build_env_required").Value = "Y"
290
      rsTemp.Update
291
   End If
292
 
293
   rsTemp.Close
294
   Set rsTemp = nothing
295
End Sub
296
'----------------------------------------------------------------------------------------------------------------------
297
' Deletes the rows belonging to the current PV_ID, from the package_build_info table.
298
' This is normally done in preparation for updating the package_build_info table based on the latest
299
' (and possibly updated) build standard for the current PV_ID.
300
Sub DeletePackageBuildInfo( nPv_id )
301
 
302
   On Error Resume Next
303
   objEH.TryORA ( OraSession )
304
 
305
   OraDatabase.ExecuteSQL _
306
   "DELETE  FROM PACKAGE_BUILD_INFO WHERE PV_ID ="& nPv_id
307
 
308
   objEH.CatchORA ( OraSession )
309
 
310
End Sub
311
'----------------------------------------------------------------------------------------------------------------------
312
' Updates the vcs_type_id column for the current PV_ID, in the package_versions table.
313
' The update is only performed if it is necessary, ie. the user has changed the setting via the form, or the existing
314
' value is not yet assigned.
315
Sub UpdateVCS ( nPv_id, nVcs_type_id, nVcs_name, nVcs_tag )
316
   Dim rsTemp, Query_String
317
   Dim new_bs_id
318
 
319
   Query_String = _
320
   " SELECT vcs_type_id"&_
321
   " FROM package_versions"&_
322
   " WHERE pv_id = "& nPv_id
323
 
324
   Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
325
 
326
   ' compare new bs_id to existing bs_id to see if a change has been requested
327
   If nVcs_type_id <> rsTemp("vcs_type_id") OR IsNull(rsTemp("vcs_type_id")) Then
328
 
329
      'update fields
330
      rsTemp.Edit
331
      rsTemp.Fields("vcs_type_id").Value = nVcs_type_id
332
      rsTemp.Update
333
 
334
      Call Log_Action ( nPv_id, "vcs_type_id_update", "VCS Type ID Update: " & nVcs_name )
335
   End If
336
 
337
   rsTemp.Close
338
   Set rsTemp = nothing
339
End Sub
340
'----------------------------------------------------------------------------------------------------------------------
341
' Updates the bs_id column value for the current PV_ID in the package_versions table.
342
' The update is only performed if it is necessary, ie. the user has changed the setting via the form, or the existing
343
' value is not yet assigned.
344
Sub UpdateBuildStandard ( nPv_id, nBs_name )
345
   Dim rsTemp, Query_String
346
   Dim new_bs_id
347
 
348
   ' get the new bs_id from the bs_name parameter
349
   new_bs_id = bs_id_from_bs_name(nBs_name)
350
 
351
   Query_String = _
352
   " SELECT bs_id, is_build_env_required"&_
353
   " FROM package_versions"&_
354
   " WHERE pv_id = "& nPv_id
355
 
356
   Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
357
 
358
   ' compare new bs_id to existing bs_id to see if a change has been requested
359
   If new_bs_id <> rsTemp("bs_id") OR IsNull(rsTemp("bs_id")) Then
360
 
361
      'update fields
362
      rsTemp.Edit
363
      rsTemp.Fields("bs_id").Value = new_bs_id
364
 
365
      If UCase(nBs_name) = "NONE" Then
366
         rsTemp.Fields("is_build_env_required").Value = "N"
367
      Else
368
         rsTemp.Fields("is_build_env_required").Value = "Y"
369
      End If
370
      rsTemp.Update
371
 
372
      ' Clear out the build info table of entries for this PV_ID.
373
      Call DeletePackageBuildInfo(nPv_id)
374
 
375
      Call Log_Action ( nPv_id, "build_standard_update", "Build Standard Update: " & nBs_name )
376
   End If
377
 
378
   rsTemp.Close
379
   Set rsTemp = nothing
380
End Sub
381
'----------------------------------------------------------------------------------------------------------------------
382
' Updates the package_build_info table for the current PV_ID, based on the latest build_standard settings made
383
' by the user on the form
384
Sub UpdatePackageBuildInfo( NNpv_id )
385
   '--- Set Build Types ---
386
   Dim aBuildEnvList
387
   Dim OraParameter
388
   Dim nBuildMachine
389
 
390
   ' Before doing inserts for this PV_ID into the package_build_info table, we need to delete any existing
391
   ' rows for this PV_ID. This may have already been done if the user has changed the build standard, but
392
   ' there is no guarantee at this point that they have done that during this forms display.
393
   Call DeletePackageBuildInfo( NNpv_id )
394
 
395
   OraDatabase.Parameters.Add "PV_ID",  NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER
396
   OraDatabase.Parameters.Add "BM_ID",  0,       ORAPARM_INPUT, ORATYPE_NUMBER
397
   OraDatabase.Parameters.Add "BSA_ID", 0,       ORAPARM_INPUT, ORATYPE_NUMBER
398
 
399
   Set OraParameter = OraDatabase.Parameters
400
 
401
   aBuildEnvList = Split( Replace( Request("be_id_list"), " ", "" ) , ",")
402
 
403
   On Error Resume Next
404
   objEH.TryORA ( OraSession )
405
 
406
   For Each nBuildMachine In aBuildEnvList
407
 
408
      OraParameter("BM_ID").Value = nBuildMachine
409
      OraParameter("BSA_ID").Value = Request("build_type_comb_"& nBuildMachine)
410
 
411
      If Err.Number = 0 Then
412
         OraDatabase.ExecuteSQL("begin INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID ) "&_
413
                                " VALUES( :PV_ID, :BM_ID, :BSA_ID ); end;")
414
      End If
415
   Next
416
 
417
   objEH.CatchORA ( OraSession )
418
 
419
   OraDatabase.Parameters.Remove "PV_ID"
420
   OraDatabase.Parameters.Remove "BM_ID"
421
   OraDatabase.Parameters.Remove "BSA_ID"
422
End Sub
423
'----------------------------------------------------------------------------------------------------------------------
424
' This is the overall database update function called when the user hits the submit button on the form.
425
' It does some minor updates itself, but most of the work is done in subroutines.
426
' No attempt is made to keep the entire set of updates atomic. There really is no need to do that.
7395 dpurdie 427
Sub Update_Pkg_Info ( NNpv_id, NNdeployable, SSLabel, SSPath, SSdesc, SSoverview, NNs3Sync )
5357 dpurdie 428
   Dim rsTemp, Query_String
429
 
430
   On Error Resume Next
431
 
432
   Query_String = _
433
   " SELECT pkg_label, src_path, pv_description, pv_overview, is_deployable "&_
434
   " FROM package_versions"&_
435
   " WHERE pv_id = "& NNpv_id
436
 
437
   If SSdesc = "" Then SSdesc = NULL
438
   Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
439
 
440
   rsTemp.Edit
441
 
442
   ' Only update build critical sections (label, source path) if allowed
443
   If criticalSectionIsEditable Then
444
      rsTemp.Fields("pkg_label").Value = SSLabel
445
      rsTemp.Fields("src_path").Value = SSPath
446
   End If
447
 
448
   ' Update non-build critical sections
449
   rsTemp.Fields("pv_description").Value = SSdesc
450
   rsTemp.Fields("pv_overview").Value = SSoverview
451
 
452
   If NNdeployable = "1" Then
453
      rsTemp.Fields("is_deployable").Value = "Y"
454
   Else
455
      rsTemp.Fields("is_deployable").Value = NULL
456
   End If
457
 
458
   rsTemp.Update
459
 
460
   rsTemp.Close
461
   Set rsTemp = nothing
462
 
463
   ' Only update build critical sections if allowed
464
   If criticalSectionIsEditable Then
465
 
466
      ' Update the VCS if necessary for this PV_ID
467
      Call UpdateVCS( NNpv_id, objFormCollector.Item("vcs_type_id"), objFormCollector.Item("vcs_name"), objFormCollector.Item("vcs_tag") )
468
 
469
      ' Update the build standard if necessary for this PV_ID
470
      Call UpdateBuildStandard( NNpv_id, objFormCollector.Item("bs_name") )
471
 
472
      ' Update the 'is build_env_required' flag for this PV_ID
473
      Call UpdateIsBuildEnvRequired( NNpv_id, objFormCollector.Item("bs_name") )
474
 
475
      ' Update the package_build_info table for this PV_ID
476
      Call UpdatePackageBuildInfo( NNpv_id )
7395 dpurdie 477
 
478
	  ' Update the S3 Sync State
479
	  Call updateS3SyncState( parRtag_id, NNpv_id, NNs3Sync)
480
 
5357 dpurdie 481
   End If
482
End Sub
483
'----------------------------------------------------------------------------------------------------------------------
484
Function ShowHideBuildType( sBuildEnvChecked )
485
 
486
   ShowHideBuildType = "style='display:none;'"
487
 
488
   If (sBuildEnvChecked <> "") Then
489
      ShowHideBuildType = "style='display:block;'"
490
   End If
491
 
492
End Function
493
'----------------------------------------------------------------------------------------------------------------------
494
' Renders the HTML for the build standard addendum drop down list boxes, ie. Prod, Debug, Prod+Debug, Java 1.4, Java 1.5, etc.
495
Sub RenderBuildTypeCombo( nBuildAddendum, nBuildMachine, nBuildStandard )
496
 
497
   If nBuildStandard <> "" Then
498
       Query_String = "SELECT * FROM build_standards_addendum WHERE bs_id ="& nBuildStandard & " ORDER BY bsa_id DESC"
499
 
500
       'Response.Write Query_String
501
       Response.Write "<select name='build_type_comb_"& nBuildMachine &"' class='form_item'"& disableCriticalSectionEdit &">"
502
 
503
       Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
504
       While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
505
 
506
       If nBuildAddendum = rsTemp.Fields("bsa_id") Then
507
          Response.write "<option value='"& rsTemp.Fields("bsa_id") &"' selected>"& rsTemp.Fields("bsa_name") &"</option>"
508
       Else
509
          Response.write "<option value='"& rsTemp.Fields("bsa_id") &"'>"& rsTemp.Fields("bsa_name") &"</option>"
510
       End If
511
       rsTemp.MoveNext
512
       WEnd
513
       Response.Write "</select>"
514
 
515
       rsTemp.Close()
516
       Set rsTemp = nothing
517
   End If
518
End Sub
519
'----------------------------------------------------------------------------------------------------------------------
520
' Renders the HTML for the Version Control Settings drop down list box
521
Sub RenderVCSCombo(nTag)
522
 
523
   If IsNull(nTag) OR nTag = "" Then
524
    nTag = enum_VCS_SUBVERSION_TAG
525
   End If
526
 
527
   Query_String = "SELECT * FROM vcs_type ORDER BY name"
528
 
529
   Response.Write "<select id='vcs_name_combo' name='vcs_name_combo' class='form_item' "& disableCriticalSectionEdit &" onchange='vcs_changed();'>"
530
 
531
   Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
532
   While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
533
 
534
      If nTag = rsTemp.Fields("tag") Then
535
         Response.write "<option value='"& rsTemp.Fields("name") &"' selected>"& rsTemp.Fields("name") &"</option>"
536
      Else
537
         ' Add item to drop down only if it is not UC (uncontrolled). If it is UC, then only add it if the package
538
         ' version is a manual build type. It is not valid to allow autobuild packages to be uncontrolled (ie. the
539
         ' build (daemon) tool needs a label or something doesn't it?)
540
         If rsTemp.Fields("tag") <> enum_VCS_UNCONTROLLED_TAG OR objFormCollector.Item("build_type") = "M" Then
541
            Response.write "<option value='"& rsTemp.Fields("name") &"'>"& rsTemp.Fields("name") &"</option>"
542
         End If
543
      End If
544
      rsTemp.MoveNext
545
   WEnd
546
   Response.Write "</select>"
547
 
548
   ' Create a hidden combo containing tags instead of names - we can use this to get a tag for a name without
549
   ' doing a database query
7002 dpurdie 550
   Response.Write "<div id='div_vcs_tag_combo' name='div_vcs_tag_combo' style='visibility:hidden'>"
5357 dpurdie 551
   Response.Write "<select id='vcs_tag_combo' name='vcs_tag_combo' disabled hidden  class='form_item' "& disableCriticalSectionEdit &">"
552
   rsTemp.MoveFirst
553
   While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
554
      Response.write "<option value='"& rsTemp.Fields("tag") &"'>"& rsTemp.Fields("tag") &"</option>"
555
      rsTemp.MoveNext
556
   WEnd
557
   Response.Write "</select>"
5590 dpurdie 558
   Response.Write "</div>"
5357 dpurdie 559
 
560
   rsTemp.Close()
561
   Set rsTemp = nothing
562
End Sub
563
'----------------------------------------------------------------------------------------------------------------------
564
' Renders the HTML for the build standard drop down list box
565
'
566
' Typically, this drop down would contain ANT, JATS, and NONE, although ofcoarse this is dependant upon what data is
567
' present in the build_standards table of the database
568
Sub RenderBldStdCombo(nBldStdName)
569
 
570
   Query_String = "SELECT * FROM build_standards"
571
 
572
   Response.Write "<select id='bld_std_combo' name='bld_std_combo' class='form_item' "& disableCriticalSectionEdit &" onchange='bld_std_changed();'>"
573
 
574
   Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
575
   While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
576
 
577
      If nBldStdName = rsTemp.Fields("bs_name") Then
578
         Response.write "<option value='"& rsTemp.Fields("bs_name") &"' selected>"& rsTemp.Fields("bs_name") &"</option>"
579
      Else
580
         Response.write "<option value='"& rsTemp.Fields("bs_name") &"'>"& rsTemp.Fields("bs_name") &"</option>"
581
      End If
582
      rsTemp.MoveNext
583
   WEnd
584
   Response.Write "</select>"
585
   rsTemp.Close()
586
   Set rsTemp = nothing
587
End Sub
588
'----------------------------------------------------------------------------------------------------------------------
589
' Figures out what the url should be for when the form is submitted, ensuring that all of the paramters are present if
590
' need be. Note that the VCS and BSName parameters are optional. They will only be present if the user has made modifications
591
' to the respective drop down list boxes before submitting the form.
592
Sub Determine_submit_action_url ()
593
   ' Work out what the reload url should be for when the user hits the submit button
594
   If IsNull(parVCSTag) OR parVCSTag = "" Then
595
      If IsNull(parBSName) OR parBSName = "" Then
596
         submit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id
597
      Else
598
         submit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id & "&bs_name=" & parBSName
599
      End If
600
   Else
601
      If IsNull(parBSName) OR parBSName = "" Then
602
         submit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id & "&vcs_tag=" & parVCSTag
603
      Else
604
         submit_action_url = scriptName & "?pv_id=" & parPv_id & "&rtag_id=" & parRtag_id & "&vcs_tag=" & parVCSTag & "&bs_name=" & parBSName
605
      End If
606
   End If
607
End Sub
608
'----------------------------------------------------------------------------------------------------------------------
609
%>
610
<%
611
'------------------------------- RUN BEFORE PAGE RENDER ----------------------------
612
 
613
Call Get_Form_Details( parPv_id, objFormCollector )
614
 
615
'--- Access Control Setup ------------
616
pageIsEditable = Is_Page_Editable ( objFormCollector.Item ("dlocked") )
617
criticalSectionIsEditable = Is_Critical_Section_Editable ( objFormCollector.Item("dlocked") )
618
isWIP = PackageExists(parRtag_id,parPv_id,"work_in_progress")
619
 
620
If criticalSectionIsEditable then
621
   disableCriticalSectionEdit = ""
622
Else
623
   disableCriticalSectionEdit = "disabled"
624
End If
625
 
626
'--- Process Submission ---------------
627
If objForm.IsPostBack Then
628
      ' has the user pressed the submit button?
5596 dpurdie 629
    If Request("btn") = "Submit" Then
7395 dpurdie 630
        Call Update_Pkg_Info ( parPv_id, QStrPar("FRdeployable"), QStrPar("FRlabel"), QStrPar("FRpath"), QStrPar("pv_description"), QStrPar("pv_overview"), QStrPar("FRs3Sync") )
5596 dpurdie 631
        Call OpenInParentWindow ( "fixed_issues.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"&hidenv=true" )
632
        Call CloseWindow
5957 dpurdie 633
        Call Destroy_All_Objects
5596 dpurdie 634
        Response.End
5357 dpurdie 635
   End If
636
End If
637
 
638
' Determine the URL to use when and if this form is refreshed using F5, or when a user changes the
639
' values in one of the drop down lists and the form is reloaded with additional or changed parameters
640
' The html form will use the result of this in its action tag.
641
Call Determine_submit_action_url()
642
 
643
'--------------------------------------------------------------------------------------------
644
%>
645
<html>
646
<head>
647
<title>Release Manager</title>
648
<link rel="shortcut icon" href="<%=FavIcon%>"/>
649
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
650
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6579 dpurdie 651
<link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css">
652
<link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css">
653
<script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script>
5357 dpurdie 654
<!-- TIPS -->
6579 dpurdie 655
<script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script>
656
<script language="JavaScript" src="images/_help_tips.js?ver=<%=VixVerNum%>"></script>
5357 dpurdie 657
<script language="JavaScript" type="text/javascript">
658
<!--
5596 dpurdie 659
//  Validate tags on window load
660
window.onload = function(e)
661
{
662
<%If (objFormCollector.Item("vcs_tag") = enum_VCS_SUBVERSION_TAG) AND criticalSectionIsEditable Then%>
663
    validateSvnPath();
664
    validateSvnTag();
665
<%End If%>
5357 dpurdie 666
 
7379 dpurdie 667
<%If (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) AND criticalSectionIsEditable Then%>
668
    validateGitPath();
669
    validateGitTag();
670
<%End If%>
671
 
5596 dpurdie 672
<%If (objFormCollector.Item("vcs_tag") = enum_VCS_CLEARCASE_TAG) AND criticalSectionIsEditable Then%>
673
    validateCCPath();
674
    validateCCLabel();
675
<%End If%>
676
 
677
    validateDesc();
678
    validateOverview();
679
}
680
 
5357 dpurdie 681
// This function is the onchange event handler for the Version Control System drop down list box.
682
// It will re-format the web page URL to pass the vcs_tag paramter reflecting the users choice in the drop down list,
683
// and submit the form using the updated URL.
684
function vcs_changed() {
685
   var f = document.getElementById('pkginfo');
686
   if (f == null) {
687
      alert('Javascript Error : Failed to get pkginfo');
688
   }
689
   else {
690
 
691
      var nc = document.getElementById('vcs_name_combo');
692
      if (nc == null) {
693
         alert('Javascript Error : Failed to get vcs_name_combo');
694
      }
695
      else {
696
         var tc = document.getElementById('vcs_tag_combo');
697
         if (tc == null) {
698
            alert('Javascript Error : Failed to get vcs_tag_combo');
699
         }
700
         else {
701
            // Form the new URL with the updated VCS tag passed as a parameter
702
            <%If IsNull(parBSName) OR parBSName = "" Then%>
703
               f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&vcs_tag=" + tc.options[nc.selectedIndex].value;
704
            <%Else%>
705
               f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&bs_name=<%=parBSName%>&vcs_tag=" + tc.options[nc.selectedIndex].value;
706
            <%End If%>
707
 
708
            f.submit();
709
         }
710
      }
711
   }
712
}
713
 
714
// This function is the onchange event handler for the Build Standard drop down list box.
715
// It will re-format the web page URL to pass the vcs_tag paramter reflecting the users choice in the drop down list,
716
// and submit the form using the updated URL.
717
function bld_std_changed() {
718
   var f = document.getElementById('pkginfo');
719
   if (f == null) {
720
      alert('Javascript Error : Failed to get pkginfo');
721
   }
722
   else {
723
      var nc = document.getElementById('bld_std_combo');
724
      if (nc == null) {
725
         alert('Javascript Error : Failed to get bld_std_combo');
726
      }
727
      else {
728
         // Form the new URL with the updated build standard name passed as a parameter
729
         <%If IsNull(parVCSTag) OR parVCSTag = "" Then%>
730
            f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&bs_name=" + nc.options[nc.selectedIndex].value;
731
         <%Else%>
732
            f.action = "_wform_pkg_info.asp?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>&vcs_tag=<%=parVCSTag%>&bs_name=" + nc.options[nc.selectedIndex].value;
733
         <%End If%>
734
 
735
         f.submit();
736
      }
737
   }
738
}
5596 dpurdie 739
//
740
//  Update the Build Enviroment Display
741
//  Generic is not allowed to be checked if any of the others are checked
742
//  If Generic is ticked - then untick all others and hide associated combobox
743
//  If Generic is not ticked - the untick Generic and hide associated combobox
744
function UpdateBeDisplay(me, targetId)
745
{
746
    // Toggle related target id
747
    ToggleDisplay(targetId);
5357 dpurdie 748
 
5596 dpurdie 749
    if (me.checked) {
750
        // Handle Generic changes
751
        isGeneric = me.getAttribute("data-generic");
752
        items = document.getElementsByName("be_id_list");
753
        if (isGeneric){
754
            // Generic item has been checked
755
            for(idx = 0;idx < items.length; idx++){
756
                item = items[idx];
757
                if ( item != me ) {
758
                    item.checked = false;
759
                    target = item.getAttribute("data-target-id");
760
                    el = document.getElementById(target);
761
                    el.style.display = 'none';  
762
                }
763
            }
764
        } else {
765
            for(idx = 0;idx < items.length; idx++){
766
                item = items[idx];
767
                itemGeneric = item.getAttribute("data-generic");
768
                if(itemGeneric) {
769
                    item.checked = false;
770
                    target = item.getAttribute("data-target-id");
771
                    el = document.getElementById(target);
772
                    el.style.display = 'none';   
773
                }
774
            }
775
        }
776
    }
777
}
778
 
779
var bPathOk = true;
780
var bLabelOk = true;
781
var bDescOk = true;
782
var bOverview = true;
783
 
784
function validateDesc()
785
{
786
    document.MM_returnValue = true;
787
    document.MM_error = "";
788
 
789
    e = MM_findObj('pv_description');
790
    if ( e.value.length )
791
        MM_validateForm('--Silent','--NoPrefix','pv_description','Package Description','minLength:10');
792
 
793
    bDescOk = document.MM_returnValue;
794
    setIdText('descErr',document.MM_error);
795
    parent.resizeIframe(); 
796
}
797
 
798
function validateOverview()
799
{
800
    document.MM_returnValue = true;
801
    document.MM_error = "";
802
 
803
    e = MM_findObj('pv_overview');
804
    if ( e.value.length )
805
        MM_validateForm('--Silent','--NoPrefix','pv_overview','Package Overview','minLength:20');
806
 
807
    bOverview = document.MM_returnValue;
808
    setIdText('viewErr',document.MM_error);
809
    parent.resizeIframe(); 
810
}
811
 
812
//  Validate the SVN Path
813
//
814
function validateSvnPath()
815
{
816
    document.MM_returnValue = true;
817
    document.MM_error = "";
818
 
819
    e = MM_findObj('FRpath');
6300 dpurdie 820
    if ( e.value.length ) {
5596 dpurdie 821
        MM_validateForm('--Silent','--NoPrefix','FRpath','Source Path','RisSVNPath');
6300 dpurdie 822
        if ( !document.MM_error ) {
823
            if ( e.value.indexOf('AUPERASVN0X/') != -1 ||   e.value.indexOf('/RepoName/') != -1 ) {
824
                document.MM_error = "Example path cannot be used";
825
                document.MM_returnValue = false;
826
            }
827
        }
828
    }
5596 dpurdie 829
 
830
    bPathOk = document.MM_returnValue;
831
    setIdText('svnPathErr',document.MM_error);
832
    parent.resizeIframe(); 
833
}
834
 
835
//  Validate the SVN Tag
836
//
837
function validateSvnTag()
838
{
839
    document.MM_returnValue = true;
840
    document.MM_error = "";
841
 
842
    e = MM_findObj('FRlabel');
843
    if ( e.value.length )
844
        MM_validateForm('--Silent','--NoPrefix','FRlabel','Subversion Tag','RisSVNTag');
845
 
846
    bLabelOk = document.MM_returnValue;
847
    setIdText('svnTagErr',document.MM_error);
848
<%If (objFormCollector.Item("build_type") = "M" ) Then%>
849
    if(bLabelOk){
850
        MM_validateForm('--Silent','FRlabel','Subversion Tag','RisSVNPegTag');
851
        bLabelOk = document.MM_returnValue;
852
        setIdText('svnTagErr',document.MM_error);
853
    }
854
<%End If%>
855
    parent.resizeIframe(); 
856
}
857
 
7379 dpurdie 858
//  Validate the GIT Path
859
//
860
function validateGitPath()
861
{
862
    document.MM_returnValue = true;
863
    document.MM_error = "";
864
 
865
    e = MM_findObj('FRpath');
866
    if ( e.value.length ) {
867
        MM_validateForm('--Silent','--NoPrefix','FRpath','Source Path','RisGITPath');
868
        if ( !document.MM_error ) {
869
            if ( e.value.indexOf('VIXGIT0X/') != -1 ||   e.value.indexOf('/RepoName/') != -1 ) {
870
                document.MM_error = "Example path cannot be used";
871
                document.MM_returnValue = false;
872
            }
873
        }
874
    }
875
 
876
    bPathOk = document.MM_returnValue;
877
    setIdText('gitPathErr',document.MM_error);
878
    parent.resizeIframe(); 
879
}
880
 
881
//  Validate the GIT Tag
882
//
883
function validateGitTag()
884
{
885
    document.MM_returnValue = true;
886
    document.MM_error = "";
887
 
888
    e = MM_findObj('FRlabel');
889
    if ( e.value.length )
890
        MM_validateForm('--Silent','--NoPrefix','FRlabel','Git Tag','RisGITTag');
891
 
892
    bLabelOk = document.MM_returnValue;
893
    setIdText('gitTagErr',document.MM_error);
894
<%If (objFormCollector.Item("build_type") = "M" ) Then%>
895
    if(bLabelOk){
896
        MM_validateForm('--Silent','FRlabel','Git Tag','RisGITPegTag');
897
        bLabelOk = document.MM_returnValue;
898
        setIdText('gitTagErr',document.MM_error);
899
    }
900
<%End If%>
901
    parent.resizeIframe(); 
902
}
903
 
5596 dpurdie 904
//  Validate the CC Path
905
//
906
function validateCCPath()
907
{
908
    document.MM_returnValue = true;
909
    document.MM_error = "";
910
 
911
    e = MM_findObj('FRpath');
912
    if ( e.value.length)
913
        MM_validateForm('--Silent','--NoPrefix','FRpath','Source Path','RisCCPath');
914
    bPathOk = document.MM_returnValue;
915
    setIdText('ccPathErr',document.MM_error);
916
    parent.resizeIframe(); 
917
}
918
 
919
//  Validate the CC Label
920
//
921
function validateCCLabel()
922
{
923
    document.MM_returnValue = true;
924
    document.MM_error = "";
925
 
926
    e = MM_findObj('FRlabel');
927
    if ( e.value.length)
928
        MM_validateForm('--Silent','--NoPrefix','FRlabel','Label','RisCCLabel');
929
 
930
    bLabelOk = document.MM_returnValue;
931
    setIdText('ccLabelErr',document.MM_error);
932
    parent.resizeIframe();
933
}
934
 
935
//  Show/Hide error message in specified element
936
function setIdText(id, text) {
937
    var element = document.getElementById(id);
938
    if ( element ) {
939
    while (element.firstChild!==null)
940
        element.removeChild(element.firstChild); // remove all existing content
941
        if(text){
942
            element.appendChild(document.createTextNode(text));
943
            element.style.display = 'block';
944
        }
945
        else {
946
            element.style.display = 'none';
947
        }
948
    }
949
    updateSubmit(); 
950
}
951
 
952
// Enable/disable the submit button
953
// Based on the state of bPathOk and bLabelOk
954
function updateSubmit(){
955
    var element = document.getElementById('btn_submit');
956
    if ( element ) {
957
        element.disabled = !(bPathOk && bLabelOk && bOverview && bDescOk);
958
        if (element.disabled) {
959
            removeClass(element, 'form_btn_comp');
960
            addClass(element, 'form_btn_comp_disabled');
961
        } else {
962
            removeClass(element, 'form_btn_comp_disabled') ;
963
            addClass(element, 'form_btn_comp');
964
        }
965
    }
966
}
967
 
968
 
5357 dpurdie 969
// This function will replace back slashes with forward slashes and can be used with an onchange event on fields
970
// where back slashes may be entered
971
function replace_back_slashes(e) {
972
   strip_whitespace(e);
973
   var str = e.value;
974
   e.value = str.replace(/\\/g,"/");
975
}
976
 
977
function strip_whitespace(e) {
978
   var str = e.value;
979
   str = str.replace(/^\s+/,"");
980
   e.value =  str.replace(/\s+$/,"");
981
}
982
 
7379 dpurdie 983
//
984
//  Local form tips
985
formTips.tips.deployable           = newTip(-150, 20, 150, 10, 'DEPLOYABLE','Select YES if this package or certain files of this package have to be deployed to the field.');
7417 dpurdie 986
formTips.tips.s3Sync               = newTip(-150, 20, 150, 10, 'SYNC to S3','Select YES if this package contains an S3Tranfer.json file.<p>'+
7395 dpurdie 987
                                                               'The files in this section will be synced to an S3 bucket, if the S3Sync is enabled on the Release.<p>'+
988
															   'The target bucket name is based on the rtagId'+'<p>Cannot be altered until the package has been released');
7379 dpurdie 989
formTips.tips.pkg_info_short_desc  = newTip(-150, 20, 150, 10, 'SHORT DESCRIPTION','Describe the meaning of the package name.');
990
formTips.tips.pkg_info_overview    = newTip(-150, 20, 150, 10, 'PACKAGE OVERVIEW','Describe in a paragraph what does the package do.<br>NOTE: You have to do this only once!');
991
formTips.tips.build_environment    = newTip(-150, 20, 150, 10, 'BUILD ENVIRONMENT','Select which build environments are used to build this package.');
992
 
993
 
994
formTips.tips.pkg_label            = newTip(-150, 20, 150, 10, 'LABEL','Enter the ClearCase label used to tag all the source code in this release.');
995
formTips. tips.src_path             = newTip(-180, 20, 180, 10, 'SOURCE PATH','Enter the path to the source code in a ClearCase VOB. This is used to create a "load rule". ie: /MASS_Dev/%package_name%');
996
 
997
formTips.tips.svn_source_path      = newTip(-180, 20, 180, 10,  'SUBVERSION SOURCE PATH',
998
                                                        'Enter the Subversion path to the development branch of the package. <p>The first element will be a symbolic repository reference. '+
999
                                                        '<p>The last element will be the packages development branch - which may be the trunk.');
1000
 
1001
formTips.tips.svn_tag              = newTip(-180, 20, 180, 10,  'SUBVERSION TAG',
1002
                                                        'Enter the Subversion tag. This is a named directory within the packages \'tags\' directory. It may be pegged.');
1003
 
1004
formTips.tips.git_source_path      = newTip(-180, 20, 180, 10,  'GIT SOURCE PATH',
1005
                                                        'Enter the GIT path to the development branch of the package. <p>The first element will be a symbolic repository reference. '+
1006
                                                        '<p>The last element will be the packages main release branch - which may be \'master\' or a project name.');
1007
 
1008
formTips.tips.git_tag              = newTip(-180, 20, 180, 10,  'GIT TAG',
1009
                                                        'Enter a GIT tag or SHA-1 commit identifier.');
5357 dpurdie 1010
//-->
1011
</script>
1012
</head>
1013
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="self.focus();">
5596 dpurdie 1014
<form id="pkginfo" name="pkginfo" method="post" onSubmit="return document.MM_returnValue;" action="<%=submit_action_url%>" class="form_tight">
5590 dpurdie 1015
   <table border="0" cellspacing="0" cellpadding="2">
5357 dpurdie 1016
      <tr>
7002 dpurdie 1017
         <td nowrap class="wform_ttl">
1018
            <table width="100%" border="0" cellspacing="1" cellpadding="2" class=lhsGrey>
5357 dpurdie 1019
               <tr>
7002 dpurdie 1020
                  <td nowrap>Package</td>
1021
                  <td nowrap><%=objFormCollector.Item("pkg_name") &" "& objFormCollector.Item("pkg_version")%></td>
5357 dpurdie 1022
               </tr>
1023
               <tr>
7002 dpurdie 1024
                  <td nowrap>Deployable?<%=Quick_Help ( "deployable" )%></td>
5357 dpurdie 1025
                  <%
1026
                  FRdeployableYES = ""
1027
                  FRdeployableNO = ""
1028
 
1029
                  If objForm.IsPostBack Then
1030
                     If Request("FRdeployable") = "1" Then
1031
                        FRdeployableYES = "checked"
1032
                     Else
1033
                        FRdeployableNO = "checked"
1034
                     End If
1035
 
1036
                  Else
1037
                     If objFormCollector.Item("is_deployable") = enumDB_YES Then
1038
                        FRdeployableYES = "checked"
1039
                     Else
1040
                        FRdeployableNO = "checked"
1041
                     End If
1042
 
1043
                  End If
1044
                  %>
7002 dpurdie 1045
                  <td nowrap>Yes<input name="FRdeployable" type="radio" value="1" <%=FRdeployableYES%>>
5357 dpurdie 1046
                  &nbsp;&nbsp;No<input name="FRdeployable" type="radio" value="0" <%=FRdeployableNO%>></td>
1047
               </tr>
7395 dpurdie 1048
<%If parRtag_id <> "" Then%>
5357 dpurdie 1049
               <tr>
7395 dpurdie 1050
                  <td nowrap>Sync to S3?<%=Quick_Help ( "s3Sync" )%></td>
1051
                  <%
1052
				  Dim FRs3SyncDisabled
1053
                  FRs3SyncYES = ""
1054
                  FRs3SyncNO = ""
1055
 
1056
                  If objForm.IsPostBack Then
1057
                     If Request("FRs3Sync") = "1" Then
1058
                        FRs3SyncYES = "checked"
1059
                     Else
1060
                        FRs3SyncNO = "checked"
1061
                     End If
1062
 
1063
                  Else
1064
					 If objFormCollector.Item("s3Sync") = "" Then
1065
						FRs3SyncDisabled = "disabled"
1066
					 Else
1067
						 If objFormCollector.Item("s3Sync") = enumDB_YES Then
1068
							FRs3SyncYES = "checked"
1069
						 Else
1070
							FRs3SyncNO = "checked"
1071
						 End If
1072
					 End If
1073
 
1074
                  End If
1075
                  %>
1076
                  <td nowrap>Yes<input name="FRs3Sync" type="radio" value="1" <%=FRs3SyncDisabled%> <%=FRs3SyncYES%>>
1077
                  &nbsp;&nbsp;No<input name="FRs3Sync" type="radio" value="0" <%=FRs3SyncDisabled%> <%=FRs3SyncNO%>></td>
1078
               </tr>
1079
<%End If%>
1080
               <tr>
7002 dpurdie 1081
                  <td nowrap>Version Control System</td>
1082
                  <td nowrap>
5357 dpurdie 1083
                     <% Call RenderVCSCombo(objFormCollector.Item("vcs_tag"))%>
7379 dpurdie 1084
                     <%If (objFormCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) OR  (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) Then%>
5596 dpurdie 1085
                        <span class='err_alert'>[Not fully Supported]</span>
1086
                     <%End If%>
5357 dpurdie 1087
                  </td>
1088
               </tr>
1089
 
1090
               <!--- Source Path ---------------------------------------------->
1091
               <%If (objFormCollector.Item("vcs_tag") = enum_VCS_CLEARCASE_TAG) Then%>
1092
 
1093
                  <tr>
7002 dpurdie 1094
                     <td nowrap>Source Path<%=Quick_Help ( "src_path" )%></td>
1095
                     <td nowrap>
5596 dpurdie 1096
                        <input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);validateCCPath();" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000">
6300 dpurdie 1097
                        <br>&nbsp;Example: /MASS_Dev_Infra/<%=objFormCollector.Item("pkg_name")%> <br>
5596 dpurdie 1098
                        <span class='val_err' id=ccPathErr style='display:none'></span>
5357 dpurdie 1099
                     </td>
1100
                  </tr>
1101
 
1102
                  <tr>
7002 dpurdie 1103
                     <td nowrap>Label<%=Quick_Help ( "pkg_label" )%></td>
1104
                     <td nowrap>
5357 dpurdie 1105
                        <%
1106
                        sLabelReadOnly = ""
1107
                        sDefaultLabel = Default_Label(parPv_id, objFormCollector.Item("build_type"), objFormCollector.Item("change_type"), objFormCollector.Item("pkg_name"), objFormCollector.Item("pkg_version"), objFormCollector.Item("v_ext"))
1108
 
1109
                        If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable Then
1110
                           sLabelReadOnly = "readonly"
1111
                        End If
1112
 
1113
                        If objForm.IsPostBack Then
1114
                           sLabel = Request("FRlabel")
1115
 
1116
                           ' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label
1117
                           ' the FRlabel request we just did will return a null/empty, so set sLabel to the default label once more if this is the case.
1118
                           ' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.
1119
                           ' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the
1120
                           ' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does
1121
                           ' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.
1122
                           If IsNull(sLabel) OR sLabel = "" Then
1123
                              sLabel = sDefaultLabel
1124
                              objForm.SetValueForced "FRlabel", sLabel
1125
                           End If
1126
                        Else
1127
                           If (objFormCollector.Item("pkg_label") = "N/A") Then
1128
                              sLabel = "N/A"
1129
                           Else
1130
                              If objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label"))  Then
1131
                                 sLabel = sDefaultLabel
1132
                              Else
1133
                                 sLabel = objFormCollector.Item("pkg_label")
1134
                              End If
1135
                              objForm.SetValue "FRlabel", sLabel
1136
                           End If
1137
                        End If
1138
                        %>
5596 dpurdie 1139
                        <input type="text" name="FRlabel" id="FRlabel" maxlength="50" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateCCLabel();" value="<%=sLabel%>" <%=sLabelReadOnly%>>
6300 dpurdie 1140
                        <br>&nbsp;Example: <%=objFormCollector.Item("pkg_name")%>_1.0.0000.cr.WIP<br>
5596 dpurdie 1141
                        <span class='val_err' id=ccLabelErr style='display:none'></span>
5357 dpurdie 1142
                     </td>
1143
                  </tr>
1144
 
1145
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_SUBVERSION_TAG) Then%>
1146
                  <tr>
7002 dpurdie 1147
                     <td nowrap>Source Path<%=Quick_Help ( "svn_source_path" )%></td>
1148
                     <td nowrap>
5596 dpurdie 1149
                        <input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);validateSvnPath();" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000">
7002 dpurdie 1150
                        <table>
6300 dpurdie 1151
                            <tr>
1152
                            <td>Example:</td>
1153
                            <td>AUPERASVN0X/RepoName/<%=objFormCollector.Item("pkg_name")%>/trunk</td>
1154
                            </tr>
1155
                        </table>
5596 dpurdie 1156
                        <span class='val_err' id=svnPathErr style='display:none'></span>
5357 dpurdie 1157
                     </td>
1158
                  </tr>
1159
                  <tr>
7002 dpurdie 1160
                     <td nowrap  nowrap>Tag<%=Quick_Help ( "svn_tag" )%></td>
1161
                     <td nowrap>
5357 dpurdie 1162
                        <%
1163
                        sLabelReadOnly = ""
1164
                        sDefaultLabel = Default_Label(parPv_id, objFormCollector.Item("build_type"), objFormCollector.Item("change_type"), objFormCollector.Item("pkg_name"), objFormCollector.Item("pkg_version"), objFormCollector.Item("v_ext"))
1165
 
1166
                        If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable Then
1167
                           sLabelReadOnly = "readonly"
1168
                        End If
1169
 
1170
                        If objForm.IsPostBack Then
1171
                           sLabel = Request("FRlabel")
1172
 
1173
                           ' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label
1174
                           ' the FRlabel request we just did will return a null/empty, so set sLabel to the default label once more if this is the case.
1175
                           ' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.
1176
                           ' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the
1177
                           ' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does
1178
                           ' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.
1179
                           If IsNull(sLabel) OR sLabel = "" Then
1180
                              sLabel = sDefaultLabel
1181
                              objForm.SetValueForced "FRlabel", sLabel
1182
                           End If
1183
                        Else
1184
                           If (objFormCollector.Item("pkg_label") = "N/A") Then
1185
                              sLabel = "N/A"
1186
                           Else
1187
                              If objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label"))  Then
1188
                                 sLabel = sDefaultLabel
1189
                              Else
1190
                                 sLabel = objFormCollector.Item("pkg_label")
1191
                              End If
1192
                              objForm.SetValue "FRlabel", sLabel
1193
                           End If
1194
                        End If
1195
                        %>
1196
 
5623 dpurdie 1197
                        <input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateSvnTag();" value="<%=sLabel%>" <%=sLabelReadOnly%>>
5357 dpurdie 1198
                        <%
1199
                        If objFormCollector.Item("build_type") = "M" Then
6300 dpurdie 1200
                            sDefaultLabel = sDefaultLabel & "@1234"
5357 dpurdie 1201
                        Else
6300 dpurdie 1202
                            sDefaultLabel = sDefaultLabel & "[@1234]"
5357 dpurdie 1203
                        End If
1204
                        %>
7002 dpurdie 1205
                        <table>
6300 dpurdie 1206
                            <tr>
1207
                            <td>Example:</td>
1208
                            <td><%=sDefaultLabel%></td>
1209
                            </tr>
1210
                        </table>
5596 dpurdie 1211
                        <span class='val_err' id=svnTagErr style='display:none'></span>
5357 dpurdie 1212
                     </td>
1213
                  </tr>
1214
 
7379 dpurdie 1215
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) Then%>
1216
                  <tr>
1217
                     <td nowrap>Source Path<%=Quick_Help ( "git_source_path" )%></td>
1218
                     <td nowrap>
1219
                        <input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);validateGitPath();" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000">
1220
                        <table>
1221
                            <tr>
1222
                            <td>Example:</td>
1223
                            <td>VIXGIT0X/RepoName/<%=objFormCollector.Item("pkg_name")%>/master</td>
1224
                            </tr>
1225
                        </table>
1226
                        <span class='val_err' id=gitPathErr style='display:none'></span>
1227
                     </td>
1228
                  </tr>
1229
                  <tr>
1230
                     <td nowrap  nowrap>Tag<%=Quick_Help ( "git_tag" )%></td>
1231
                     <td nowrap>
1232
                        <%
1233
                        sLabelReadOnly = ""
1234
                        sDefaultLabel = Default_Label(parPv_id, objFormCollector.Item("build_type"), objFormCollector.Item("change_type"), objFormCollector.Item("pkg_name"), objFormCollector.Item("pkg_version"), objFormCollector.Item("v_ext"))
1235
 
1236
                        If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable Then
1237
                           sLabelReadOnly = "readonly"
1238
                        End If
1239
 
1240
                        If objForm.IsPostBack Then
1241
                           sLabel = Request("FRlabel")
1242
 
1243
                           ' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label
1244
                           ' the FRlabel request we just did will return a null/empty, so set sLabel to the default label once more if this is the case.
1245
                           ' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.
1246
                           ' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the
1247
                           ' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does
1248
                           ' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.
1249
                           If IsNull(sLabel) OR sLabel = "" Then
1250
                              sLabel = sDefaultLabel
1251
                              objForm.SetValueForced "FRlabel", sLabel
1252
                           End If
1253
                        Else
1254
                           If (objFormCollector.Item("pkg_label") = "N/A") Then
1255
                              sLabel = "N/A"
1256
                           Else
1257
                              If objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label"))  Then
1258
                                 sLabel = sDefaultLabel
1259
                              Else
1260
                                 sLabel = objFormCollector.Item("pkg_label")
1261
                              End If
1262
                              objForm.SetValue "FRlabel", sLabel
1263
                           End If
1264
                        End If
1265
                        %>
1266
 
1267
                        <input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateGitTag();" value="<%=sLabel%>" <%=sLabelReadOnly%>>
1268
                        <%
1269
                        If objFormCollector.Item("build_type") = "M" Then
1270
                            sDefaultLabel = sDefaultLabel & "1234567"
1271
                        Else
1272
                            sDefaultLabel = sDefaultLabel & "1234567"
1273
                        End If
1274
                        %>
1275
                        <table>
1276
                            <tr>
1277
                            <td>Example:</td>
1278
                            <td><%=sDefaultLabel%></td>
1279
                            </tr>
1280
                        </table>
1281
                        <span class='val_err' id=gitTagErr style='display:none'></span>
1282
                     </td>
1283
                  </tr>
1284
 
5357 dpurdie 1285
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) Then%>
1286
                  <tr>
7002 dpurdie 1287
                     <td nowrap>Source Path<%=Quick_Help ( "src_path" )%></td>
1288
                     <td nowrap>
5357 dpurdie 1289
                        <input name="FRpath" type="text" class="form_item" <%=disableCriticalSectionEdit%> id="FRpath" onchange="replace_back_slashes(this);" value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>" size="60" maxlength="2000">
6300 dpurdie 1290
                        <br>&nbsp;Example: /MASS_Dev_Infra/<%=objFormCollector.Item("pkg_name")%><br>
5357 dpurdie 1291
                     </td>
1292
                  </tr>
1293
 
1294
                  <tr>
7002 dpurdie 1295
                     <td nowrap>Label<%=Quick_Help ( "pkg_label" )%></td>
1296
                     <td nowrap>
1297
                        <input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);" value="<%=objForm.GetValue( "FRlabel", objFormCollector.Item("pkg_label") )%>">
5357 dpurdie 1298
                     </td>
1299
                  </tr>
1300
 
1301
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_UNCONTROLLED_TAG) Then%>
1302
                  <input name="FRpath"  type="hidden" id="FRpath"  value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>">
1303
                  <input name="FRlabel" type="hidden" id="FRlabel" value="<%=sLabel%>">
1304
               <%Else%>
1305
                  <tr>
7002 dpurdie 1306
                     <td colspan=3  class="sublbox_txt">
5357 dpurdie 1307
                        <span class='err_alert'><b>WARNING:</b> Release Manager Website does not currently support the selected Version Control System</span>
1308
                     </td>
1309
                  </tr>
1310
                  <input name="FRpath"  type="hidden" id="FRpath"  value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>">
1311
                  <input name="FRlabel" type="hidden" id="FRlabel" value="<%=sLabel%>">
1312
               <%End If%>
1313
 
1314
               <tr>
7002 dpurdie 1315
                  <td>Short Package Description<%=Quick_Help ( "pkg_info_short_desc" )%></td>
1316
                  <td nowrap>
5596 dpurdie 1317
                     <textarea name="pv_description" cols="57" rows="5" class="form_item" id="pv_description" onchange="strip_whitespace(this);validateDesc()"><%=objForm.GetValue( "pv_description", objFormCollector.Item("pv_description") )%></textarea>
1318
                     <span class='val_err' id=descErr style='display:none'></span>
5357 dpurdie 1319
                  </td>
1320
               </tr>
1321
               <tr>
7002 dpurdie 1322
                  <td>Package Overview<%=Quick_Help ( "pkg_info_overview" )%></td>
1323
                  <td nowrap>
5596 dpurdie 1324
                     <textarea name="pv_overview" cols="57" rows="10" class="form_item" id="pv_overview" onchange="strip_whitespace(this);validateOverview();"><%=objForm.GetValue( "pv_overview", objFormCollector.Item("pv_overview") )%></textarea>
1325
                     <span class='val_err' id=viewErr style='display:none'></span>
5357 dpurdie 1326
                  </td>
1327
               </tr>
1328
 
1329
               <tr>
7002 dpurdie 1330
                  <td nowrap>Build Standard</td>
1331
                  <td nowrap>
1332
                     <% Call RenderBldStdCombo(objFormCollector.Item("bs_name"))
1333
                     If objFormCollector.Item("bs_name") = "ANT" Then
1334
                         %><span class='err_alert'> - Not recomended for new packages.</span><%
1335
                     End If
1336
                     %>
5357 dpurdie 1337
                  </td>
1338
               </tr>
1339
 
1340
               <tr>
7002 dpurdie 1341
                  <td nowrap>Build Environment<%=Quick_Help ( "build_environment" )%></td>
1342
                  <td nowrap>
5357 dpurdie 1343
                     <%If objFormCollector.Item("is_build_env_required") = "N" Then%>
1344
                        &nbsp;Build Environment not applicable
1345
                     <%Else%>
1346
                     <%End If%>
5590 dpurdie 1347
                     <div id="divBuildEnv" name="divBuildEnv" style="overflow: auto; <%If (objFormCollector.Item("is_build_env_required") = "N") Then%>display:none;<%Else%>display:block;<%End If%>">
5357 dpurdie 1348
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
1349
                           <tr>
1350
                              <td bgcolor="#FFFFFF">
7002 dpurdie 1351
                                 <table width="100%" border="0" cellspacing="0" cellpadding="3" class=stdGrey>
5357 dpurdie 1352
                                    <%
1353
                                    OraDatabase.Parameters.Add "PV_ID",    parPv_id,   ORAPARM_INPUT, ORATYPE_NUMBER
1354
 
1355
                                    query = _
5596 dpurdie 1356
                                    " SELECT DECODE ( pkgbinfo.BM_ID, bm.BM_ID, 'checked', NULL ) AS checked,"&_
5357 dpurdie 1357
                                    "      bm.BM_ID,"&_
1358
                                    "      bm.BM_NAME, "&_
5596 dpurdie 1359
                                    "      pkgbinfo.BSA_ID, "&_
1360
                                    "      DECODE (UPPER(bm.BM_NAME) , UPPER('Generic'), 1, NULL ) AS isGeneric" &_
5357 dpurdie 1361
                                    "  FROM BUILD_MACHINES bm,"&_
1362
                                    "        PACKAGE_BUILD_INFO pkgbinfo"&_
1363
                                    " WHERE pkgbinfo.BM_ID (+)= bm.BM_ID"&_
1364
                                    "   AND pkgbinfo.PV_ID (+)= :PV_ID"&_
1365
                                    " ORDER BY UPPER(bm.bm_name) "
1366
 
1367
                                    Set rsQry = OraDatabase.DbCreateDynaset( query, cint(0))
7002 dpurdie 1368
                                    Dim rowClass : rowClass = "even"
5357 dpurdie 1369
 
1370
                                    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
1371
                                       checked = ""
1372
                                       If objForm.IsTicked( "be_id_list", rsQry("bm_id"), rsQry("checked") ) Then
1373
                                          checked = "checked"
1374
                                          objForm.SetValue "be_id_list", checked
1375
                                       End If
1376
 
7002 dpurdie 1377
                                       rowClass = IIF( rowClass = "odd" , "even", "odd" )
5357 dpurdie 1378
                                       %>
7002 dpurdie 1379
                                       <tr class='nowrap tight <%=rowClass%>'>
1380
                                          <td width='1%' >
5596 dpurdie 1381
                                            <input type="checkbox" 
1382
                                                   name="be_id_list" 
1383
                                                   onClick="UpdateBeDisplay(this, 'build_type_<%=rsQry("bm_id")%>');" 
1384
                                                   <%=disableCriticalSectionEdit%>
5597 dpurdie 1385
                                                   <%=IIf(rsQry("ISGENERIC"), " data-generic='1'","")%> 
5596 dpurdie 1386
                                                   data-target-id='build_type_<%=rsQry("bm_id")%>'
1387
                                                   value="<%=rsQry("bm_id")%>" <%=checked%>>
1388
                                          </td>
7002 dpurdie 1389
                                          <td width='1%' ><%=rsQry("bm_name")%></td>
1390
                                          <td width='98%' >
5357 dpurdie 1391
                                                <div id="build_type_<%=rsQry("bm_id")%>" <%=ShowHideBuildType( checked )%>>
1392
                                                    <% Call RenderBuildTypeCombo( rsQry("bsa_id"), rsQry("bm_id"), objFormCollector.Item("bs_id") )%>
7002 dpurdie 1393
                                                </div>  
5357 dpurdie 1394
                                          </td>
1395
                                          <%If checked = "checked" AND rsQry("bsa_id") = 0 Then%>
7002 dpurdie 1396
                                             <td>
5357 dpurdie 1397
                                             <td valign='top' width='1%'  style='vertical-align: middle;'><img src='icons/i_bulet_red.gif' width='4' height='4' hspace='3' vspace='4' border='0' align='absmiddle'></td>
7002 dpurdie 1398
                                             <td class='val_err'>Required</td>
5357 dpurdie 1399
                                          <%End If%>
1400
                                       </tr>
1401
                                       <%rsQry.MoveNext
1402
                                    WEnd
1403
 
1404
                                    rsQry.Close
1405
                                    Set rsQry = Nothing
1406
 
1407
                                    OraDatabase.Parameters.Remove "PV_ID"
1408
                                    %>
1409
                                 </table>
1410
                              </td>
1411
                           </tr>
1412
                        </table>
1413
                     </div>
1414
                  </td>
1415
               </tr>
1416
            </table>
1417
         </td>
1418
      </tr>
1419
      <tr>
7002 dpurdie 1420
		 <td align="right">
5596 dpurdie 1421
			<input id="btn_submit" type="submit" name="btn" value="Submit" <%If pageIsEditable Then%>class="form_btn_comp"<%Else%>disabled class="form_btn_comp_disabled"<%End If%>>
5590 dpurdie 1422
			<input type="reset" name="btn" value="Cancel" class="form_btn_comp" onclick="parent.closeIFrame();">
1423
		 </td>
5357 dpurdie 1424
      </tr>
1425
   </table>
1426
   <input type="hidden" name="pv_id"   id="pv_id"   value="<%=parPv_id%>">
1427
   <input type="hidden" name="rtag_id" id="rtag_id" value="<%=parRtag_id%>">
1428
   <input type="hidden" name="vcs_tag" id="vcs_tag" value="<%=parVCSTag%>">
1429
   <input type="hidden" name="bs_name" id="bs_name" value="<%=parBSName%>">
5596 dpurdie 1430
   <%objForm.AddPostBack()%>
5357 dpurdie 1431
</form>
1432
</body>
1433
</html>
1434
<%
1435
'------------- RUN AFTER PAGE RENDER ---------------
1436
Set objFormCollector = Nothing
1437
'---------------------------------------------------
1438
%>
1439
<!-- DESTRUCTOR ------->
1440
<!--#include file="common/destructor.asp"-->