Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
119 ghuddy 1
<%
2
'=====================================================
7001 dpurdie 3
'   _form_new_version_page.asp
151 ghuddy 4
'                      PAGE
119 ghuddy 5
'=====================================================
6
%>
7
<!--#include file="_tabs.asp"-->
121 hknight 8
<!--#include file="_drawExtensionSelectBox.asp"-->
151 ghuddy 9
<!--#include file="class/classSortHelper.asp"-->
5207 dpurdie 10
<!--#include file="_jquery_includes.asp"-->
4230 dpurdie 11
<!-- TIPS -->
6579 dpurdie 12
<script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script>
4230 dpurdie 13
<script language="JavaScript" type="text/JavaScript">
14
formTips.tips.BuildType = stdTip(200, 'Build Type',
15
                                 'Auto Build packages are built by the VIX build daemons for release. ' +
16
                                 'Manually built packages will not be built by the build daemons.'+
17
                                 '<p>Manually built packages are very rare and not available to most developers');
18
formTips.tips.ChangeType = stdTip(200, 'Version Number Assignment',
19
                                  'Auto: The build system will determine the version number based on the Change Type' +
20
                                  '<p>Manual: The user specifies the version number to be used');
5338 dpurdie 21
formTips.tips.Licence = stdTip(250, 'Software Licence',
5360 dpurdie 22
                                 'All 3rd party software MUST be identifed.');
23
formTips.tips.Existing = stdTip(250, 'Existing Version',
24
                                 'Existing versions versions are shown for reference purposes. ' +
25
                                 'They may be used when manually versioning a package.' +
26
                                 '<p>This is not the version that the new packages is derived from.');
5338 dpurdie 27
 
5360 dpurdie 28
 
4230 dpurdie 29
</script>
119 ghuddy 30
<%
31
'------------ Variable Definition -------------
32
Dim parPv_id
33
Dim rsLocRel
34
Dim parPage_title
35
Dim objPkgInfo
121 hknight 36
Dim rsTemp2
151 ghuddy 37
Dim rsLatest
38
Dim aVersions
39
Dim lastRow, i
40
Dim objSortHelper
3959 dpurdie 41
Dim newPackage
42
Dim majorState
43
Dim minorState
44
Dim patchState
45
Dim parBase_view_id
46
Dim verNumber
47
Dim parPkgName
4198 dpurdie 48
Dim parRename
49
Dim rFile
4210 dpurdie 50
Dim disableBuildType
6370 dpurdie 51
Dim bCanRenamePackage
52
Dim parPkgId
7001 dpurdie 53
Dim bNewerVersions
54
Dim sNewerVersionsOptions
3959 dpurdie 55
 
119 ghuddy 56
'------------ Constants Declaration -----------
3959 dpurdie 57
 
119 ghuddy 58
'-----------------------------------------------------------------------------------------------------------------------------
59
Sub GetPackageInfo( nPvId, outPkgInfo )
151 ghuddy 60
   Dim rsTemp, Query_String
7001 dpurdie 61
   If (IsEmpty(nPvId) OR newPackage> 0) Then Exit Sub
121 hknight 62
 
151 ghuddy 63
   Query_String = _
4980 dpurdie 64
   " SELECT pv.pv_id, pkg.pkg_id, pkg.pkg_name, pv.pkg_version, pv.v_ext, pv.change_type, pv.build_type, pv.is_patch"&_
151 ghuddy 65
   "  FROM packages pkg, package_versions pv"&_
66
   " WHERE pkg.pkg_id = pv.pkg_id  AND pv.pv_id ="& nPvId
121 hknight 67
 
151 ghuddy 68
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
121 hknight 69
 
151 ghuddy 70
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
71
      outPkgInfo.Item("pv_id") = rsTemp.Fields("pv_id")
72
      outPkgInfo.Item("pkg_id") = rsTemp.Fields("pkg_id")
73
      outPkgInfo.Item("pkg_name") = rsTemp.Fields("pkg_name")
74
      outPkgInfo.Item("pkg_version") = rsTemp.Fields("pkg_version")
4198 dpurdie 75
      outPkgInfo.Item("change_type") = rsTemp.Fields("change_type")
76
      outPkgInfo.Item("build_type") = rsTemp.Fields("build_type")
77
 
4980 dpurdie 78
      If rsTemp.Fields("is_patch") = "Y" Then
79
        outPkgInfo.Item("is_patch") = "true"
80
      Else
81
        outPkgInfo.Item("is_patch") = "false"
82
      End If
83
 
3959 dpurdie 84
      if rsTemp.Fields("v_ext") <> "" Then
85
        outPkgInfo.Item("v_ext") = rsTemp.Fields("v_ext")
86
      Else
87
        outPkgInfo.Item("v_ext") = ""
88
      End If
151 ghuddy 89
   End If
121 hknight 90
 
151 ghuddy 91
   rsTemp.Close
92
   Set rsTemp = nothing
119 ghuddy 93
End Sub
3959 dpurdie 94
 
119 ghuddy 95
'-----------------------------------------------------------------------------------------------------------------------------
151 ghuddy 96
Function Get_Latest_All_Ext ( NNpkg_id, nPv_id )
5590 dpurdie 97
    Get_Latest_All_Ext = _
98
    " SELECT pv.pkg_version, pv.dlocked,"&_
99
    "        DECODE ( pv.pv_id, "& nPv_id &", 'selected', NULL ) AS selected"&_
100
    "    FROM PACKAGES pkg, package_versions pv"&_
101
    "   WHERE pkg.pkg_id = pv.pkg_id  AND  pkg.pkg_id = "& NNpkg_id
151 ghuddy 102
End Function
165 brianf 103
 
6370 dpurdie 104
'-----------------------------------------------------------------------------------------------------------------------------
105
'   If there is exactly one version of this package, then it can be renamed
106
'   Return 0 or 1
107
'
108
Function CanRenamePackage(NNpkg_id)
109
    Dim rsTemp, Query_String, count
110
    CanRenamePackage = 0
111
 
112
   Query_String = "select count(*) as count from package_versions where pkg_id=" & NNpkg_id
113
 
114
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
115
 
116
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
117
      count = rsTemp.Fields("count")
118
      If count = 1 Then
119
          CanRenamePackage = 1
120
      End If
121
   End If
122
 
123
   rsTemp.Close
124
   Set rsTemp = nothing
125
End Function
126
 
165 brianf 127
'-------------------------------------------------------------------------------------------------------------
3959 dpurdie 128
' Returns TRUE if the specified version has a COTS extension
129
' Really determines if the extension has to be strict Major.Minor.PatchBuild
130
' or is allowed to be more relaxes. As in COTS and TOOL packages.
131
'
132
' Read from the database to determine type
133
' If we cannot determine the project suffix then assume the worst
134
'
135
Function HasCotsExtension(aExt)
136
   Dim rsQry, Query_String
137
   HasCotsExtension = FALSE
138
 
139
   if aExt <> "" Then
140
       Query_String = "SELECT EXT_NAME FROM PROJECT_EXTENTIONS pe WHERE " &_
