Subversion Repositories DevTools

Rev

Rev 7457 | 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
7468 dpurdie 34
Dim FRinManifestYES, FRinManifestNO
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
'----------------------------------------------------------------------------------------------------------------------
7468 dpurdie 138
' Determine InManifest State
7457 dpurdie 139
'   This is a property of the release, more than of a package
140
'       Y, N, "<empty>"
7468 dpurdie 141
Function getInManifestState(nnRtagId, nnPvId)
7457 dpurdie 142
    Dim rsTemp, Query_String
7468 dpurdie 143
    getInManifestState = ""
7395 dpurdie 144
 
7457 dpurdie 145
    If nnRtagId <> "" Then
7468 dpurdie 146
       Query_String = "Select NVL(IN_MANIFEST, 'N') as inManifest from Release_Content where rtag_id = " & nnRtagId & " AND pv_id = " & nnPvId
7395 dpurdie 147
 
7457 dpurdie 148
       Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
7395 dpurdie 149
       If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
7468 dpurdie 150
            getInManifestState = rsTemp("inManifest")
151
            If getInManifestState <> "Y" Then getInManifestState = "N"
7457 dpurdie 152
       End If
7395 dpurdie 153
 
7457 dpurdie 154
       rsTemp.Close
155
       Set rsTemp = nothing
156
    End If
7395 dpurdie 157
End Function
158
 
7457 dpurdie 159
'   Update the S3Sycn State, but only if th evalue has changed
7468 dpurdie 160
Sub updateInManifestState( nnRtagId, nnPvId, cState)
7457 dpurdie 161
    Dim rsTemp, Query_String
7395 dpurdie 162
 
7457 dpurdie 163
    If nnRtagId <> "" Then
7468 dpurdie 164
        Query_String = "Select IN_MANIFEST from Release_Content where rtag_id = " & nnRtagId & " AND pv_id = " & nnPvId
7457 dpurdie 165
        Set rsTemp = OraDatabase.CreateDynaset( Query_String, cint(0))
7395 dpurdie 166
 
7468 dpurdie 167
        Dim Data: Data = rsTemp("IN_MANIFEST")
7457 dpurdie 168
        If IsNull(Data) Then Data = "N"
169
        cState = Iif( cState = 1 ,"Y", "N")
170
        If ( UCase(cState) <> UCase( Data ) ) Then
171
            rsTemp.Edit
7468 dpurdie 172
            rsTemp.Fields("IN_MANIFEST").Value = UCase(cState)
7457 dpurdie 173
            rsTemp.Update
7417 dpurdie 174
 
7457 dpurdie 175
            '   Indicate change to the build system
176
            '   May be overkill - perhaps a seperate field
7417 dpurdie 177
            OraDatabase.ExecuteSQL ("BEGIN PK_RELEASE.SET_RELEASE_MODIFIED("& nnRtagId & "); END; ")
178
 
7457 dpurdie 179
        End If
7395 dpurdie 180
 
7457 dpurdie 181
        rsTemp.Close
182
        Set rsTemp = nothing
7395 dpurdie 183
 
7457 dpurdie 184
    End If
7395 dpurdie 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
   '
7457 dpurdie 264
   '    Get other items needed for the form
7468 dpurdie 265
   objDetails.Item("InManifest") = getInManifestState(parRtag_id, nPv_id)
7395 dpurdie 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.
7468 dpurdie 427
Sub Update_Pkg_Info ( NNpv_id, NNdeployable, SSLabel, SSPath, SSdesc, SSoverview, NNInManifest )
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
 
7457 dpurdie 478
      ' Update the S3 Sync State
7468 dpurdie 479
      Call updateInManifestState( parRtag_id, NNpv_id, NNInManifest)
7395 dpurdie 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
7468 dpurdie 630
        Call Update_Pkg_Info ( parPv_id, QStrPar("FRdeployable"), QStrPar("FRlabel"), QStrPar("FRpath"), QStrPar("pv_description"), QStrPar("pv_overview"), QStrPar("FRinManifest") )
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.');
7468 dpurdie 986
formTips.tips.InManifest               = newTip(-150, 20, 300, 10, 'Include in Manifest','When enabled and the Release is also configured to support S3 Manifests then this package-version will be available in the manifest');
987
 
