Subversion Repositories DevTools

Rev

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