141
                      "pe.IS_COTS='Y' AND pe.EXT_NAME='" & LCase(aExt) & "'"
142
       Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )
143
       If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
144
           HasCotsExtension = TRUE
145
       End If
146
       rsQry.Close
147
   Else
148
       HasCotsExtension = TRUE
149
   end If
150
   Set rsQry = Nothing
151
 
165 brianf 152
End Function
153
 
154
'-------------------------------------------------------------------------------------------------------------
155
'Returns TRUE if the specified version has a patch-build number.
156
Function HasPatchBuildNumber(aversion)
157
   'test for a version with a patch build number, ie a dot and at least 4 digits before the extenstion.
158
   Dim re: Set re = New RegExp
159
   re.Pattern = "\.\d{4,}\.[^\.]+$"
160
   HasPatchBuildNumber = re.Test(aversion)
161
   Set re = Nothing      
162
End Function
163
 
3959 dpurdie 164
'-------------------------------------------------------------------------------------------------------------
165
'Returns TRUE if the specified version has a well formed version number
166
Function HasWellFormedVersion(aversion)
167
   'If a package has a major.minor.patch-build number then it is well formed
168
   Dim re: Set re = New RegExp
169
   re.Pattern = "^\d+\.\d+\.\d{4,}\.[^\.]+$"
170
   HasWellFormedVersion = re.Test(aversion)
171
   Set re = Nothing      
172
End Function
173
 
151 ghuddy 174
'-----------------------------------------------------------------------------------------------------------------------------
5338 dpurdie 175
Sub Get_All_Licences ( NNnewlicence_id )
176
   Dim rsTemp, Query_String, selected
177
 
7001 dpurdie 178
   Response.write "<option value='-1'>"& "100% Vix Developed" &"</option>"
5338 dpurdie 179
 
180
   Query_String = _
181
   "   SELECT licence, name"&_
182
   "     FROM licences "&_
183
   "    ORDER BY name ASC"
184
 
185
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
186
 
187
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
188
      selected = ""
189
      If NNnewlicence_id = Cstr( rsTemp.Fields("name")) Then
190
          selected = " selected"
191
      End If
192
      Response.write "<option value='"& rsTemp("licence") &"' "& selected &">"& rsTemp("name") &"</option>"
193
 
194
      rsTemp.MoveNext
195
   WEnd
196
 
197
   rsTemp.Close
198
   Set rsTemp = nothing
199
End Sub
200
 
201
'-----------------------------------------------------------------------------------------------------------------------------
3959 dpurdie 202
Sub Get_All_Base_Views ( NNnewgroup_id )
203
   Dim rsTemp, Query_String
204
 
205
   Query_String = _
206
   "   SELECT vi.view_id, vi.view_name "&_
207
   "     FROM views vi "&_
208
   "    WHERE UPPER(vi.base_view) = 'Y'"&_
209
   "    ORDER BY vi.view_name ASC"
210
 
211
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
212
 
213
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
214
      If NNnewgroup_id = Cstr( rsTemp.Fields("view_id")) Then
215
         Response.write "<option value='"& rsTemp("view_id") &"' selected>"& rsTemp("view_name") &"</option>"
216
      Else
217
         Response.write "<option value='"& rsTemp("view_id") &"'>" & rsTemp("view_name") &"</option>"
218
      End If
219
 
220
      rsTemp.MoveNext
221
   WEnd
222
 
223
   rsTemp.Close
224
   Set rsTemp = nothing
225
End Sub
226
'-----------------------------------------------------------------------------------------------------------------------------
227
Sub Get_All_Personal_Views ( NNuser_id )
228
   Dim rsTemp, Query_String
229
   If NNuser_id = "" Then Exit Sub
230
 
231
   Query_String = _
232
   " SELECT vi.view_id, vi.view_name"&_
233
   "  FROM view_settings vs,"&_
234
   "       views vi"&_
235
   " WHERE vs.view_id = vi.view_id"&_
236
   "   AND vs.user_id = vi.owner_id  "&_
237
   "   AND vs.user_id = "& NNuser_id &_
238
   "   AND vi.base_view = 'N'"&_
239
   " ORDER BY UPPER(vi.view_name)"
240
 
241
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
242
 
243
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
244
      Response.write "<option value='"& rsTemp.Fields("view_id") &"'>"& rsTemp.Fields("view_name") &"</option>"
245
 
246
      rsTemp.MoveNext
247
   WEnd
248
 
249
   rsTemp.Close
250
   Set rsTemp = nothing
251
End Sub
252
'-----------------------------------------------------------------------------------------------------------------------------
7001 dpurdie 253
Sub Get_Newer_Versions()
254
   Dim rsTemp, Query_String, el
255
   bNewerVersions = False
3959 dpurdie 256
 
7001 dpurdie 257
   If isNULL(parPv_id) OR parRename Then Exit Sub
258
 
259
   Query_String = _
260
        "SELECT" &_
261
        "    pv.pv_id," &_
262
        "    pv.pkg_version," &_
263
        "    pv.dlocked," &_
264
        "    TO_CHAR( pv.created_stamp,'DD-Mon-YYYY HH24:MI:SS' ) AS created_stamp" &_
265
        " FROM" &_
266
        "    package_versions pv," &_
267
        "    package_versions pvc" &_
268
        " WHERE" &_
269
        "    pv.created_stamp> pvc.created_stamp" &_
270
        "    AND pv.pkg_id = pvc.pkg_id" &_
271
        "    AND NVL(pvc.v_ext, 'isNULL') = NVL(pv.v_ext, 'isNULL')" &_
7030 dpurdie 272
        "    AND pv.build_type != 'Y'" &_
7001 dpurdie 273
        "    AND pvc.pv_id = " & parPv_id &_
274
        " ORDER by pv.created_stamp desc"
275
 
276
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
277
   sNewerVersionsOptions = ""
278
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
279
       bNewerVersions = True
280
       el = IIF(rsTemp("dlocked") = "Y", "R&nbsp;", "&nbsp;&nbsp;&nbsp;&nbsp;") & rsTemp("pkg_version") & "&nbsp;&nbsp;" & rsTemp("created_stamp")
281
       sNewerVersionsOptions = sNewerVersionsOptions & "<option>" & el & "</option>"
282
      rsTemp.MoveNext
283
   WEnd
284
 
285
   rsTemp.Close
286
   Set rsTemp = nothing
287
 
288
End Sub
289
'-----------------------------------------------------------------------------------------------------------------------------
290
 
119 ghuddy 291
%>
292
<%
293
'===================== MAIN LINE ============================
3959 dpurdie 294
Dim bDisableAuto, bPatchOnly, bIsCots, bIsAuto
151 ghuddy 295
 
4198 dpurdie 296
'------------ Variable Init -------------------
297
parPv_id = QStrPar("pv_id")
298
parBase_view_id = Request("base_view_id")
299
parPkgName = QStrPar("pkgName")
300
parRename = QStrPar("renameMode")
301
rFile = QStrPar("rFile")
6370 dpurdie 302
bCanRenamePackage = 0
303
parPkgId = 0
4198 dpurdie 304
If IsEmpty(rFile) OR rFile = "" Then
305
    rFile="dependencies.asp"