7379 dpurdie 988
formTips.tips.pkg_info_short_desc  = newTip(-150, 20, 150, 10, 'SHORT DESCRIPTION','Describe the meaning of the package name.');
989
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!');
7457 dpurdie 990
formTips.tips.build_environment    = newTip(-150, 10, 150, 10, 'BUILD ENVIRONMENT','Select which build environments are used to build this package.');
7379 dpurdie 991
 
992
 
993
formTips.tips.pkg_label            = newTip(-150, 20, 150, 10, 'LABEL','Enter the ClearCase label used to tag all the source code in this release.');
994
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%');
995
 
996
formTips.tips.svn_source_path      = newTip(-180, 20, 180, 10,  'SUBVERSION SOURCE PATH',
997
                                                        'Enter the Subversion path to the development branch of the package. <p>The first element will be a symbolic repository reference. '+
998
                                                        '<p>The last element will be the packages development branch - which may be the trunk.');
999
 
1000
formTips.tips.svn_tag              = newTip(-180, 20, 180, 10,  'SUBVERSION TAG',
1001
                                                        'Enter the Subversion tag. This is a named directory within the packages \'tags\' directory. It may be pegged.');
1002
 
1003
formTips.tips.git_source_path      = newTip(-180, 20, 180, 10,  'GIT SOURCE PATH',
7457 dpurdie 1004
                                                        'Enter the GIT path to the package. <p>The first element will be a symbolic repository reference. '+
1005
                                                        '<p>The last element will be the root of the package source within the GIT repo.');
7379 dpurdie 1006
 
7457 dpurdie 1007
formTips.tips.git_tag              = newTip(-180, 20, 300, 10,  'GIT TAG',
1008
                                                        'Enter a GIT tag, a WIP tag or SHA-1 commit identifier.<p>A GIT Tag start with a \'v\'.<br>A WIP tag ends in \'.WIP\'.<br>A SHA-1 commit ID is 40 hex characters long.');
5357 dpurdie 1009
//-->
1010
</script>
1011
</head>
1012
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="self.focus();">
5596 dpurdie 1013
<form id="pkginfo" name="pkginfo" method="post" onSubmit="return document.MM_returnValue;" action="<%=submit_action_url%>" class="form_tight">
5590 dpurdie 1014
   <table border="0" cellspacing="0" cellpadding="2">
5357 dpurdie 1015
      <tr>
7002 dpurdie 1016
         <td nowrap class="wform_ttl">
1017
            <table width="100%" border="0" cellspacing="1" cellpadding="2" class=lhsGrey>
5357 dpurdie 1018
               <tr>
7002 dpurdie 1019
                  <td nowrap>Package</td>
1020
                  <td nowrap><%=objFormCollector.Item("pkg_name") &" "& objFormCollector.Item("pkg_version")%></td>
5357 dpurdie 1021
               </tr>
1022
               <tr>
7002 dpurdie 1023
                  <td nowrap>Deployable?<%=Quick_Help ( "deployable" )%></td>
5357 dpurdie 1024
                  <%
1025
                  FRdeployableYES = ""
1026
                  FRdeployableNO = ""
1027
 
1028
                  If objForm.IsPostBack Then
1029
                     If Request("FRdeployable") = "1" Then
1030
                        FRdeployableYES = "checked"
1031
                     Else
1032
                        FRdeployableNO = "checked"
1033
                     End If
1034
 
1035
                  Else
1036
                     If objFormCollector.Item("is_deployable") = enumDB_YES Then
1037
                        FRdeployableYES = "checked"
1038
                     Else
1039
                        FRdeployableNO = "checked"
1040
                     End If
1041
 
1042
                  End If
1043
                  %>
7002 dpurdie 1044
                  <td nowrap>Yes<input name="FRdeployable" type="radio" value="1" <%=FRdeployableYES%>>
