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