306
End If
307
 
308
newPackage = 0
309
 
310
parPage_title = "NEW VERSION"
311
 
7002 dpurdie 312
If ( parPkgName <> "" OR IsEmpty(parPv_id) ) Then
4198 dpurdie 313
    newPackage = 1
314
    parPv_id = NULL
315
End if
316
 
317
majorState = ""
318
minorState = ""
319
patchState = "checked"
320
 
4210 dpurdie 321
' The build_type will be displayed but not enabled unless the user
322
' is allowed to created manually built packages
323
disableBuildType = FALSE
5061 dpurdie 324
If parRename <> "" OR NOT canActionControlInProject("ApproveForManualBuild") Then
4210 dpurdie 325
    disableBuildType = TRUE
326
End If
327
 
4198 dpurdie 328
Set objPkgInfo = CreateObject("Scripting.Dictionary")
329
 
330
If parRename <> "" Then
4230 dpurdie 331
    If parRename <> 2 Then
332
        parPage_title = "RENAME VERSION"
333
    Else
334
        parPage_title = "VERSION CHANGE TYPE"
335
    End If
4198 dpurdie 336
 
337
    ' Package already exists
3959 dpurdie 338
    Call GetPackageInfo( parPv_id, objPkgInfo )
339
    parPkgName = objPkgInfo.Item("pkg_name")
6370 dpurdie 340
    If parRename <> 2 Then
341
        parPkgId = objPkgInfo.Item("pkg_id")
342
        bCanRenamePackage = CanRenamePackage(parPkgId)
343
    End If
165 brianf 344
 
3959 dpurdie 345
    ' Extract version number without extension
346
    verNumber = objPkgInfo.Item("pkg_version")
347
    verNumber = Mid( verNumber,1, Len(verNumber) - Len(objPkgInfo.Item("v_ext")))
348
 
7002 dpurdie 349
    'Determine current version mechanism: auto, manual
350
    bIsAuto = objPkgInfo.Item("change_type") <> "F"
3959 dpurdie 351
    bIsCots = HasCotsExtension(objPkgInfo.Item("v_ext"))
352
    'Disable the "Auto" build option if the package is a COTS package and the version doesn't have a patch-build number.
7002 dpurdie 353
    bDisableAuto = bIsCots and not HasPatchBuildNumber(objPkgInfo.Item("pkg_version")) and not bIsAuto
3959 dpurdie 354
    'Enable only the "Patch Change" option if the package is a COTS package and the version has a patch-build number.
355
    bPatchOnly = bIsCots and not HasWellFormedVersion(objPkgInfo.Item("pkg_version")) and HasPatchBuildNumber(objPkgInfo.Item("pkg_version"))
356
 
4198 dpurdie 357
    ' Use existing change type and build type
7002 dpurdie 358
    If bDisableAuto Then
359
        bIsAuto = False
360
    End If
4198 dpurdie 361
 
362
    majorState = ""
363
    minorState = ""
364
    patchState = ""
365
    If objPkgInfo.Item("change_type") = "M" Then
366
        majorState = "checked"
367
    ElseIf objPkgInfo.Item("change_type") = "N" Then
368
        minorState = "checked"
369
    Else
370
        patchState = "checked"
371
    End If
372
 
7001 dpurdie 373
ElseIf NOT (newPackage> 0 ) Then
4198 dpurdie 374
    ' Package already exists
4293 dpurdie 375
    ' Creating a new Version of an existing Package
376
    '   Set build_type to Auto - New Versions start in Auto
4198 dpurdie 377
    Call GetPackageInfo( parPv_id, objPkgInfo )
4293 dpurdie 378
    objPkgInfo.Item("build_type") = "A"
379
 
4198 dpurdie 380
    parPkgName = objPkgInfo.Item("pkg_name")
381
 
382
    ' Extract version number without extension
383
    verNumber = objPkgInfo.Item("pkg_version")
384
    verNumber = Mid( verNumber,1, Len(verNumber) - Len(objPkgInfo.Item("v_ext")))
385
 
386
    bIsCots = HasCotsExtension(objPkgInfo.Item("v_ext"))
387
    'Disable the "Auto" build option if the package is a COTS package and the version doesn't have a patch-build number.
388
    bDisableAuto = bIsCots and not HasPatchBuildNumber(objPkgInfo.Item("pkg_version"))
389
    'Enable only the "Patch Change" option if the package is a COTS package and the version has a patch-build number.
390
    bPatchOnly = bIsCots and not HasWellFormedVersion(objPkgInfo.Item("pkg_version")) and HasPatchBuildNumber(objPkgInfo.Item("pkg_version"))
391
 
3959 dpurdie 392
    'if "Auto" build option is disabled then select the Manual option
393
    bIsAuto = NOT bDisableAuto
7002 dpurdie 394
    If bDisableAuto Then
395
        objPkgInfo.Item("build_type") = "M"
396
    End If
3959 dpurdie 397
 
398
Else
399
    ' If New Package and First version
400
    parPage_title = "NEW PACKAGE and FIRST VERSION"
401
    bIsCots = FALSE
402
    bDisableAuto = FALSE
403
    bPatchOnly = FALSE
404
    bIsAuto = TRUE
405
    majorState = "checked"
406
    minorState = ""
407
    patchState = ""
408
    verNumber = "1.0.0000"
4981 dpurdie 409
    objPkgInfo.Item("is_patch") = "false"
151 ghuddy 410
End If
3959 dpurdie 411
 
119 ghuddy 412
'============================================================
413
%>
414
<script language="JavaScript" type="text/JavaScript">
415
<!--
3959 dpurdie 416
var savedVersion;
417
var fieldError;
418
var checkMode;
121 hknight 419
 
3959 dpurdie 420
window.onload = function(e)
421
{
422
   // Init checking mode
423
   //   0 - Checking options one at a time
424
   //       Clear Error display before checking
425
   //
426
   //   1 - Checking before submit
427
   //       Accumulate error messages
428
   //
429
   checkMode = 0;
121 hknight 430
 
3959 dpurdie 431
   savedVersion = "<%=verNumber%>";
432
   document.getElementById('FRvnumber').value = savedVersion;
121 hknight 433
 
4210 dpurdie 434
   // Init the Build Type
435
   // Will be disabled for Rename or User cannot create Manually Built Packages
436
   //
437
   changeToAutoBuild('<%=objPkgInfo.Item("build_type")%>');
438
   <%If disableBuildType Then%>
439
   changeToAutoBuild('D');
440
   <% End If %>
441
 
4203 dpurdie 442
   var isAutobuild = document.NEWversion.version_type[0].checked;
7001 dpurdie 443
   if (!isAutobuild) {
3959 dpurdie 444
      changeToManualVersionNumberAssignment();
7001 dpurdie 445
   } else {
3959 dpurdie 446
      changeToAutoVersionNumberAssignment();
447
   }
4238 dpurdie 448
   updateCopyButton();
3959 dpurdie 449
   checkPackage();
450
   checkBaseView();
5338 dpurdie 451
   checkLicence();
151 ghuddy 452
 
3959 dpurdie 453
   // Hide error message
4028 dpurdie 454
   setIdText('eMessage','');
119 ghuddy 455
}
121 hknight 456
 