5357 dpurdie 1045
                  &nbsp;&nbsp;No<input name="FRdeployable" type="radio" value="0" <%=FRdeployableNO%>></td>
1046
               </tr>
7395 dpurdie 1047
<%If parRtag_id <> "" Then%>
5357 dpurdie 1048
               <tr>
7468 dpurdie 1049
                  <td nowrap>Include in Manifest<%=Quick_Help ( "InManifest" )%></td>
7395 dpurdie 1050
                  <%
7468 dpurdie 1051
                  Dim FRinManifestDisabled
1052
                  FRinManifestYES = ""
1053
                  FRinManifestNO = ""
7395 dpurdie 1054
 
1055
                  If objForm.IsPostBack Then
7468 dpurdie 1056
                     If Request("FRinManifest") = "1" Then
1057
                        FRinManifestYES = "checked"
7395 dpurdie 1058
                     Else
7468 dpurdie 1059
                        FRinManifestNO = "checked"
7395 dpurdie 1060
                     End If
1061
 
1062
                  Else
7468 dpurdie 1063
                     If objFormCollector.Item("InManifest") = "" Then
1064
                        FRinManifestDisabled = "disabled"
7457 dpurdie 1065
                     Else
7468 dpurdie 1066
                         If objFormCollector.Item("InManifest") = enumDB_YES Then
1067
                            FRinManifestYES = "checked"
7457 dpurdie 1068
                         Else
7468 dpurdie 1069
                            FRinManifestNO = "checked"
7457 dpurdie 1070
                         End If
1071
                     End If
7395 dpurdie 1072
 
1073
                  End If
1074
                  %>
7468 dpurdie 1075
                  <td nowrap>Yes<input name="FRinManifest" type="radio" value="1" <%=FRinManifestDisabled%> <%=FRinManifestYES%>>
1076
                  &nbsp;&nbsp;No<input name="FRinManifest" type="radio" value="0" <%=FRinManifestDisabled%> <%=FRinManifestNO%>></td>
7395 dpurdie 1077
               </tr>
1078
<%End If%>
1079
               <tr>
7002 dpurdie 1080
                  <td nowrap>Version Control System</td>
1081
                  <td nowrap>
5357 dpurdie 1082
                     <% Call RenderVCSCombo(objFormCollector.Item("vcs_tag"))%>
7457 dpurdie 1083
                     <%If (objFormCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) Then%>
5596 dpurdie 1084
                        <span class='err_alert'>[Not fully Supported]</span>
1085
                     <%End If%>
5357 dpurdie 1086
                  </td>
1087
               </tr>
1088
 
1089
               <!--- Source Path ---------------------------------------------->
1090
               <%If (objFormCollector.Item("vcs_tag") = enum_VCS_CLEARCASE_TAG) Then%>
1091
 
1092
                  <tr>
7002 dpurdie 1093
                     <td nowrap>Source Path<%=Quick_Help ( "src_path" )%></td>
1094
                     <td nowrap>
5596 dpurdie 1095
                        <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 1096
                        <br>&nbsp;Example: /MASS_Dev_Infra/<%=objFormCollector.Item("pkg_name")%> <br>
5596 dpurdie 1097
                        <span class='val_err' id=ccPathErr style='display:none'></span>
5357 dpurdie 1098
                     </td>
1099
                  </tr>
1100
 
1101
                  <tr>
7002 dpurdie 1102
                     <td nowrap>Label<%=Quick_Help ( "pkg_label" )%></td>
1103
                     <td nowrap>
5357 dpurdie 1104
                        <%
1105
                        sLabelReadOnly = ""
1106
                        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"))
1107
 
1108
                        If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable Then
1109
                           sLabelReadOnly = "readonly"
1110
                        End If
1111
 
1112
                        If objForm.IsPostBack Then
1113
                           sLabel = Request("FRlabel")
1114
 
1115
                           ' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label
1116
                           ' 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.
1117
                           ' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.
1118
                           ' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the
1119
                           ' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does
1120
                           ' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.
1121
                           If IsNull(sLabel) OR sLabel = "" Then
1122
                              sLabel = sDefaultLabel
1123
                              objForm.SetValueForced "FRlabel", sLabel
