Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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