4028 dpurdie 457
function setIdText(id, text) {
458
    var element = document.getElementById(id);
459
    if ( element ) {
460
    while (element.firstChild!==null)
461
        element.removeChild(element.firstChild); // remove all existing content
462
    element.appendChild(document.createTextNode(text));
463
    }
464
}
465
 
121 hknight 466
//////////////////////////////////////////////////////////////////
3959 dpurdie 467
// Function: changeToAutoVersionNumberAssignment
121 hknight 468
//
4230 dpurdie 469
// Purpose: Hide the relevant sections of the form
121 hknight 470
//
3959 dpurdie 471
function changeToAutoVersionNumberAssignment()
121 hknight 472
{
4203 dpurdie 473
   document.getElementById('change_type1').style.display = 'table-row';
3959 dpurdie 474
   //document.getElementById('pkgver').style.display = 'none';
475
   savedVersion = document.getElementById('FRvnumber').value;
476
   document.getElementById('FRvnumber').disabled = true;
7001 dpurdie 477
   <%If NOT newPackage> 0 Then%>
4230 dpurdie 478
   document.getElementById('FRuseVersion').style.visibility = 'hidden';
4238 dpurdie 479
   <%End If%>
3959 dpurdie 480
   document.getElementById('FRvnumber').value = '(auto)';
481
   checkVersionNumber();
5590 dpurdie 482
   resizeFrame();
121 hknight 483
}
484
 
485
//////////////////////////////////////////////////////////////////
3959 dpurdie 486
// Function: changeToManualVersionNumberAssignment
121 hknight 487
//
4230 dpurdie 488
// Purpose: Show the relevant sections of the form
121 hknight 489
//
3959 dpurdie 490
function changeToManualVersionNumberAssignment()
121 hknight 491
{
4203 dpurdie 492
   document.getElementById('change_type1').style.display = 'none';
3959 dpurdie 493
   //document.getElementById('pkgver').style.display = 'table-row';
494
   document.getElementById('FRvnumber').disabled = false;
7001 dpurdie 495
   <%If NOT newPackage> 0 Then%>
4230 dpurdie 496
   document.getElementById('FRuseVersion').style.visibility = 'visible';
4238 dpurdie 497
   <%End If%>
4230 dpurdie 498
   if ( savedVersion.indexOf('(') != 0) {
499
       document.getElementById('FRvnumber').value = savedVersion;
500
   } else {
501
       document.getElementById('FRvnumber').value = "";
502
   }
3959 dpurdie 503
   checkVersionNumber();
5590 dpurdie 504
   resizeFrame();
3959 dpurdie 505
}
121 hknight 506
 
4210 dpurdie 507
//////////////////////////////////////////////////////////////////
508
// Function: changeToAutoBuild
509
//
510
// Purpose: Maintain the Manual Auto Build state
511
//
512
var changeToAutoBuildData = new Array;
513
function changeToAutoBuild (mode)
514
{
515
    //  Set to Disable Mode
516
    //      Display only - no editing allowed
517
    if (mode == 'D')
518
    {
519
        document.NEWversion['build_type_M'].disabled = true;
520
        document.NEWversion['build_type_A'].disabled = true;
521
    }
522
 
523
    //  Set to Manual
524
    //      Remember current version_type
525
    //      Force version_type to manual
526
    //      Disable ability to set auto version type
527
    if (mode == 'M')
528
   {
529
       changeToAutoBuildData['M'] =  document.NEWversion['version_type_M'].checked;
530
       changeToAutoBuildData['A'] =  document.NEWversion['version_type_A'].checked;
531
 
532
       document.NEWversion['build_type_M'].checked = true;
4630 dpurdie 533
       document.all['build_type'].value = 'M';
4210 dpurdie 534
       document.NEWversion['version_type_M'].checked = true;
535
       document.NEWversion['version_type_A'].disabled = true;
536
       changeToManualVersionNumberAssignment();
537
   }
538
 
539
    //  Set to Auto
540
    //      Enable auto version_type
541
    //      Restore version type to previous value
542
   if (mode == 'A')
543
   {
544
       document.NEWversion['build_type_A'].checked = true;
545
       document.NEWversion['version_type_A'].disabled = false;
4630 dpurdie 546
       document.all['build_type'].value = 'A';
4210 dpurdie 547
 
548
       if (typeof changeToAutoBuildData['M'] != 'undefined')
549
       {
550
           document.NEWversion['version_type_M'].checked = changeToAutoBuildData['M'];
551
           document.NEWversion['version_type_A'].checked = changeToAutoBuildData['A'];
552
 
553
           if (document.NEWversion['version_type_M'].checked)
554
           {
555
               changeToManualVersionNumberAssignment();
556
           }
557
           else
558
           {
559
               changeToAutoVersionNumberAssignment();
560
           }
561
       }
562
   }
563
}
564
 
565
//////////////////////////////////////////////////////////////////
4238 dpurdie 566
//  Function: updateCopyButton
567
//  Args:     data - New data value
568
function updateCopyButton ()
569
{
570
    var e = document.getElementById("FRpkgver");
571
    var el = document.getElementById('FRuseVersion');
7001 dpurdie 572
    if (e && el) {
4238 dpurdie 573
        var data = e.value;
574
        el.disabled = (data.indexOf('(') == 0)
575
    }
576
}
577
 
578
//////////////////////////////////////////////////////////////////
4230 dpurdie 579
// Function: useVersion
580
//
581
// Purpose: Insert current version ino the version field
582
//          Attached to: FRuseVersion
583
//
584
function useVersion()
585
{
586
    var e = document.getElementById("FRpkgver");
7001 dpurdie 587
    if (e) {
4238 dpurdie 588
        var strUser = e.value;
7001 dpurdie 589
        if ( strUser.indexOf('(') != 0) {
4230 dpurdie 590
            var patt = /\.[a-z]{1,4}$/i;
591
            strUser = strUser.replace(patt,'');
592
            document.getElementById('FRvnumber').value = strUser;
593
            checkVersionNumber();
594
        }
595
    }
596
}
597
 