1124
                           End If
1125
                        Else
1126
                           If (objFormCollector.Item("pkg_label") = "N/A") Then
1127
                              sLabel = "N/A"
1128
                           Else
1129
                              If objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label"))  Then
1130
                                 sLabel = sDefaultLabel
1131
                              Else
1132
                                 sLabel = objFormCollector.Item("pkg_label")
1133
                              End If
1134
                              objForm.SetValue "FRlabel", sLabel
1135
                           End If
1136
                        End If
1137
                        %>
5596 dpurdie 1138
                        <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 1139
                        <br>&nbsp;Example: <%=objFormCollector.Item("pkg_name")%>_1.0.0000.cr.WIP<br>
5596 dpurdie 1140
                        <span class='val_err' id=ccLabelErr style='display:none'></span>
5357 dpurdie 1141
                     </td>
1142
                  </tr>
1143
 
1144
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_SUBVERSION_TAG) Then%>
1145
                  <tr>
7002 dpurdie 1146
                     <td nowrap>Source Path<%=Quick_Help ( "svn_source_path" )%></td>
1147
                     <td nowrap>
5596 dpurdie 1148
                        <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 1149
                        <table>
6300 dpurdie 1150
                            <tr>
1151
                            <td>Example:</td>
1152
                            <td>AUPERASVN0X/RepoName/<%=objFormCollector.Item("pkg_name")%>/trunk</td>
1153
                            </tr>
1154
                        </table>
5596 dpurdie 1155
                        <span class='val_err' id=svnPathErr style='display:none'></span>
5357 dpurdie 1156
                     </td>
1157
                  </tr>
1158
                  <tr>
7002 dpurdie 1159
                     <td nowrap  nowrap>Tag<%=Quick_Help ( "svn_tag" )%></td>
1160
                     <td nowrap>
5357 dpurdie 1161
                        <%
1162
                        sLabelReadOnly = ""
1163
                        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"))
1164
 
1165
                        If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable Then
1166
                           sLabelReadOnly = "readonly"
1167
                        End If
1168
 
1169
                        If objForm.IsPostBack Then
1170
                           sLabel = Request("FRlabel")
1171
 
1172
                           ' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label
1173
                           ' 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.
1174
                           ' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.
1175
                           ' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the
1176
                           ' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does
1177
                           ' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.
1178
                           If IsNull(sLabel) OR sLabel = "" Then
1179
                              sLabel = sDefaultLabel
1180
                              objForm.SetValueForced "FRlabel", sLabel
1181
                           End If
1182
                        Else
1183
                           If (objFormCollector.Item("pkg_label") = "N/A") Then
1184
                              sLabel = "N/A"
1185
                           Else
1186
                              If objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label"))  Then
1187
                                 sLabel = sDefaultLabel
1188
                              Else
1189
                                 sLabel = objFormCollector.Item("pkg_label")
1190
                              End If
1191
                              objForm.SetValue "FRlabel", sLabel
1192
                           End If
1193
                        End If
1194
                        %>
1195
 
5623 dpurdie 1196
                        <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 1197
                        <%
1198
                        If objFormCollector.Item("build_type") = "M" Then
6300 dpurdie 1199
                            sDefaultLabel = sDefaultLabel & "@1234"
5357 dpurdie 1200
                        Else
6300 dpurdie 1201
                            sDefaultLabel = sDefaultLabel & "[@1234]"
5357 dpurdie 1202
                        End If
1203
                        %>
7002 dpurdie 1204
                        <table>
6300 dpurdie 1205
                            <tr>
1206
                            <td>Example:</td>
1207
                            <td><%=sDefaultLabel%></td>
1208
                            </tr>
1209
                        </table>
5596 dpurdie 1210
                        <span class='val_err' id=svnTagErr style='display:none'></span>
5357 dpurdie 1211
                     </td>
1212
                  </tr>
1213
 
7379 dpurdie 1214
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_GIT_TAG) Then%>
1215
                  <tr>
1216
                     <td nowrap>Source Path<%=Quick_Help ( "git_source_path" )%></td>
1217
                     <td nowrap>
1218
                        <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">
1219
                        <table>
1220
                            <tr>
1221
                            <td>Example:</td>
7457 dpurdie 1222
                            <td>VIXGIT0X/RepoName/<%=objFormCollector.Item("pkg_name")%></td>
7379 dpurdie 1223
                            </tr>
1224
                        </table>
1225
                        <span class='val_err' id=gitPathErr style='display:none'></span>
1226
                     </td>
1227
                  </tr>
1228
                  <tr>
1229
                     <td nowrap  nowrap>Tag<%=Quick_Help ( "git_tag" )%></td>
1230
                     <td nowrap>
1231
                        <%
1232
                        sLabelReadOnly = ""
1233
                        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"))
1234
 
1235
                        If objFormCollector.Item("build_type") = "A" AND NOT criticalSectionIsEditable Then
1236
                           sLabelReadOnly = "readonly"
1237
                        End If
1238
 
1239
                        If objForm.IsPostBack Then
1240
                           sLabel = Request("FRlabel")
1241
 
1242
                           ' If a user has switched the form back and forth between different VCS settings, and the previous one did not utilise a label
1243
                           ' 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.
1244
                           ' Also, we use the SetValueForced() function to force the value of sLabel into the object that does some of our validation for us.
1245
                           ' That function (as opposed to the plain SetValue() function) cares nothing about the setting of the IsPostBack flag in the
1246
                           ' object. If we didnt do this, the field on the visible form would be highlighted with "Required" because SetValue() just does
1247
                           ' a Request() in IsPostBack situations, and so our sLabel value will not be acquired by the object for validation.
1248
                           If IsNull(sLabel) OR sLabel = "" Then
1249
                              sLabel = sDefaultLabel
1250
                              objForm.SetValueForced "FRlabel", sLabel
1251
                           End If
1252
                        Else
1253
                           If (objFormCollector.Item("pkg_label") = "N/A") Then
1254
                              sLabel = "N/A"
1255
                           Else
1256
                              If objFormCollector.Item("pkg_label") = "" OR IsNull(objFormCollector.Item("pkg_label"))  Then
1257
                                 sLabel = sDefaultLabel
1258
                              Else
1259
                                 sLabel = objFormCollector.Item("pkg_label")
1260
                              End If
1261
                              objForm.SetValue "FRlabel", sLabel
1262
                           End If
1263
                        End If
1264
                        %>
1265
 
1266
                        <input type="text" name="FRlabel" id="FRlabel" maxlength="120" size="60" class="form_item" <%=disableCriticalSectionEdit%> onchange="strip_whitespace(this);validateGitTag();" value="<%=sLabel%>" <%=sLabelReadOnly%>>
1267
                        <%
1268
                        If objFormCollector.Item("build_type") = "M" Then
7457 dpurdie 1269
                            sDefaultLabel = sDefaultLabel
7379 dpurdie 1270
                        Else
7457 dpurdie 1271
                            sDefaultLabel = sDefaultLabel
7379 dpurdie 1272
                        End If
1273
                        %>
1274
                        <table>
1275
                            <tr>
1276
                            <td>Example:</td>
1277
                            <td><%=sDefaultLabel%></td>
1278
                            </tr>
1279
                        </table>
1280
                        <span class='val_err' id=gitTagErr style='display:none'></span>
1281
                     </td>
1282
                  </tr>
1283
 
5357 dpurdie 1284
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_CVS_TAG) Then%>
1285
                  <tr>
7002 dpurdie 1286
                     <td nowrap>Source Path<%=Quick_Help ( "src_path" )%></td>
1287
                     <td nowrap>
5357 dpurdie 1288
                        <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 1289
                        <br>&nbsp;Example: /MASS_Dev_Infra/<%=objFormCollector.Item("pkg_name")%><br>
5357 dpurdie 1290
                     </td>
1291
                  </tr>
1292
 
1293
                  <tr>
7002 dpurdie 1294
                     <td nowrap>Label<%=Quick_Help ( "pkg_label" )%></td>
1295
                     <td nowrap>
1296
                        <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 1297
                     </td>