598
//////////////////////////////////////////////////////////////////
4210 dpurdie 599
// Function: checkPackage
600
//
7001 dpurdie 601
// Purpose:
602
// Returns: A promise 
4210 dpurdie 603
//
3959 dpurdie 604
function checkPackage()
605
{
606
    var f = document.getElementById('NEWversion');
7001 dpurdie 607
    if ( f.newPackage.value> 0 || f.renamePackage.value> 0 ) {
3959 dpurdie 608
        reseteMessage();
609
        MM_validateForm("--Silent",'FRpkgName','Package Name','RisPackage');
610
        checkPackageHighlight( ! document.MM_returnValue, 'Name well formed', 'Invalid Characters in name');
7002 dpurdie 611
        if ( ! document.MM_returnValue ) return jQuery.Deferred().resolve();;
121 hknight 612
 
3959 dpurdie 613
        MM_showProgressBar();
7001 dpurdie 614
        return jQuery.get('_json_checkPackage.asp',{
615
                       packageName :  document.getElementById('FRpkgName').value,
616
                       Opr : 'checkName'
617
                   }, function(){}, 'json'
618
            ).done(function(data, textStatus, jqXHR){
619
                try {
620
                    var f = document.getElementById('NEWversion');
621
                    var pkgId = f.FRpkgId.value;
622
                    if ( !(pkgId != 0 && data.result == pkgId)) {
623
                        checkPackageHighlight(data.result != 0, 'Name is unused', 'Package Exists');
624
                    } else {
625
                        checkPackageHighlight(0, '', '');
626
                    }
627
                }
628
                catch(e) {
629
                    checkPackageHighlight( 1, '','Error in AJAX operation');
630
                }
631
            }).fail(function(jqXHR, textStatus, errorThrown){
632
                checkPackageHighlight( 1, '','Error in AJAX operation');
633
            }).always(function(){
634
                MM_hideProgressBar();
635
                resizeFrame();
636
            });
3959 dpurdie 637
    }
7001 dpurdie 638
    return jQuery.Deferred().resolve();
121 hknight 639
}
3959 dpurdie 640
function checkPackageHighlight(v, msggood, msgbad)
121 hknight 641
{
3959 dpurdie 642
    if (v)
643
    {
4028 dpurdie 644
        setIdText('cpError',msgbad);
3959 dpurdie 645
        addClass(document.getElementById('FRpkgName'), 'form_error' );
646
        showeMessage(document.MM_error);
647
        fieldError = true;
648
    }
649
    else
650
    {
4028 dpurdie 651
        setIdText('cpError',msggood);
3959 dpurdie 652
        removeClass(document.getElementById('FRpkgName'), 'form_error' );
653
    }
121 hknight 654
}
655
 
3959 dpurdie 656
function checkBaseView()
657
{
658
    var f = document.getElementById('NEWversion');
7001 dpurdie 659
    if ( f.newPackage.value> 0 )
3959 dpurdie 660
    {
661
        reseteMessage();
662
        MM_validateForm("--Silent",'base_view_id','Base View','R');
663
        if ( ! document.MM_returnValue )
664
        {
665
            addClass(document.getElementById('base_view_id'), 'form_error' );
4028 dpurdie 666
            setIdText('bvError','Required');
3959 dpurdie 667
            fieldError = true;
668
        }
669
        else
670
        {
671
            removeClass(document.getElementById('base_view_id'), 'form_error' );
4028 dpurdie 672
            setIdText('bvError','');
3959 dpurdie 673
        }
674
    }
675
}
121 hknight 676
 
5338 dpurdie 677
function checkLicence()
678
{
679
    var f = document.getElementById('NEWversion');
7001 dpurdie 680
    if ( f.newPackage.value> 0 )
5338 dpurdie 681
    {
682
        reseteMessage();
683
        MM_validateForm("--Silent",'licence_id','Licence','R');
684
        if ( ! document.MM_returnValue )
685
        {
686
            addClass(document.getElementById('licence_id'), 'form_error' );
687
            setIdText('liError','Required');
688
            fieldError = true;
689
        }
690
        else
691
        {
692
            removeClass(document.getElementById('licence_id'), 'form_error' );
693
            setIdText('liError','');
694
        }
695
    }
696
}
697
 
7001 dpurdie 698
// Returns: A promise 
3959 dpurdie 699
function checkVersionNumber()
151 ghuddy 700
{
3959 dpurdie 701
   reseteMessage();
7001 dpurdie 702
 
703
   // Show/Hide COTS helper message
704
   var ii = document.all['v_ext'].selectedIndex;
705
   var isCots =  document.all['v_ext'].options[ii].hasAttribute('iscots');
706
   Visible('cotsHint', isCots ? 'block': 'none' );
707
 
4203 dpurdie 708
   if (document.NEWversion.version_type[0].checked)
3959 dpurdie 709
   {
710
        removeClass(document.getElementById('FRvnumber'), 'form_error' );
4028 dpurdie 711
        setIdText('vnError','');
712
 
713
        var versionExt = document.all['v_ext'].value;
714
        document.all['FRnewver'].value = versionExt;
7001 dpurdie 715
        return jQuery.Deferred().resolve();
3959 dpurdie 716
   }
717
   else
718
   {
719
        // Get Full version - store into hidden field processing
720
        var versionExt = document.all['v_ext'].value;
721
        var versionBase = document.all['FRvnumber'].value;
722
        document.all['FRnewver'].value = versionBase + versionExt;
723
 
724
        // check the version number is good
4980 dpurdie 725
        MM_validateForm("--Silent",{vBase:versionBase, vExt:versionExt, isPatch:<%=objPkgInfo.Item("is_patch")%>},'Version Number','RisVersionNumber');
3959 dpurdie 726
        if ( ! document.MM_returnValue )
727
        {
728
            addClass(document.getElementById('FRvnumber'), 'form_error' );
4028 dpurdie 729
            setIdText('vnError','Invalid form');
3959 dpurdie 730
            showeMessage(document.MM_error);
731
            fieldError = true;
7001 dpurdie 732
            return jQuery.Deferred().resolve();
3959 dpurdie 733
        }
734
 
735
        MM_showProgressBar();
7001 dpurdie 736
        return jQuery.get('_json_checkPackage.asp',{
737
                       packageName :  document.getElementById('FRpkgName').value,
738
                       Opr : 'checkVer',
739
                       Version : document.all['FRvnumber'].value + document.all['v_ext'].value
740
                   }, function(){}, 'json'
741
            ).done(function(data, textStatus, jqXHR){
5791 dpurdie 742
 
7001 dpurdie 743
                    if(data.error) {
744
                        addClass(document.getElementById('FRvnumber'), 'form_error' );
745
                        setIdText('vnError','Error in AJAX operation');
746
                        showeMessage(data.emsgSummary);
747
                        fieldError = true;
5791 dpurdie 748
 
7001 dpurdie 749
                    } else if(data.result != 0) {
750
                        addClass(document.getElementById('FRvnumber'), 'form_error' );
751
                        setIdText('vnError','Exists');
752
                        showeMessage('Version already exists');
753
                        fieldError = true;
151 ghuddy 754
 
7001 dpurdie 755
                    } else {
756
                        removeClass(document.getElementById('FRvnumber'), 'form_error' );
757
                        setIdText('vnError','');
758
                    }
759
            }).fail(function(jqXHR, textStatus, errorThrown){
760
                checkPackageHighlight( 1, '','Error in AJAX operation');
761
            }).always(function(){
762
                MM_hideProgressBar();
763
                resizeFrame();
764
            });
3959 dpurdie 765
    }
121 hknight 766
}
767
 
3959 dpurdie 768
function checkReason()
769
{
770
   reseteMessage();
771
    MM_validateForm("--Silent",'FRreason','Reason for This Version','maxLength:4000');
772
    if ( ! document.MM_returnValue )
773
    {
774
        addClass(document.getElementById('FRreason'), 'form_error' );
4028 dpurdie 775
        //setIdText('frError','Too Long');
776
 
3959 dpurdie 777
        showeMessage(document.MM_error);
778
        fieldError = true;
779
    }
780
    else
781
    {
782
        removeClass(document.getElementById('FRreason'), 'form_error' );
4028 dpurdie 783
        //setIdText('frError','');
3959 dpurdie 784
    }
785
}
151 ghuddy 786
 