1298
                  </tr>
1299
 
1300
               <%ElseIf (objFormCollector.Item("vcs_tag") = enum_VCS_UNCONTROLLED_TAG) Then%>
1301
                  <input name="FRpath"  type="hidden" id="FRpath"  value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>">
1302
                  <input name="FRlabel" type="hidden" id="FRlabel" value="<%=sLabel%>">
1303
               <%Else%>
1304
                  <tr>
7002 dpurdie 1305
                     <td colspan=3  class="sublbox_txt">
5357 dpurdie 1306
                        <span class='err_alert'><b>WARNING:</b> Release Manager Website does not currently support the selected Version Control System</span>
1307
                     </td>
1308
                  </tr>
1309
                  <input name="FRpath"  type="hidden" id="FRpath"  value="<%=objForm.GetValue( "FRpath", objFormCollector.Item("src_path") )%>">
1310
                  <input name="FRlabel" type="hidden" id="FRlabel" value="<%=sLabel%>">
1311
               <%End If%>
1312
 
1313
               <tr>
7002 dpurdie 1314
                  <td>Short Package Description<%=Quick_Help ( "pkg_info_short_desc" )%></td>
1315
                  <td nowrap>
5596 dpurdie 1316
                     <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>
1317
                     <span class='val_err' id=descErr style='display:none'></span>
5357 dpurdie 1318
                  </td>
1319
               </tr>
1320
               <tr>
7002 dpurdie 1321
                  <td>Package Overview<%=Quick_Help ( "pkg_info_overview" )%></td>
1322
                  <td nowrap>
5596 dpurdie 1323
                     <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>
1324
                     <span class='val_err' id=viewErr style='display:none'></span>
5357 dpurdie 1325
                  </td>
1326
               </tr>
1327
 
1328
               <tr>
7002 dpurdie 1329
                  <td nowrap>Build Standard</td>
1330
                  <td nowrap>
1331
                     <% Call RenderBldStdCombo(objFormCollector.Item("bs_name"))
1332
                     If objFormCollector.Item("bs_name") = "ANT" Then
1333
                         %><span class='err_alert'> - Not recomended for new packages.</span><%
1334
                     End If
1335
                     %>
5357 dpurdie 1336
                  </td>
1337
               </tr>
1338
 
1339
               <tr>
7002 dpurdie 1340
                  <td nowrap>Build Environment<%=Quick_Help ( "build_environment" )%></td>
1341
                  <td nowrap>
5357 dpurdie 1342
                     <%If objFormCollector.Item("is_build_env_required") = "N" Then%>
1343
                        &nbsp;Build Environment not applicable
1344
                     <%Else%>
1345
                     <%End If%>
5590 dpurdie 1346
                     <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 1347
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
1348
                           <tr>
1349
                              <td bgcolor="#FFFFFF">
7002 dpurdie 1350
                                 <table width="100%" border="0" cellspacing="0" cellpadding="3" class=stdGrey>
5357 dpurdie 1351
                                    <%
1352
                                    OraDatabase.Parameters.Add "PV_ID",    parPv_id,   ORAPARM_INPUT, ORATYPE_NUMBER
1353
 
1354
                                    query = _
5596 dpurdie 1355
                                    " SELECT DECODE ( pkgbinfo.BM_ID, bm.BM_ID, 'checked', NULL ) AS checked,"&_
5357 dpurdie 1356
                                    "      bm.BM_ID,"&_
1357
                                    "      bm.BM_NAME, "&_
5596 dpurdie 1358
                                    "      pkgbinfo.BSA_ID, "&_
1359
                                    "      DECODE (UPPER(bm.BM_NAME) , UPPER('Generic'), 1, NULL ) AS isGeneric" &_
5357 dpurdie 1360
                                    "  FROM BUILD_MACHINES bm,"&_
1361
                                    "        PACKAGE_BUILD_INFO pkgbinfo"&_
1362
                                    " WHERE pkgbinfo.BM_ID (+)= bm.BM_ID"&_
1363
                                    "   AND pkgbinfo.PV_ID (+)= :PV_ID"&_
1364
                                    " ORDER BY UPPER(bm.bm_name) "
1365
 
1366
                                    Set rsQry = OraDatabase.DbCreateDynaset( query, cint(0))
7002 dpurdie 1367
                                    Dim rowClass : rowClass = "even"
5357 dpurdie 1368
 
1369
                                    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
1370
                                       checked = ""
1371
                                       If objForm.IsTicked( "be_id_list", rsQry("bm_id"), rsQry("checked") ) Then
1372
                                          checked = "checked"
1373
                                          objForm.SetValue "be_id_list", checked
1374
                                       End If
1375
 
7002 dpurdie 1376
                                       rowClass = IIF( rowClass = "odd" , "even", "odd" )
5357 dpurdie 1377
                                       %>
7002 dpurdie 1378
                                       <tr class='nowrap tight <%=rowClass%>'>
1379
                                          <td width='1%' >
5596 dpurdie 1380
                                            <input type="checkbox" 
1381
                                                   name="be_id_list" 
1382
                                                   onClick="UpdateBeDisplay(this, 'build_type_<%=rsQry("bm_id")%>');" 
1383
                                                   <%=disableCriticalSectionEdit%>
5597 dpurdie 1384
                                                   <%=IIf(rsQry("ISGENERIC"), " data-generic='1'","")%> 
5596 dpurdie 1385
                                                   data-target-id='build_type_<%=rsQry("bm_id")%>'
1386
                                                   value="<%=rsQry("bm_id")%>" <%=checked%>>
1387
                                          </td>
7002 dpurdie 1388
                                          <td width='1%' ><%=rsQry("bm_name")%></td>
1389
                                          <td width='98%' >
5357 dpurdie 1390
                                                <div id="build_type_<%=rsQry("bm_id")%>" <%=ShowHideBuildType( checked )%>>
1391
                                                    <% Call RenderBuildTypeCombo( rsQry("bsa_id"), rsQry("bm_id"), objFormCollector.Item("bs_id") )%>
7002 dpurdie 1392
                                                </div>  
5357 dpurdie 1393
                                          </td>
1394
                                          <%If checked = "checked" AND rsQry("bsa_id") = 0 Then%>
7002 dpurdie 1395
                                             <td>
5357 dpurdie 1396
                                             <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 1397
                                             <td class='val_err'>Required</td>
5357 dpurdie 1398
                                          <%End If%>
1399
                                       </tr>
1400
                                       <%rsQry.MoveNext
1401
                                    WEnd
1402
 
1403
                                    rsQry.Close
1404
                                    Set rsQry = Nothing
1405
 
1406
                                    OraDatabase.Parameters.Remove "PV_ID"
1407
                                    %>
1408
                                 </table>
1409
                              </td>
1410
                           </tr>
1411
                        </table>
1412
                     </div>
1413
                  </td>
1414
               </tr>
1415
            </table>
1416
         </td>
1417
      </tr>
1418
      <tr>
7457 dpurdie 1419
         <td align="right">
1420
            <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%>>
1421
            <input type="reset" name="btn" value="Cancel" class="form_btn_comp" onclick="parent.closeIFrame();">
1422
         </td>
5357 dpurdie 1423
      </tr>
1424
   </table>
1425
   <input type="hidden" name="pv_id"   id="pv_id"   value="<%=parPv_id%>">
1426
   <input type="hidden" name="rtag_id" id="rtag_id" value="<%=parRtag_id%>">
1427
   <input type="hidden" name="vcs_tag" id="vcs_tag" value="<%=parVCSTag%>">
1428
   <input type="hidden" name="bs_name" id="bs_name" value="<%=parBSName%>">
5596 dpurdie 1429
   <%objForm.AddPostBack()%>
5357 dpurdie 1430
</form>
1431
</body>
1432
</html>
1433
<%
1434
'------------- RUN AFTER PAGE RENDER ---------------
1435
Set objFormCollector = Nothing
1436
'---------------------------------------------------
1437
%>
1438
<!-- DESTRUCTOR ------->
1439
<!--#include file="common/destructor.asp"-->