4198 dpurdie 787
function getCheckedRadio(radio_group) {
788
    for (var i = 0; i < radio_group.length; i++) {
789
        var button = radio_group[i];
790
        if (button.checked) {
791
            return button;
792
        }
793
    }
794
    return undefined;
795
}
796
 
4203 dpurdie 797
<%If parRename <> "" Then%>
4198 dpurdie 798
function updateVersionInfo()
799
{
800
   reseteMessage();
7001 dpurdie 801
   var urlArgs = {
802
       packageName : document.getElementById('FRpkgName').value,
803
       Version : document.all['FRvnumber'].value + document.all['v_ext'].value,
804
       buildType : document.all['build_type'].value,
805
       changeType : document.all['change_type'].value,
806
       rtagId : document.all['rtag_id'].value,
807
       pvId : document.all['OLDpv_id'].value,
808
       vExt : document.all['v_ext'].value,
809
       Opr : 'updateVer'
810
   };
4198 dpurdie 811
 
7001 dpurdie 812
   var f = document.getElementById('NEWversion');
813
   if ( f.renamePackage.value> 0 ) {
814
       urlArgs.Mode = 1;
815
   }
4198 dpurdie 816
 
7001 dpurdie 817
   return jQuery.get('_json_updateVersion.asp',urlArgs, function(){}, 'json'
818
       ).done(function(data, textStatus, jqXHR){
819
           if(data.error) {
820
               showeMessage(data.emsgDetails);
821
               fieldError = true;
4198 dpurdie 822
 
7001 dpurdie 823
           } else if(data.result != 0) {
824
               showeMessage('Error changing version number');
825
               fieldError = true;
826
           }
6370 dpurdie 827
 
7001 dpurdie 828
       }).fail(function(jqXHR, textStatus, errorThrown){
829
           checkPackageHighlight( 1, '','Error in AJAX operation');
830
       }).always(function(){
831
           MM_hideProgressBar();
832
           resizeFrame();
833
       });
4198 dpurdie 834
}
835
<%End If%>
836
 
3959 dpurdie 837
function reseteMessage()
838
{
839
    if (checkMode == 0 )
840
    {
4028 dpurdie 841
        setIdText('eMessage','');
3959 dpurdie 842
    }
843
}
844
 
845
function showeMessage(msg)
846
{
4630 dpurdie 847
    var omsg, elem;
3959 dpurdie 848
    if (checkMode == 1 )
849
    {
4630 dpurdie 850
        elem = document.getElementById("eMessage");
851
        omsg = elem.textContent || elem.innerText;
7001 dpurdie 852
        if ( (typeof osmg != 'undefined') && omsg.length> 0 )
3959 dpurdie 853
            omsg += '\n';
854
    }
855
    else
856
    {
857
        omsg = "";
858
    }
859
    omsg += msg;
4028 dpurdie 860
    setIdText('eMessage',omsg);
3959 dpurdie 861
}
862
 
121 hknight 863
// Do not remove these next few lines, otherwise the page does not load properly in Microsoft IE.
119 ghuddy 864
//-->
865
</script>
866
 
867
<script>
121 hknight 868
 
5590 dpurdie 869
<%If NOT bInIframe Then %>
7002 dpurdie 870
    function Dependency() {
5590 dpurdie 871
    <%If parRename <> "" Then%>
872
       parent.window.close();
7001 dpurdie 873
    <%ElseIf newPackage> 0 Then%>
5590 dpurdie 874
       parent.window.location.href="<%=rFile%>?rtag_id=<%=parRtag_id%>";
875
    <%Else%>
876
       parent.window.location.href="<%=rFile%>?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>";
877
    <%End If%>
878
    }
121 hknight 879
 
7002 dpurdie 880
    function resizeFrame() {
5590 dpurdie 881
    }
3959 dpurdie 882
<%Else%>
7002 dpurdie 883
    function Dependency() {
5598 dpurdie 884
		parent.closeIFrame();
5590 dpurdie 885
    }
886
 
7002 dpurdie 887
    function resizeFrame() {
5590 dpurdie 888
        parent.resizeIframe();
889
    }
3959 dpurdie 890
<%End If%>
121 hknight 891
 
151 ghuddy 892
////////////////////////////////////////////////////////////////////////////////////////////////////////
893
// This function returns true if form validation passes, else false
894
// It is called when a user hits the submit button.
895
////////////////////////////////////////////////////////////////////////////////////////////////////////
3959 dpurdie 896
 
7001 dpurdie 897
function  validateFormNEWversion()
151 ghuddy 898
{
3959 dpurdie 899
    var f = document.getElementById('NEWversion');
121 hknight 900
 
3959 dpurdie 901
    if (f == null)
5207 dpurdie 902
        vixAlert('Internal Error<p>Failed To Get NEWversion');   // should never happen unless a coding/rendering mistake is made?
3959 dpurdie 903
    else
904
    {
4028 dpurdie 905
        setIdText('eMessage','');
3959 dpurdie 906
        fieldError = false;
907
        checkMode = 1;
7001 dpurdie 908
        checkPackage().always(function(){
909
            checkBaseView();
910
            checkLicence();
911
            checkVersionNumber().always(function(){
912
                <%If NOT parRename <> "" Then%>
913
                checkReason();
914
                <%End If%>
4198 dpurdie 915
                if (!fieldError)
916
                {
7001 dpurdie 917
                    //  Export the change_type field in a sanitised form
918
                    var ct = getCheckedRadio(document.forms.NEWversion.elements.change_type1).value;
919
                    if(!document.NEWversion.version_type[0].checked) ct = 'F';
920
                    document.all['change_type'].value = ct;
921
 
922
                    MM_showProgressBar();
923
                    <%If parRename <> "" Then%>
924
                        updateVersionInfo().always(function(){
925
                            if (!fieldError)
926
                            {
927
                                <%If NOT bInIframe Then %>
928
                                    parent.window.close();
929
                                    window.opener.document.location='<%=rFile%>?rtag_id=<%=parRtag_id%>&pv_id=<%=parPv_id%>';
930
                                <%Else%>
931
                                    window.parent.location.reload(false);
932
                                <%End If%>
7002 dpurdie 933
                                return false;
7001 dpurdie 934
                            }
935
                        });
5590 dpurdie 936
                    <%Else%>
7001 dpurdie 937
                        f.action='_new_version.asp';
7002 dpurdie 938
                        f.submit();
939
                        return false;
5590 dpurdie 940
                    <%End If%>
4198 dpurdie 941
                }
7001 dpurdie 942
                // Hide progress bar that is exposed because the previous tests were OK
943
                MM_hideProgressBar();
944
                resizeFrame();
945
                checkMode = 0;
946
            });
947
        });
3959 dpurdie 948
    }
949
    return false;
121 hknight 950
}
151 ghuddy 951
 
119 ghuddy 952
</script>
6874 dpurdie 953
<!-- _form_new_version_page.asp -->
7288 dpurdie 954
<div id='ProgressBar' class='vixSpinner' style='visibility:hidden;'></div>
5590 dpurdie 955
<table width="650px" border="0" cellspacing="0" cellpadding="0">
151 ghuddy 956
   <tr>
957
      <td>
6874 dpurdie 958
<%If NOT bInIframe Then %>
7001 dpurdie 959
         <table width="100%" border="0" cellspacing="0" cellpadding="0" class='rounded_box'>
6874 dpurdie 960
             <caption><%=parPage_title%></caption>
961
<%Else%>
151 ghuddy 962
         <table width="100%" border="0" cellspacing="0" cellpadding="0">
5590 dpurdie 963
<%End If%>
151 ghuddy 964
            <tr>
7001 dpurdie 965
               <td valign="top">
151 ghuddy 966
                  <!-- Body -->
7001 dpurdie 967
                  <div class='Panel <%=IIF(NOT bInIframe,"PanelFrame","tight")%>'>
151 ghuddy 968
                     <form id="NEWversion"  name="NEWversion" method="post">
7001 dpurdie 969
                      <table width="100%" border="0" cellspacing="1" cellpadding="5" class='lhsGrey PanelPad'>
3959 dpurdie 970
 
7001 dpurdie 971
                         <!-- Package Name -->
972
                         <tr>
973
                            <td>Package Name</td>
974
                           <% if newPackage> 0 OR bCanRenamePackage> 0 Then %>
975
                                <td>
976
                                  <input type="text" id="FRpkgName" name="FRpkgName"  size="40" value="<%=parPkgName%>" onBlur="checkPackage()">
977
                                  <span id="cpError"></span>
978
                                </td>
979
                            <% Else %>
980
                                <td class="form_field"><%=parPkgName%></td>
981
                            <% End If %>
982
                         </tr>
3959 dpurdie 983
 
7001 dpurdie 984
                         <!--Base View -------------->
985
                         <% if newPackage> 0 Then %>
986
                            <tr>
987
                                <td>To Base View</td>
988
                                <td width="1%" nowrap>
989
                                   <select name="base_view_id" id="base_view_id" class="form_item" onBlur="checkBaseView()">
990
                                      <option></option>
991
                                      <%Call Get_All_Base_Views(parBase_view_id)%>
992
                                   </select>
993
                                   <span id="bvError"></span>
994
                                </td>
995
                             </tr>
3959 dpurdie 996
 
7001 dpurdie 997
                         <!--Personal View -------------->
998
                           <%If QStrPar("Pview") <> "disable" Then%>
999
                            <tr>
1000
                                <td>To Personal View</td>
1001
                               <td width="1%" nowrap background="images/bg_form_lightgray.gif">
1002
                                  <select name="personal_view_id">
1003
                                     <option value="">None</option>
1004
                                     <%Call Get_All_Personal_Views(objAccessControl.UserId )%>
1005
                                  </select>
1006
                               </td>
1007
                            </tr>
1008
                            <%End If%>
3959 dpurdie 1009
 
7001 dpurdie 1010
                            <!-- Software Licence ----------------->
1011
                            <tr>
1012
                               <td>Software Licence<%=Quick_Help("Licence")%></td>
1013
                                <td width="1%" nowrap>
1014
                                   <select name="licence_id" id="licence_id" class="form_item" onBlur="checkLicence()">
1015
                                      <option></option>
1016
                                      <%Call Get_All_Licences(-2)%>
1017
                                   </select>
1018
                                   <span id="liError"></span>
1019
                                </td>
1020
                            </tr>
5338 dpurdie 1021
 
7001 dpurdie 1022
                         <!--Dummy Line to highlight New Package Data -------------->
1023
                            <tr>
1024
                                <td></td>
1025
                                <td class="form_field"></td>
1026
                            </tr>
1027
                         <% End If %>
3959 dpurdie 1028
 
7001 dpurdie 1029
                         <!-- Build Type Assignment ----------------->
1030
                         <tr>
1031
                            <td>Build Type<%=Quick_Help("BuildType")%></td>
1032
                            <td>
1033
                                <input name="build_type1" id="build_type_A" type="radio" value="A" checked onclick="changeToAutoBuild('A');"> Auto
1034
                                <input name="build_type1" id="build_type_M" type="radio" value="M" onclick="changeToAutoBuild('M');"> Manual
1035
                            </td>
1036
                         </tr>
1037
                         <!--Version Number Assignment -------------->
1038
                         <tr>
1039
                               <%
1040
                                    Dim flagAuto, flagMan
1041
                                    if bDisableAuto Then
1042
                                        flagAuto = "disabled"
1043
                                        flagMan = "checked"
1044
                                    Else
1045
                                        If bIsAuto Then
1046
                                            flagAuto = "checked"
1047
                                            flagMan = ""
1048
                                        Else
1049
                                            flagAuto = ""
1050
                                            flagMan = "checked"
1051
                                        End if
1052
                                    End if
1053
                               %>
1054
                            <td>Version Number Assignment<%=Quick_Help("ChangeType")%></td>
1055
                            <td>
1056
                                <input name="version_type" id="version_type_A" type="radio" value="A" <%=flagAuto%> onclick="changeToAutoVersionNumberAssignment();"> Auto
1057
                                <input name="version_type" id="version_type_M" type="radio" value="M" <%=flagMan%> onclick="changeToManualVersionNumberAssignment();"> Manual
1058
                            </td>
1059
                         </tr>
151 ghuddy 1060
 
7001 dpurdie 1061
                         <!-- New Version Number -->
1062
                         <tr>
1063
                            <td>New Version Number</td>
1064
                            <td nowrap>
1065
                                <span>
1066
                                    <input type="text" id="FRvnumber"
1067
                                            name="FRvnumber"
1068
                                             size="12" onBlur="checkVersionNumber()">
1069
                                            <span id="vnError"></span>
1070
                                   <%If NOT newPackage> 0 Then%>
1071
                                      <button type="button" style="visibility:hidden" id="FRuseVersion" class="form_item" onclick="useVersion();">&#8656;&nbsp;Copy</button>
1072
                                      <select id="FRpkgver"  name="FRpkgver" class="form_item"  onchange="updateCopyButton()";>
1073
                                         <option value=""></option>
1074
                                         <%
1075
                                         Set rsLatest = OraDatabase.DbCreateDynaset( Get_Latest_All_Ext( objPkgInfo.Item("pkg_id"), parPv_id ), cint(0))
151 ghuddy 1076
 
7001 dpurdie 1077
                                         If rsLatest.RecordCount> 0 Then
1078
                                            aVersions = rsLatest.GetRows()
1079
                                            lastRow = UBound( aVersions, 2 )
1080
                                            Set objSortHelper = New SortHelper
151 ghuddy 1081
 
7001 dpurdie 1082
                                            ' Sort versions
1083
                                            Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsLatest.FieldIndex("pkg_version") )
151 ghuddy 1084
 
7001 dpurdie 1085
                                            ' Descending order
1086
                                            For i = lastRow To 0 Step -1
1087
                                            %>
1088
                                               <option value="<%=aVersions( rsLatest.FieldIndex("pkg_version"), i )%>" <%=aVersions( rsLatest.FieldIndex("selected"), i )%>>
1089
                                                  <%If aVersions( rsLatest.FieldIndex("dlocked"), i ) = "Y" Then%>
1090
                                                     R&nbsp;
1091
                                                  <%Else%>
1092
                                                     &nbsp;&nbsp;&nbsp;&nbsp;
1093
                                                  <%End If%>
1094
                                                  <%=aVersions( rsLatest.FieldIndex("pkg_version"), i )%>
1095
                                               </option>
1096
                                            <%
1097
                                            Next
1098
                                            Set objSortHelper = nothing
151 ghuddy 1099
 
7001 dpurdie 1100
                                         End If
1101
                                         %>
1102
                                      </select>&nbsp;Existing Versions<%=Quick_Help("Existing")%>
1103
                                   <%End If%>
1104
                                   </span>
1105
                            </td>
1106
                         </tr>
1107
                         <tr>
1108
                            <td>Version Extension</td>
1109
                            <td>
1110
                               <DIV id="divVersionExt" name="divVersionExt">
1111
                                  <select name="v_ext" id="v_ext" class="form_item" onchange="checkVersionNumber()">
1112
                                     <%Call drawExtensionSelectBox( objPkgInfo.Item("v_ext"), true )%>
1113
                                  </select>
1114
                               </DIV>
1115
                              <div id=cotsHint style="display:none">
1116
                                  <p>The version number for a COTS package should be made up of the manufactures version number with a VIX PatchBuild number appended. 
1117
                                     ie: '1.12-beta.0000'
1118
                              </div>
1119
                            </td>
1120
                         </tr>
1121
                         <%If NOT parRename <> "" Then%>
1122
                         <!-- Reason For This Version -->
1123
                         <tr>
1124
                            <td>Reason For This Version</td>
1125
                            <td nowrap width="100%" class="form_field">
1126
                               <textarea name="FRreason" id="FRreason"  class="form_item" style="width: 420px; height: 150px" onBlur="checkReason()"></textarea>
1127
                                <span id="frError"></span>
1128
                            </td>
1129
                         </tr>
1130
                        <%End If%>
1131
                        <tr id="change_type1">
1132
                           <td nowrap>Change Type</td>
1133
                           <td>
1134
                              <table width="100%" border="0" cellspacing="0" cellpadding="0">
1135
                                 <tr>
1136
                                    <td width="1%">
1137
                                      <%If bPatchOnly Then majorState = "disabled" %>
1138
                                      <input name="change_type1" type="radio" value="M" <%=majorState%>>
3959 dpurdie 1139
                                    </td>
7001 dpurdie 1140
                                    <td nowrap>
1141
                                       <span class="form_field">Major Change</span>
1142
                                    </td>
1143
                                    <td>&nbsp;</td>
1144
                                    <td>
1145
                                       <span>A major number change indicates the contract of the package has changed in a non-backwardly compatible manner.</span>
1146
                                    </td>
151 ghuddy 1147
                                 </tr>
1148
                                 <tr>
7001 dpurdie 1149
                                    <td colspan="4"><hr width="100%" size="1" noshade></td>
151 ghuddy 1150
                                 </tr>
1151
                                 <tr>
7001 dpurdie 1152
                                    <td width="1%">
1153
                                      <%If bPatchOnly Then minorState = "disabled" %>
1154
                                      <input name="change_type1" type="radio" value="N" <%=minorState%>>
151 ghuddy 1155
                                    </td>
7001 dpurdie 1156
                                    <td align="center" nowrap>
1157
                                       <span class="form_field">Minor Change</span>
1158
                                    </td>
1159
                                    <td>&nbsp;</td>
1160
                                    <td>
1161
                                       <span>A minor number change indicates the contract of the package has changed in a backwardly compatible manner.</span>
1162
                                    </td>
151 ghuddy 1163
                                 </tr>
1164
                                 <tr>
7001 dpurdie 1165
                                    <td colspan="4"><hr width="100%" size="1" noshade></td>
151 ghuddy 1166
                                 </tr>
7001 dpurdie 1167
                                 <tr>
1168
                                    <td width="1%">
1169
                                       <input name="change_type1" type="radio" value="P" <%=patchState%>>
1170
                                    </td>
1171
                                    <td nowrap>
1172
                                       <span class="form_field">Patch Change</span>
1173
                                    </td>
1174
                                    <td>&nbsp;</td>
1175
                                    <td>
1176
                                       <span>A patch number change indicates the package has changed internally.</span>
1177
                                    </td>
1178
                                 </tr>
1179
                              </table>
6370 dpurdie 1180
 
151 ghuddy 1181
                           </td>
1182
                        </tr>
7001 dpurdie 1183
                         <input type="hidden" name="change_type" id="change_type" value="X">
1184
                         <input type="hidden" name="build_type" id="build_type" value="A">
1185
                         <input type="hidden" name="FRnewver" id="FRnewver" value="hello">
1186
                         <input type="hidden" name="OLDpv_id" value="<%=parPv_id%>">
1187
                         <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
1188
                         <input type="hidden" name="newPackage" value="<%=newPackage%>">
1189
                         <input type="hidden" name="renamePackage" value="<%=bCanRenamePackage%>">
1190
                         <input type="hidden" id="FRpkgId" name="FRpkgId" value="<%=parPkgId%>">
1191
                         <%If NOT ((newPackage> 0) OR bCanRenamePackage> 0) Then %>
1192
                         <input type="hidden" id="FRpkgName" name="FRpkgName" value="<%=parPkgName%>">
1193
                         <%End If%>
1194
 
1195
                      </table>
1196
<%If not isNull(parPv_id) Then
1197
                    Get_Newer_Versions
1198
                    If bNewerVersions Then%>
1199
                    <div class='textPanel warningPanel'>
1200
                        <img src="images/i_warning.gif" width="16" height="16">
1201
                         Newer versions of this package exist. Considerations:
1202
                        <select class=fright><%=sNewerVersionsOptions%></select>
1203
                         <ul>
1204
                             <li>Use the latest version instead</li>
1205
                             <li>Branch the current version</li>
1206
                             <li>Base the 'new' version on the latest version</li>
1207
                         </ul>
1208
                    </div>
1209
                   <%End If
1210
End If%>
1211
                    <div class=buttonPanelWhite>
1212
                      <input type="submit" name="btn" value="Submit" class="form_btn" onClick="return validateFormNEWversion();">
1213
                      <input type="reset" name="btn" value="Cancel" class="form_btn" onClick="Dependency();">
1214
                    </div>
1215
                    <div class='textPanel err_alert'>
1216
                        <span id="eMessage">ERROR: Page Java script did not load</span>
1217
                 </form>
1218
              </table>
1219
              <!-- END Body-->
151 ghuddy 1220
            </tr>
7001 dpurdie 1221
         </div>
151 ghuddy 1222
      </td>
1223
   </tr>
119 ghuddy 1224
</table>