Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%
2
'=====================================================
5080 dpurdie 3
'   _environment.asp
4
'   Build Environment
5
'   Generate the left-hand panel for pages that show Release Content
119 ghuddy 6
'=====================================================
7
%>
8
<!--#include file="_tabs_definition_env.asp"-->
9
<!--#include file="common/_form_window_common.asp"-->
10
<%
11
'------------ Variable Definition -------------
123 ghuddy 12
Dim parOLshow     ' show/hide outer-latest
13
Dim parBshow      ' expand/collapse base views
14
Dim parPshow      ' expand/collapse personal views
15
Dim parPview      ' enable/disable all personal views
16
Dim parDview      ' enable/disable   deployment   view.
5167 dpurdie 17
Dim hasPview      ' Has Personal View
119 ghuddy 18
Dim IMG_locked
19
Dim rsEnvQry
20
Dim pvIdInList
21
Dim checked
22
Dim disabled
23
Dim pkgType
24
Dim SCRIPT_NAME 'Use this here only as the previous one ScriptName is Already Defined
25
'------------ Constants Declaration -----------
26
Const imgMaximise  = "<IMG src='images/i_maximise.gif' alt='Show view contents.' width=13 height=13 hspace='2' vspace='1' border='0'>"
27
Const imgMinimise  = "<IMG src='images/i_minimise.gif' alt='Hide view contents.' width=13 height=13 hspace='2' vspace='1' border='0'>"
28
Const imgForced    = "<img src='images/s_forced.gif' width='19' height='17' align='absmiddle'>"
29
Const imgLocked    = "<img src='images/i_locked.gif' width='7' height='10' border='0' hspace='2'>"
30
Const hlColor      = "#DDDDDD"
31
Const imgAdded     = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='To Be Added'>"
32
Const imgRemoved   = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='To Be Removed'>"
33
'------------ Variable Init -------------------
34
parOLshow = QStrPar("OLshow")
35
parBshow = QStrPar("Bshow")
36
parPshow = QStrPar("Pshow")
37
parPview = QStrPar("Pview")
38
parDview = QStrPar("Dview")
5167 dpurdie 39
hasPview = hasPersonalViews()
40
If NOT hasPview  Then parPview = "disable"
119 ghuddy 41
'----------------------------------------------
42
%>
43
<script language="JavaScript" type="text/javascript">
44
<!--
45
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
46
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0;
47
var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0;
48
    //netscape, safari, mozilla behave the same???
49
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;
50
 
4388 dpurdie 51
///////////////////////////////////////////////
5190 dpurdie 52
//  Function:       destroyPackageVersion    
53
//  Description:    This function will display a conformation dialog before
54
//                  destroying the spacified package-version
55
//
56
function destroyPackageVersion()
57
{
58
    var message = 'You are about to destroy [<%=pkgInfoHash.Item("pkg_name")%>&nbsp;<%=pkgInfoHash.Item("pkg_version")%>].<p>You cannot undo this operation.<br>Do you want to proceed?';
59
    var url = '_destroy_package.asp?rtag_id=<%=Request("rtag_id")%>&bfile=<%=ScriptName%>&pkg_id=<%=pkgInfoHash.Item("pkg_id")%>&pv_id=<%=Request("pv_id")%>';
60
    vixConfirm( message, {title:'Destroy Package Version', 'button' : 'Destroy', url : url, icon : 'images/i_critical.gif'});
61
    return false;
62
}
63
 
64
///////////////////////////////////////////////
4388 dpurdie 65
//  Function:       toggletick    
66
//  Description:    This function will toggle all visible (pending) tick boxes 
67
//  Input:          te  - Controlling element
68
//
69
function toggletick(te)
70
{
71
    // Get the form containing all of the pending items
72
    var f = document.getElementById('pending_PVID_List');
5190 dpurdie 73
    if (f == null ) {
74
       vixAlert('Internal<p>Failed To Get pending_PVID_List');   // should never happen unless a coding/rendering mistake is made?
4388 dpurdie 75
    } else {
76
       if (f.pv_id_list != null) {
77
           if (f.length == 1 || typeof f.pv_id_list.length == "undefined") {
78
              if (false == f.pv_id_list.disabled) {
79
                 f.pv_id_list.checked = te.checked;
80
              }
81
           } else {
82
              for (n = 0; n < f.pv_id_list.length; n++) {
83
                 if (false == f.pv_id_list[n].disabled) {
84
                    f.pv_id_list[n].checked = te.checked;
85
                 }
86
              }
87
           }
88
       }
89
    }
90
}
119 ghuddy 91
 
4388 dpurdie 92
///////////////////////////////////////////////
93
//  Function:       countBulkItems
94
//  Description:    Determine the number of bulk ticked items
95
//                  These are suiable and enabled items
96
//  Input:          f - Form element to process
97
//
98
function countBulkItems(f)
99
{
100
    var n;
101
    var numCheckedAndEnabled = 0;
102
    var numUncheckedAndEnabled = 0;
103
 
104
    // Unbelievably, if the form has just one single PV_ID checkbox item, the syntax via which we access it
105
    // has to change. We cannot use array access syntax in such a case.
106
    if (f.length == 1 || typeof f.pv_id_list.length == "undefined")
107
    {
108
       if (f.pv_id_list.value != null)
109
       {
110
          if (false == f.pv_id_list.disabled)
111
          {
112
             if (true == f.pv_id_list.checked)
113
                numCheckedAndEnabled++;
114
             else
115
                numUncheckedAndEnabled++;
116
          }
117
       }
118
    }
119
    else
120
    {
121
       // Here we can and have to use array access syntax.
122
       for (n = 0; n < f.pv_id_list.length; n++)
123
       {
124
          if (false == f.pv_id_list[n].disabled)
125
          {
126
             if (true == f.pv_id_list[n].checked)
127
                numCheckedAndEnabled++;
128
             else
129
                numUncheckedAndEnabled++;
130
          }
131
       }
132
    }
133
    return numCheckedAndEnabled;
134
}
135
 
123 ghuddy 136
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
137
// This function is executed when the Bulk Release action button is pressed. It will do some local
138
// client side checks and then if all is well, it will use the make_bulk_release.asp to initiate
139
// the bulk release process on the server side.
140
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
141
function makeBulkRelease()
142
{
5190 dpurdie 143
    // Get the form containing all of the pending items
144
    var f = document.getElementById('pending_PVID_List');
145
    if (f == null)
146
    {
147
        vixAlert('Internal<p>Failed To Get pending_PVID_List');   // should never happen unless a coding/rendering mistake is made?
148
        return;
149
    }
150
    // When no items exist in the pending tab, the pending_PVID_List form will not contain any
151
    // element called pv_id_list, so it will be null. Check for that and issue an alert as appropriate.
152
    if (f.pv_id_list == null)
153
    {
154
        vixAlert('There are no items pending that can be considered for bulk release.' +
155
               '<p>Use the Bulk Release button when items with checkboxes are present in the Pending Tab.');
156
        return;
157
    }
119 ghuddy 158
 
5190 dpurdie 159
    var numCheckedAndEnabled = countBulkItems(f);
160
    if (numCheckedAndEnabled == 0)
161
    {
162
        vixAlert('Currently, there are no items that can be bulk released.' +
163
                   '<p>Select items to be released before using the Bulk Release button');
164
        return;
165
    }
166
 
167
     vixConfirm('Release all ('+numCheckedAndEnabled+') checked items from the Pending List.', {
168
        title : 'Confirm Bulk Release',
169
        button : 'Release',
170
        ok : function(){
123 ghuddy 171
            // Initiate the bulk release by redirecting the browser to the make_bulk_release.asp page
172
            // which holds the server side VBScript code that actually carries out the release operations.
173
            // Once complete, that code will redirect the browser back to the dependencies.asp page of which
174
            // this _environment.asp file is a part (by direct inclusion)
125 ghuddy 175
            <%If Request("pv_id") Then%>
176
               f.action = "make_bulk_release.asp?pv_id=<%=Request("pv_id")%>&rtag_id=<%=parRtag_id%>";
123 ghuddy 177
            <%Else%>
178
               f.action = "make_bulk_release.asp?rtag_id=<%=parRtag_id%>";
179
            <%End If%>
180
            f.submit();
181
            // TODO : I would like to show progress? Is that even possible? If so, how?
5190 dpurdie 182
        }
183
    });
123 ghuddy 184
}
119 ghuddy 185
 
4358 dpurdie 186
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
187
// This function is executed when the Bulk Remove action button is pressed. It will do some local
188
// client side checks and then if all is well, it will use the make_bulk_remove.asp to initiate
189
// the bulk remove process on the server side.
190
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
191
function makeBulkReject()
192
{
193
   // Get the form containing all of the pending items
194
   var f = document.getElementById('pending_PVID_List');
195
   if (f == null)
196
   {
5190 dpurdie 197
       vixAlert('Internal<p>Failed To Get pending_PVID_List');   // should never happen unless a coding/rendering mistake is made?
198
       return;
199
   }
200
    // When no items exist in the pending tab, the pending_PVID_List form will not contain any
201
    // element called pv_id_list, so it will be null. Check for that and issue an alert as appropriate.
202
    if (f.pv_id_list == null)
203
    {
204
        vixAlert('There are no items pending that can be considered for Bulk Rejection.' +
205
                   '<p>Use the Bulk Reject button when items with checkboxes are present in the Pending Tab.');
206
        return;
207
    }
208
     var numCheckedAndEnabled = countBulkItems(f);
209
     if (numCheckedAndEnabled == 0)
210
     {
211
         vixAlert('Currently, there are no items that can be Bulk Rejected.' +
212
               '<p>Select items to be released before using the Bulk Reject button');
213
         return;
214
     }
4358 dpurdie 215
 
5190 dpurdie 216
     vixConfirm('Reject all ('+numCheckedAndEnabled+') checked items from the Pending List.',{
217
        title : 'Confirm Bulk Reject',
218
        button : 'Reject',
219
        ok : function(){
220
                // Initiate the bulk remove by redirecting the browser to the make_bulk_remove.asp page
221
                // which holds the server side VBScript code that actually carries out the remove operations.
222
                // Once complete, that code will redirect the browser back to the dependencies.asp page of which
223
                // this _environment.asp file is a part (by direct inclusion)
224
                <%If Request("pv_id") Then%>
225
                   f.action = "make_bulk_reject.asp?pv_id=<%=Request("pv_id")%>&rtag_id=<%=parRtag_id%>";
226
                <%Else%>
227
                   f.action = "make_bulk_reject.asp?rtag_id=<%=parRtag_id%>";
228
                <%End If%>
229
                f.submit();
230
                // TODO : I would like to show progress? Is that even possible? If so, how?
231
            }
232
        });
4358 dpurdie 233
}
234
 
4388 dpurdie 235
///////////////////////////////////////////////
4395 dpurdie 236
//  Function:    openAllViews
237
//  Description: Open and Populate all Views
238
//               Views are populated via AJAX
239
//               Current scheme allows for one AJAX request to be outstanding
240
//               Have AJAX callback determine if there is more work to be done
241
//
242
var openingAllViews = 0;
243
function openAllViews()
244
{
245
    openingAllViews = 0;
246
    toggleAllViewsIcon(0);
247
 
248
    //if (event.shiftKey==1)
249
    //
250
    //  Locate first/next view to be expanded
251
    var divs = document.getElementsByTagName("div");
252
    for (var i=0;i<divs.length;i++) {
253
        var el = divs[i]; 
254
        var id = el.id;
255
        if (id.indexOf("ENVDIV") == 0)
256
        {
257
            var rowId = id.substr(6);
258
            if (el.innerHTML.indexOf('<%=enumLOADING%>') != -1)
259
            {
260
                openingAllViews = 1;
4398 dpurdie 261
                RequestViewContent(rowId);
4395 dpurdie 262
                return;
263
            } else if (el.style.display == 'none') {
264
               UpdateViewHeader(rowId, 0);
265
            }
266
        }
267
    }
268
}
269
 
270
///////////////////////////////////////////////
4388 dpurdie 271
//  Function:       closeAllViews
4395 dpurdie 272
//  Description:    Close and forget about All Populated Views
4388 dpurdie 273
//
274
function closeAllViews()
275
{
4395 dpurdie 276
    openingAllViews = 0;
277
    toggleAllViewsIcon(0);
278
 
4396 dpurdie 279
    //  Get the View cookie and convert it into a hash
280
    var vhash = new Object();
4388 dpurdie 281
    var us = GetCookie('<%=COOKIE_RELMGR_SHOW_VIEW%>');
282
    if (us) {
283
        var aViewList = us.split(',');
284
        for (index=0; index < aViewList.length;++index) {
4396 dpurdie 285
            vhash[aViewList[index]] = 1;
286
        }
287
    }
288
 
289
    //  Locate first/next view to be closed
290
    var divs = document.getElementsByTagName("div");
291
    for (var i=0;i<divs.length;i++) {
292
        var el = divs[i]; 
293
        var id = el.id;
294
        if (id.indexOf("ENVDIV") == 0)
295
        {
296
            var rowId = id.substr(6);
297
            if (el.innerHTML.indexOf('<%=enumLOADING%>') == -1)
298
            {
299
                UpdateViewHeader(rowId, 1);
300
                el.innerHTML = '<%=enumLOADING%>';
301
 
302
                // Delete from cookie too
303
                delete vhash[rowId];
4388 dpurdie 304
            }
305
        }
4396 dpurdie 306
    }
307
 
308
    //  Reform the cookie
309
    if (us)
310
    {
311
        us = Object.keys(vhash).join(',');
4388 dpurdie 312
        // Store to cookie
313
        document.cookie = '<%=COOKIE_RELMGR_SHOW_VIEW%>' + '=' + us;
4396 dpurdie 314
    }
4388 dpurdie 315
}
4358 dpurdie 316
 
4388 dpurdie 317
///////////////////////////////////////////////
4395 dpurdie 318
//  Function:    toggleAllViewsIcon
319
//  Description: Update the toogleAllViews Icon
320
//  arg        : mode - 0 min, else max
321
//
322
function toggleAllViewsIcon(mode)
323
{
324
    //  Update image
325
    //      images/btn_min.gif 
326
    var f = document.getElementById('cb_minall');
327
    if (mode ) {
328
        f.src = 'images/btn_max.gif';
329
    } else {
330
        f.src = 'images/btn_min.gif';
331
    }
332
}
333
 
334
 
335
///////////////////////////////////////////////
4388 dpurdie 336
//  Function:    toggleAllViews
337
//  Description: Hide/Show all the expanded views
338
//               Will not change the saved list, just the current display
339
//
340
function toggleAllViews()
341
{
4396 dpurdie 342
    var dmatch, dset;
4395 dpurdie 343
    openingAllViews = 0;
344
 
345
    //  Update the icon image
4388 dpurdie 346
    var f = document.getElementById('cb_minall');
347
    if (f.src.indexOf('min.gif') >= 0) {
348
        f.src = 'images/btn_max.gif';
349
        dmatch = 'block';
350
        dset = 'none';
351
    } else {
352
        f.src = 'images/btn_min.gif';
353
        dmatch = 'none';
354
        dset = 'block';
355
    }
356
 
4396 dpurdie 357
    //  Locate first/next view to be toggled
358
    var divs = document.getElementsByTagName("div");
359
    for (var i=0;i<divs.length;i++) {
360
        var el = divs[i]; 
361
        var id = el.id;
362
        if (id.indexOf("ENVDIV") == 0)
363
        {
364
            if (el.innerHTML.indexOf('<%=enumLOADING%>') == -1) {
365
                var rowId = id.substr(6);
366
                if (el && el.style.display == dmatch ) {
367
                    el.style.display = dset;
368
                }
4388 dpurdie 369
            }
370
        }
371
    }
372
}
373
 
374
function UpdateViewHeader(rowId, show)
375
{
376
    if ( show )
377
    {
378
       // View is currently minimised
379
       MM_findObj( 'ENVIMG'+ rowId ).src = 'images/btn_max.gif';
380
       MM_findObj( 'SPANVIEW'+ rowId ).style.color = '#808080';
4397 dpurdie 381
       MM_findObj( 'ENVDIV'+ rowId ).style.display = 'none';
4388 dpurdie 382
    }
383
    else
384
    {
385
       // View is currently maximised
386
       MM_findObj( 'ENVIMG'+ rowId ).src = 'images/btn_min.gif';
387
       MM_findObj( 'SPANVIEW'+ rowId ).style.color = '#000000';
4397 dpurdie 388
       MM_findObj( 'ENVDIV'+ rowId ).style.display = 'block';
4388 dpurdie 389
    }
390
}
391
 
4396 dpurdie 392
///////////////////////////////////////////////
393
//  Function:       RequestViewContent    
394
//  Description:    Maintain view content
395
//                  If View Tab is unpopulated - then populate it
396
//                  if View Tab is populated - then Minimise it
4398 dpurdie 397
//  Arguments:      rowId   - Id if Row to Fetch
4396 dpurdie 398
//
4398 dpurdie 399
function RequestViewContent( rowId ){
123 ghuddy 400
   var requestURL = 'RequestViewContent.asp';
4398 dpurdie 401
   var paramString = '?envtab=<%=nEnvTab%>&rtag_id=<%=parRtag_id%>&script_name=<%=ScriptName%>&view_id=' + rowId;
119 ghuddy 402
 
123 ghuddy 403
   // Change display states
404
   if ( (MM_findObj( 'ENVIMG'+ rowId ).src).indexOf('btn_max.gif') == -1 )
405
   {
406
      // View is currently minimised
4388 dpurdie 407
      UpdateViewHeader(rowId, 1);    
119 ghuddy 408
 
123 ghuddy 409
      // Remove from SHow View List
410
      RemoveFromShowView ( rowId );
411
   }
412
   else
413
   {
414
      // View is currently maximised
4388 dpurdie 415
      UpdateViewHeader(rowId, 0);
416
 
123 ghuddy 417
      // Add it to Show view id
418
      AddToShowView ( rowId );
419
   }
119 ghuddy 420
 
123 ghuddy 421
   // Fix div width for ie so it does not overflow
422
   if (is_ie)
423
   {
424
      MM_findObj( 'ENVDIV'+ rowId ).style.width = '100%';
425
   }
119 ghuddy 426
 
123 ghuddy 427
   // Set ajax divname
428
   ajaxdivname = 'ENVDIV'+ rowId;
119 ghuddy 429
 
123 ghuddy 430
   // Request data from server
431
   if ( (MM_findObj( ajaxdivname ).innerHTML).indexOf('<%=enumLOADING%>') != -1 )
432
   {
433
      //Append the name to search for to the requestURL
434
      var url = requestURL + paramString;
119 ghuddy 435
 
123 ghuddy 436
      //Create the xmlHttp object to use in the request
437
      //stateChangeHandler will fire when the state has changed, i.e. data is received back
438
      // This is non-blocking (asynchronous)
439
      xmlHttp = GetXmlHttpObject(stateChangeHandler);
119 ghuddy 440
 
123 ghuddy 441
      //Send the xmlHttp get to the specified url
442
      xmlHttp_Get(xmlHttp, url);
443
   }
444
}
119 ghuddy 445
 
123 ghuddy 446
function GetXmlHttpObject(handler) {
447
   var objXmlHttp = null;    //Holds the local xmlHTTP object instance
119 ghuddy 448
 
123 ghuddy 449
   //Depending on the browser, try to create the xmlHttp object
450
   if (is_ie){
451
      //The object to create depends on version of IE
452
      //If it isn't ie5, then default to the Msxml2.XMLHTTP object
453
      var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
119 ghuddy 454
 
123 ghuddy 455
      //Attempt to create the object
456
      try{
457
         objXmlHttp = new ActiveXObject(strObjName);
458
         objXmlHttp.onreadystatechange = handler;
459
      }
460
      catch(e){
461
      //Object creation errored
462
         alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
463
         return;
464
      }
465
   }
466
   else if (is_opera){
467
      //Opera has some issues with xmlHttp object functionality
468
      alert('Opera detected. The page may not behave as expected.');
469
      return;
470
   }
471
   else{
472
      // Mozilla | Netscape | Safari
473
      objXmlHttp = new XMLHttpRequest();
474
      objXmlHttp.onload = handler;
475
      objXmlHttp.onerror = handler;
476
   }
119 ghuddy 477
 
123 ghuddy 478
   //Return the instantiated object
479
   return objXmlHttp;
119 ghuddy 480
}
481
 
123 ghuddy 482
//stateChangeHandler will fire when the state has changed, i.e. data is received back
483
// This is non-blocking (asynchronous)
484
function stateChangeHandler()
485
{
486
   //readyState of 4 or 'complete' represents that data has been returned
487
   if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){
488
      //Gather the results from the callback
489
      var str = xmlHttp.responseText;
119 ghuddy 490
 
123 ghuddy 491
      //Populate the innerHTML of the div with the results
492
      document.getElementById(ajaxdivname).innerHTML = str;
493
   }
4395 dpurdie 494
 
495
   //Cascade view opening
496
   if (openingAllViews) {
497
       openAllViews();
498
   }
123 ghuddy 499
}
119 ghuddy 500
 
123 ghuddy 501
// XMLHttp send GET request
502
function xmlHttp_Get(xmlhttp, url) {
503
   //Getting a permissions error here? Check the url string to
504
   // ensure it is accurate (defined above)
505
   xmlhttp.open('GET', url, true);
506
   xmlhttp.send(null);
507
}
119 ghuddy 508
 
509
 
510
 
511
function RemoveFromShowView ( ViewId )
512
{
123 ghuddy 513
   // Get current cookie settings
514
   var us = GetCookie('<%=COOKIE_RELMGR_SHOW_VIEW%>');
515
   var aShowViews = new Array();
119 ghuddy 516
 
123 ghuddy 517
   if (us)
518
   {
519
      // Cookie is not empty, hence just append new value
520
      var aViews = us.split(',');
119 ghuddy 521
 
123 ghuddy 522
      // Make sure that view is not already on the list
523
      for (i=0; i<aViews.length; i++)
524
      {
525
         if (aViews[i] != ViewId)
526
         {
527
            aShowViews.push(aViews[i]);
528
         }
529
      }
119 ghuddy 530
 
123 ghuddy 531
      // Make a new view list to be stored in cookie
532
      us = aShowViews.join(',');
533
   }
534
   else
535
   {
536
      us = '';
537
   }
119 ghuddy 538
 
123 ghuddy 539
   // Store to cookie
540
   document.cookie = '<%=COOKIE_RELMGR_SHOW_VIEW%>' + '=' + us;
119 ghuddy 541
}
542
 
543
function AddToShowView ( ViewId )
544
{
123 ghuddy 545
   // Get current cookie settings
546
   var us = GetCookie('<%=COOKIE_RELMGR_SHOW_VIEW%>');
547
   var aShowViews = new Array();
119 ghuddy 548
 
123 ghuddy 549
   //Release Manager Cookie Available on Show View
550
   if ( us )
551
   {
552
      // Cookie is not empty, hence just append new value
553
      var aViews = us.split(',');
119 ghuddy 554
 
123 ghuddy 555
      // Make sure that view is not already on the list
556
      for (i=0; i<aViews.length; i++)
557
      {
558
         if (aViews[i] != ViewId)
559
         {
560
            aShowViews.push(aViews[i]);
561
         }
562
      }
119 ghuddy 563
 
123 ghuddy 564
      // Make a new view list to be stored in cookie
565
      us = aShowViews.join(',') + ',' + ViewId;
566
   }
567
   else//Release Manager Cookie Not Available on Show View
568
   {
569
      // Cookie is empty, just add this value
570
      us = ViewId;
119 ghuddy 571
 
123 ghuddy 572
   }
119 ghuddy 573
 
123 ghuddy 574
   // Store to cookie
575
   document.cookie = '<%=COOKIE_RELMGR_SHOW_VIEW%>' + '=' + us;
119 ghuddy 576
}
5190 dpurdie 577
<%If parRtag_id <> "" Then %>
5087 dpurdie 578
//  Load dialog to add an SDK to the Release
5071 dpurdie 579
function addSdk()
580
{
5087 dpurdie 581
    $('#popmenu').load('_wform_reference_sdk.asp', {rtag_id : <%=parRtag_id%>});
5071 dpurdie 582
}
5190 dpurdie 583
<%End If %>
5071 dpurdie 584
 
119 ghuddy 585
//-->
586
</script>
587
 
588
<%
589
'------------------------------------------------------------------------------------------------------------------------------------------------
590
Function GetEnvTab ( sEnvTab )
5061 dpurdie 591
'   rmDebug = rmDebug & "Cookie[" & Request.Cookies(COOKIE_RELEASEMANAGER_MEMORY) &"] "
592
'   rmDebug = rmDebug & ", Arg[" & sEnvTab & "] "
123 ghuddy 593
   If sEnvTab <> "" Then
594
      GetEnvTab = sEnvTab
5020 dpurdie 595
      Response.Cookies(COOKIE_RELEASEMANAGER_MEMORY)("envtab") = sEnvTab
123 ghuddy 596
   Else
5020 dpurdie 597
      If Request.Cookies(COOKIE_RELEASEMANAGER_MEMORY)("envtab") <> "" Then
598
         GetEnvTab = Request.Cookies(COOKIE_RELEASEMANAGER_MEMORY)("envtab")
123 ghuddy 599
      Else
600
         GetEnvTab = enumENVTAB_WORK_IN_PROGRESS
5020 dpurdie 601
         Response.Cookies(COOKIE_RELEASEMANAGER_MEMORY)("envtab") = enumENVTAB_WORK_IN_PROGRESS
123 ghuddy 602
      End If
603
   End If
5061 dpurdie 604
'   rmDebug = rmDebug & ", GetEnvTab:" & GetEnvTab
119 ghuddy 605
End Function
606
'------------------------------------------------------------------------------------------------------------------------------------------------
607
Sub Display_Env_BaseView ( NNbase_view_id, SSbase_view, BBviewCollapsed, SScontents )
608
%>
609
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
123 ghuddy 610
   <tr>
611
      <td width="1" align="left" valign="top" bgcolor="#dad7c8"><img src="images/p_ctl.gif" width="3" height="3"></td>
612
      <td width="100%" bgcolor="#dad7c8"><img src="images/spacer.gif" width="1" height="1"></td>
613
      <td width="1" bgcolor="#dad7c8"><img src="images/spacer.gif" width="1" height="1"></td>
614
      <td width="1" align="right" valign="top" bgcolor="#dad7c8"><img src="images/p_ctr.gif" width="3" height="3"></td>
615
   </tr>
616
   <tr>
617
      <td align="left" valign="top" bgcolor="#dad7c8">&nbsp;</td>
618
      <td bgcolor="#dad7c8"><SPAN id="SPANVIEW<%=NNbase_view_id%>" <%If BBviewCollapsed Then%>class="body_scol_thin"<%Else%>class="body_txt"<%End If%>>&nbsp;<b><%=SSbase_view%></b></SPAN></td>
4398 dpurdie 619
      <td align="right" bgcolor="#dad7c8"><a href="javascript:;" title="Expand/Collapse View" onClick="RequestViewContent('<%=NNbase_view_id%>');"><img id="ENVIMG<%=NNbase_view_id%>" src="images/<%If BBviewCollapsed Then %>btn_max.gif<%Else%>btn_min.gif<%End If%>" border="0"></a></td>
123 ghuddy 620
      <td align="right" valign="top" bgcolor="#dad7c8">&nbsp;</td>
621
   </tr>
119 ghuddy 622
</table>
623
<DIV id="ENVDIV<%=NNbase_view_id%>" class="envContent" <%If BBviewCollapsed Then %>style="display:none;"<%Else%>style="display:block;"<%End If%>>
123 ghuddy 624
   <%If NOT BBviewCollapsed Then %>
625
      <%=SScontents%>
626
   <%Else%>
627
      <%=enumLOADING%>
628
   <%End If%>
629
</DIV>
119 ghuddy 630
<br>
631
<%
632
End Sub
633
'------------------------------------------------------------------------------------------------------------------------------------------------
5080 dpurdie 634
' Name: Print_View
635
' Desc: Generate the Grouped Package list
119 ghuddy 636
Sub Print_View( NNEnvTab, SSviewtype, NNrtag_id, SSshowviews, NNuser_id )
123 ghuddy 637
   Dim rsView, Query_String
638
   'Dim btn1
639
   Dim tmpURL
640
   Dim SSscript
641
   Dim qstrPar
642
   Dim nViewType
643
   Dim nTrueRecordCount
644
   Dim nOperation
645
   Dim relContentsSTR, viewCollapsed, curr_view_id, view_name
5167 dpurdie 646
   Dim canBeEmpty
119 ghuddy 647
 
5098 dpurdie 648
   If isDefined("allowNoPackage") Then
123 ghuddy 649
      SSscript = "dependencies.asp"
650
   Else
651
      SSscript = scriptName
652
   End If
119 ghuddy 653
 
123 ghuddy 654
   If SSviewtype = "guest" Then
655
      nViewType = 1
656
      qstrPar = "Bshow"
657
   ElseIf SSviewtype = "personal" Then
658
      nViewType = 2
659
      qstrPar = "Pshow"
660
   End If
5167 dpurdie 661
   canBeEmpty = false
662
 
5061 dpurdie 663
'rmDebug = rmDebug & " ,NNEnvTab[" & NNEnvTab & "," & CInt(NNEnvTab) & "]"
123 ghuddy 664
   OraDatabase.Parameters.Add "VIEW_TYPE",           nViewType, ORAPARM_INPUT, ORATYPE_NUMBER
665
   'OraDatabase.Parameters.Add "VIEW_ID_SHOW_LIST",   ShowView( Pipes2Commas( SSshowviews ), SSviewtype ), ORAPARM_INPUT, ORATYPE_VARCHAR2
666
   OraDatabase.Parameters.Add "VIEW_ID_SHOW_LIST",   GetShowViewList(), ORAPARM_INPUT, ORATYPE_VARCHAR2
667
   OraDatabase.Parameters.Add "RTAG_ID",             NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
668
   OraDatabase.Parameters.Add "USER_ID",             NNuser_id, ORAPARM_INPUT, ORATYPE_NUMBER
669
   OraDatabase.Parameters.Add "TRUE_RECORD_COUNT",   NULL, ORAPARM_OUTPUT, ORATYPE_NUMBER
670
   OraDatabase.Parameters.Add "RECORD_SET",          NULL, ORAPARM_OUTPUT, ORATYPE_CURSOR
119 ghuddy 671
 
123 ghuddy 672
   'If it's a Deployment View
673
   If parDview = "enable" Then
674
      ' Decide which environment list is to be displayed to the Integrators/Testers
675
      Select Case CInt( NNEnvTab )
676
         Case enumENVTAB_PRODRELEASE
677
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_PRODRELEASE_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 678
 
123 ghuddy 679
         Case enumENVTAB_INTEGRATE
680
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_INTEGRATION_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 681
 
123 ghuddy 682
         Case enumENVTAB_TEST
683
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_TEST_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 684
 
123 ghuddy 685
         Case enumENVTAB_DEPLOY
686
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_DEPLOY_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 687
 
123 ghuddy 688
         Case enumENVTAB_REJECT
689
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_REJECT_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 690
 
123 ghuddy 691
      End Select
119 ghuddy 692
 
123 ghuddy 693
   Else
694
      ' Decide which environment list is to be displayed
695
      Select Case CInt( NNEnvTab )
696
         Case enumENVTAB_WORK_IN_PROGRESS
697
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_WORK_IN_PROGRESS_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
5167 dpurdie 698
            canBeEmpty = true
119 ghuddy 699
 
123 ghuddy 700
         Case enumENVTAB_PLANNED
701
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_PENDING_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
5167 dpurdie 702
            canBeEmpty = true
119 ghuddy 703
 
123 ghuddy 704
         Case enumENVTAB_RELEASED
705
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_RELEASED_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 706
 
123 ghuddy 707
         Case Else
708
            OraDatabase.ExecuteSQL "BEGIN  PK_ENVIRONMENT.GET_ENVIRONMENT_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET );  END;"
119 ghuddy 709
 
123 ghuddy 710
      End Select
119 ghuddy 711
 
123 ghuddy 712
   End If
119 ghuddy 713
 
123 ghuddy 714
   ' Get Record set from database
715
   Set rsView = OraDatabase.Parameters("RECORD_SET").Value
716
   nTrueRecordCount = OraDatabase.Parameters("TRUE_RECORD_COUNT").Value
119 ghuddy 717
 
123 ghuddy 718
   OraDatabase.Parameters.Remove "RTAG_ID"
719
   OraDatabase.Parameters.Remove "USER_ID"
720
   OraDatabase.Parameters.Remove "VIEW_TYPE"
721
   OraDatabase.Parameters.Remove "VIEW_ID_SHOW_LIST"
722
   OraDatabase.Parameters.Remove "RECORD_SET"
723
   OraDatabase.Parameters.Remove "TRUE_RECORD_COUNT"
119 ghuddy 724
 
123 ghuddy 725
   ' Initialise variables
726
   If ((NOT rsView.BOF) AND (NOT rsView.EOF)) Then
727
      relContentsSTR = ""
728
      viewCollapsed = FALSE
729
      curr_view_id = rsView("view_id")      ' Set current view
730
      view_name = rsView("view_name")
731
   End If
119 ghuddy 732
 
123 ghuddy 733
   While ((NOT rsView.BOF) AND (NOT rsView.EOF))
734
      '==== Get View Contents ====
735
      If NOT IsNull(rsView.Fields("pv_id")) Then
736
         tmpURL = SSscript &"?pv_id="& rsView.Fields("pv_id") &"&rtag_id="& parRtag_id
737
         IMG_locked = ""
738
         If rsView.Fields("dlocked") = "Y" Then IMG_locked = imgLocked
119 ghuddy 739
 
123 ghuddy 740
         ' DEVI-45275 - Normally, dlocked=Y items are denoted with a padlock icon on the web page. Since we can now merge
741
         ' into the pending tab, the dlocked=Y items that end up there would not give any visual indication to the user
742
         ' as to why they are present. So, instead of the padlock icon, display the added or removed icon to indicate
743
         ' what the intended action is to be, once the pending item is approved.
744
         ' Obviously, this functionality does not apply if we are in the deployment view, and only applies if viewing
745
         ' the PENDING or ALL environment tabs.
746
         ' With regard to the operation value, A = Added, S = Subtracted
747
         nOperation = " "
748
         If parDview <> "enable" AND (CInt( NNEnvTab ) = enumENVTAB_PLANNED OR CInt( NNEnvTab ) = enumENVTAB_ALL) Then
749
            nOperation = rsView.Fields("operation")   ' NB. this field is only availble if earlier query was GET_PENDING_ITEMS or GET_ENVIRONMENT_ITEMS
750
            If nOperation = "A" Then
751
               IMG_locked = imgAdded
752
            ElseIf nOperation = "S" Then
753
               IMG_locked = imgRemoved
754
            End If
755
         End If
119 ghuddy 756
 
123 ghuddy 757
         relContentsSTR = relContentsSTR & "<tr>" & VBNewLine
119 ghuddy 758
 
123 ghuddy 759
         If rsView("pkg_state") = 0 And rsView.Fields("deprecated_state") <> "" Then
760
            relContentsSTR = relContentsSTR & "  <td width='1%'>"& DefineStateIcon ( rsView.Fields("deprecated_state"), rsView("dlocked"), NULL, NULL, pkgInfoHash.Item("build_type"), TRUE ) &"</td>"& VBNewLine
761
         Else
762
            If (parDview <> "enable") AND ( ( CInt(NNEnvTab) = enumENVTAB_PLANNED ) OR ( Request("envtab") = enumENVTAB_PLANNED ) ) Then
119 ghuddy 763
 
123 ghuddy 764
               ' if package version is unlocked, rejected, or pending approval, or is to be added/subtracted to/from the release (DEVI-45275), then
765
               If (rsView("dlocked") = "N") OR (rsView("dlocked") = "R") OR (rsView("dlocked") = "P") OR (nOperation = "A") OR (nOperation = "S") Then
766
                  checked = NULL
767
                  disabled = NULL
768
                  ' disable check box if not logged in, or if not in open mode and user has no permission to approve pending
769
                  If objAccessControl.UserLogedIn Then
770
                     If ( ReleaseMode <> enumDB_RELEASE_IN_OPEN_MODE ) Then
5061 dpurdie 771
                        If NOT canActionControlInProject("ApproveForAutoBuild") Then
123 ghuddy 772
                           disabled = "disabled"
773
                        End If
774
                     End If
775
                  Else
776
                     disabled = "disabled"
777
                  End If
119 ghuddy 778
 
123 ghuddy 779
               Else ' always check and disable the checkbox
780
                  checked = "checked"
781
                  disabled = "disabled"
782
               End If
119 ghuddy 783
 
123 ghuddy 784
               relContentsSTR = relContentsSTR & " <td width='1%'><input name='pv_id_list' id='pv_id_list' type=checkbox value="&rsView.Fields("pv_id")&" "&checked&" "&disabled&"></td>"& VBNewLine
785
            Else
5080 dpurdie 786
               relContentsSTR = relContentsSTR & " <td width='1%'>" & DefineStateIcon ( rsView("pkg_state"), rsView("dlocked"), NULL, NULL, pkgInfoHash.Item("build_type"), TRUE ) &"</td>"& VBNewLine
123 ghuddy 787
            End If
788
         End If
119 ghuddy 789
 
123 ghuddy 790
         relContentsSTR = relContentsSTR & "  <td width='100%' nowrap><a href='"& tmpURL &"' class='body_txt_drk' title="""& HTMLEncode( rsView("pv_description") ) &""">"& rsView.Fields("pkg_name") &"</a></td>" & VBNewLine
791
         relContentsSTR = relContentsSTR & "  <td width='1%' nowrap class='envPkg'>"& rsView.Fields("pkg_version") &"</td>" & VBNewLine
792
         relContentsSTR = relContentsSTR & "  <td width='1%'>"& IMG_locked &"</td>"
793
         relContentsSTR = relContentsSTR & "</tr>" & VBNewLine
794
      Else
795
         'relContentsSTR = relContentsSTR & "<tr><td><label class='form_txt' disabled>...</label></td></tr>"      ' Collapsed view displays dots
119 ghuddy 796
 
123 ghuddy 797
         viewCollapsed = TRUE
798
      End If
119 ghuddy 799
 
123 ghuddy 800
      rsView.MoveNext
119 ghuddy 801
 
123 ghuddy 802
      If ((NOT rsView.BOF) AND (NOT rsView.EOF)) Then
803
         ' NOT end of the record set
804
         If curr_view_id <> rsView("view_id") Then
805
            '====== Draw buttons =================================
806
            'If InStrPipes( SSshowviews, curr_view_id ) Then
807
            '   btn1 = "<a href='"& SSscript &"?"& qstrPar &"="& RemoveFromStrPipes( SSshowviews, curr_view_id ) &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"' >"& imgMinimise &"</a>"
808
            'Else
809
            '   btn1 = "<a href='"& SSscript &"?"& qstrPar &"=|"& curr_view_id &"|"& SSshowviews &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"'>"& imgMaximise &"</a>"
810
            'End If
119 ghuddy 811
 
123 ghuddy 812
            '====== Print contents ===============================
813
            relContentsSTR = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>" & relContentsSTR & "</table>"
814
            Call Display_Env_BaseView ( curr_view_id, view_name, viewCollapsed, relContentsSTR )
119 ghuddy 815
 
123 ghuddy 816
            curr_view_id = rsView("view_id")
817
            view_name = rsView("view_name")
818
            relContentsSTR = ""      ' Empty the contents string
819
            viewCollapsed = FALSE
820
         End If
119 ghuddy 821
 
123 ghuddy 822
      Else
823
         ' End of the record set
119 ghuddy 824
 
123 ghuddy 825
         '====== Draw buttons =================================
826
         'If InStrPipes( SSshowviews, curr_view_id ) Then
827
         '   btn1 = "<a href='"& SSscript &"?"& qstrPar &"="& RemoveFromStrPipes( SSshowviews, curr_view_id ) &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"' >"& imgMinimise &"</a>"
828
         'Else
829
         '   btn1 = "<a href='"& SSscript &"?"& qstrPar &"=|"& curr_view_id &"|"& SSshowviews &"&pv_id="& Request("pv_id") &"&rtag_id="& NNrtag_id &"'>"& imgMaximise &"</a>"
830
         'End If
119 ghuddy 831
 
123 ghuddy 832
         '====== Print contents ===============================
833
         relContentsSTR = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>" & relContentsSTR & "</table>"
834
         Call Display_Env_BaseView ( curr_view_id, view_name, viewCollapsed, relContentsSTR )
119 ghuddy 835
 
123 ghuddy 836
      End If
119 ghuddy 837
 
123 ghuddy 838
   WEnd
119 ghuddy 839
 
123 ghuddy 840
   If relContentsSTR <> "" Then
841
      Response.write "<a href='help/icons_F017.asp' target='_blank' class='body_scol'>Icon Legend...</a><br>"
842
   End If
119 ghuddy 843
 
123 ghuddy 844
   If nTrueRecordCount > 0 Then
845
      If rsView.RecordCount < 1 Then
846
         'If qstrPar = "Bshow" Then
847
         '   'Release is empty. Draw default box for Base view
848
         '   Call DisplayInfo ( "EMPTY_RELEASE_CONTENTS", "100%" )
849
         '
850
         'End If
119 ghuddy 851
 
5167 dpurdie 852
         If qstrPar = "Pshow" AND hasPview AND NOT canBeEmpty Then
123 ghuddy 853
            'Release is empty. Draw default box for Personal view
854
            Call DisplayInfo ( "PERSONAL_VIEW_NOT_SETUP", "100%" )
855
         End If
119 ghuddy 856
 
123 ghuddy 857
      End If
858
   End If
119 ghuddy 859
 
123 ghuddy 860
   ' Destroy
861
   rsView.Close
862
   Set rsView = nothing
119 ghuddy 863
End Sub
864
'------------------------------------------------------------------------------------------------------------------------------------------------
5167 dpurdie 865
' Detect the presence of a Personal View so that the controls can be disabled if the user does
866
' not have any.
867
'
868
Function hasPersonalViews ( )
869
   Dim rsTemp, Query_String
870
   hasPersonalViews = false
119 ghuddy 871
 
5167 dpurdie 872
   If objAccessControl.UserLogedIn Then
873
       Query_String = "select count(*) from views where owner_id = " & objAccessControl.UserId
119 ghuddy 874
 
5167 dpurdie 875
       Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
876
       If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
877
          If  rsTemp.Fields(0) > 0 Then
878
              hasPersonalViews = true
879
          End If
880
       End If
881
 
882
       rsTemp.Close
883
       Set rsTemp = nothing
123 ghuddy 884
   End If
5167 dpurdie 885
End Function
886
 
119 ghuddy 887
'------------------------------------------------------------------------------------------------------------------------------------------------
888
Function GetShowViewList ()
123 ghuddy 889
   'If SSparshow <> "" Then
890
   '   ' get list from query string
891
   '   ShowView = SSparshow
892
   'ElseIf Request.Cookies("RELEASEMANAGER_VIEW_SHOW")( SSviewtype ) <> "" Then
893
   '   ' get list from cookie
894
   '   ShowView = Request.Cookies("RELEASEMANAGER_VIEW_SHOW")( SSviewtype )
895
   'Else
896
   '   ' no list i.e. collapse all views
897
   '   ShowView = -1
898
   'End If
119 ghuddy 899
 
123 ghuddy 900
   'If oShowView.Count = 0 Then
901
   '   GetShowViewList = -1
902
   'Else
903
   '   GetShowViewList = Join( oShowView.Keys, "," )
904
   'End If
119 ghuddy 905
 
123 ghuddy 906
   If Request.Cookies(COOKIE_RELMGR_SHOW_VIEW) = "" Then
907
      GetShowViewList = -1
908
   Else
909
      GetShowViewList = Request.Cookies(COOKIE_RELMGR_SHOW_VIEW)
910
   End If
119 ghuddy 911
 
912
End Function
125 ghuddy 913
 
119 ghuddy 914
'------------------------------------------------------------------------------------------------------------------------------------------------
125 ghuddy 915
' This function forms a URL to use for refreshing the current dependencies.asp based page using the settings that are in effect at the time.
916
' Most importantly, it filters out the pv_id parameter if it is null (which otherwise would cause the page to be rendered incorreclty for an
917
' as yet, unknown reason).
918
'
919
Function RefreshedURL(NNdview, NNpview, NNpv_id, NNrtag_id)
920
   Dim url
921
 
922
   url = scriptName & "?Dview=" & NNdview & "&Pview=" & NNpview
923
 
924
   If NNpv_id Then
925
      url = url & "&pv_id=" & NNpv_id
926
   End If
927
 
928
   url = url & "&rtag_id=" & NNrtag_id
929
 
930
   RefreshedURL = url
931
End Function
932
 
933
 
934
'------------------------------------------------------------------------------------------------------------------------------------------------
119 ghuddy 935
%>
936
<%
937
 
938
'------------------------- MAIN LINE ---------------------------
939
%>
940
 
941
<%If parRtag_Id <> "" Then%>
942
<!-- RELEASE ACTION BUTTONS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
943
 
123 ghuddy 944
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
945
      <tr>
946
         <td width="1" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="10" height="35"></td>
947
         <td width="100%" nowrap background="images/bg_action_norm.gif" >
948
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
949
               <tr>
950
                  <%
5061 dpurdie 951
                  If objAccessControl.UserLogedIn AND ((((ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE)) AND canActionControlInProject("AddDeletePackageInRestrictiveMode")) OR (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE )) Then
123 ghuddy 952
                     Response.write "<td width='1'><a href='form_search_pkgs.asp?rtag_id="& Request("rtag_id") &"&add_type="& enum_ADD_PACKAGES &"' title='Add package to this release'><img src='images/abtn_add_pkg.gif'  width='25' height='25' hspace='1' border='0'></a></td>"
953
                  Else
954
                     Response.write "<td width='1'><img src='images/abtn_add_pkg_off.gif' alt='Add package to this release' width='26' height='26' hspace='1' border='0'></td>"
955
                  End If
119 ghuddy 956
 
4670 dpurdie 957
                  If (pkgInfoHash.Item("dlocked") <> "Y") AND (Request("pv_id") <> "") Then
5061 dpurdie 958
                     If  (objAccessControl.UserLogedIn) AND ( (objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (canActionControlInProject("DestroyPackageFromRelease")) ) Then
5190 dpurdie 959
                        Response.write "<td width='1'><a href='javascript:;' title='Destroy the selected Package Version' onClick='destroyPackageVersion();'><img src='icons/i_destroy_package.gif' alt='Destroy the selected Package Version' width='26' height='26' hspace='1' border='0'></td>"
4670 dpurdie 960
                     Else
961
                        Response.write "<td width='1'><img title='Destroy the selected Package Version' src='icons/i_destroy_package_off.gif' alt='Destroy the selected Package Version' width='26' height='26' hspace='1' border='0'></td>"
123 ghuddy 962
                     End If
963
                  End If
119 ghuddy 964
 
5061 dpurdie 965
                   ' Anybody can view properties
966
                   Response.write "<td width='1'><a href='form_edit_release.asp?rtag_id="&parRtag_id&"' title='Release properties'><img src='images/abtn_release_properties.gif'  width='25' height='25' hspace='1' border='0'></a></td>"
119 ghuddy 967
 
123 ghuddy 968
                  Response.write "<td width='1'><img src='images/spacer.gif' width='7' height='25'></td>"
969
                  If objAccessControl.UserLogedIn Then
5167 dpurdie 970
                      If hasPview Then
971
                         If parPview = "disable" Then
972
                            Dim ref : ref = RefreshedURL(parDview, "", Request("pv_id"), Request("rtag_id"))
973
                            Response.write "<td width='1'><a href='"&ref&"' title='Personal view disabled. Click to enable.'><img src='images/abtn_base_view.gif'  width='25' height='25' hspace='1' border='0'></a></td>"
974
                         Else
975
                            ref = RefreshedURL(parDview, "disable", Request("pv_id"), Request("rtag_id")) 
976
                            Response.write "<td width='1'><a href='"&ref&"' title='Personal view enabled. Click for full view.'><img src='images/abtn_personal_view.gif'  width='25' height='25' hspace='1' border='0'></a></td>"
977
                         End If
978
                      Else
979
                            Response.write "<td width='1'><span title='No Personal View configured.'><img src='images/abtn_personal_view_off.gif'  width='26' height='26' hspace='1' border='0'></span></td>"
980
                      End If
123 ghuddy 981
                  Else
982
                     Response.write "<td width='1'><img src='images/abtn_personal_view_off.gif' width='26' height='26' hspace='1' border='0'></td>"
983
                  End If
119 ghuddy 984
 
5167 dpurdie 985
                  If parDview = "enable" Then
986
                     Response.write "<td width='1'><a href='"& RefreshedURL("", parPview, Request("pv_id"), Request("rtag_id")) &"' title='Click to switch to Release View'><img src='icons/ReleaseView.gif'  width='25' height='25' hspace='1' border='0'></a></td>"
123 ghuddy 987
                  Else
5167 dpurdie 988
                     Response.write "<td width='1'><a href='"& RefreshedURL("enable", parPview, Request("pv_id"), Request("rtag_id")) &"' title='Click to switch to Deployment View'><img src='icons/DeploymentView.gif'  width='25' height='25' hspace='1' border='0'></a></td>"
123 ghuddy 989
                  End If
119 ghuddy 990
 
123 ghuddy 991
                  Response.write "<td width='1'><img src='images/spacer.gif' width='7' height='25'></td>"
119 ghuddy 992
 
5071 dpurdie 993
                  Response.write "<td width='1'><a href='javascript:;' title='SDK Managment' onClick='ToggleDisplay(""DIV_RELEASE_SDK"",""SPAN_RELEASE_SDK"",""SPAN_RELEASE_SDK_ON""); ' ><SPAN name='SPAN_RELEASE_SDK' id='SPAN_RELEASE_SDK' style='display:block;'><img src='images/abtn_link_release.gif' width='25' height='25' border='0' hspace='1' ></SPAN><SPAN name='SPAN_RELEASE_SDK_ON' id='SPAN_RELEASE_SDK_ON' style='display:none;'><img src='images/abtn_link_release_on.gif' width='25' height='25' border='0' hspace='1' ></SPAN></a></td>"
119 ghuddy 994
 
123 ghuddy 995
                  Response.write "<td width='1'><img src='images/spacer.gif' width='7' height='25'></td>"
119 ghuddy 996
 
123 ghuddy 997
                  Response.write "<td width='1'><a href='javascript:;' title='Advanced Search...' onClick='ToggleAdvancedSearch(); ' ><SPAN name='SPAN_ADVANCED_SEARCH' id='SPAN_ADVANCED_SEARCH' style='display:block;'><img src='images/abtn_advanced_search.gif' width='25' height='25' border='0' hspace='1' ></SPAN><SPAN name='SPAN_ADVANCED_SEARCH_ON' id='SPAN_ADVANCED_SEARCH_ON' style='display:none;'><img src='images/abtn_advanced_search_on.gif' width='25' height='25' border='0' hspace='1' ></SPAN></a></td>"
119 ghuddy 998
 
5167 dpurdie 999
                  If ( (parDview <> "enable") AND ( (CInt(nEnvTab) = enumENVTAB_PLANNED) OR (Request("envtab") = enumENVTAB_PLANNED) ) ) Then
123 ghuddy 1000
                     If objAccessControl.UserLogedIn Then
4687 dpurdie 1001
                        If ( ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE ) OR _
5061 dpurdie 1002
                                canActionControlInProject("ApproveForAutoBuild") OR _
1003
                                canActionControlInProject("ApproveForManualBuild") Then
123 ghuddy 1004
                              Response.write "<td width='1'><a href='#' onClick='makeBulkRelease();'><img src='images/abtn_make_release_bulk.gif' title='Make Bulk Release...'></td>"
4687 dpurdie 1005
                              Response.write "<td width='1'><img src='images/spacer.gif' width='1' height='25'></td>"
4358 dpurdie 1006
                              Response.write "<td width='1'><a href='#' onClick='makeBulkReject();'><img src='images/abtn_make_bulk_remove.gif' title='Bulk Reject...'></td>"
1007
                        End If
1008
                     End If
1009
                  End If
123 ghuddy 1010
                  %>
1011
                  <td width="100%"><img src="images/spacer.gif" width="1" height="1"></td>
1012
               </tr>
1013
            </table>
1014
         </td>
1015
         <td width="1" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="10" height="8"></td>
1016
      </tr>
1017
   </table>
119 ghuddy 1018
 
1019
<!-- ADVANCED SEARCH ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
123 ghuddy 1020
   <DIV name="DIV_ADVANCED_SEARCH" id="DIV_ADVANCED_SEARCH" style="display:none;">
1021
      <table width="100%" border="0" cellspacing="0" cellpadding="10">
1022
         <form name="advancedsearch" method="get" action="find.asp">
1023
            <tr>
1024
               <td nowrap  class="form_txt" valign="middle">
1025
                  <%
1026
                  Dim FindPackageCheck, FindFileCheck
119 ghuddy 1027
 
123 ghuddy 1028
                  FindPackageCheck = ""
1029
                  FindFileCheck = ""
119 ghuddy 1030
 
123 ghuddy 1031
                  If Request("searchtype") = "2" Then
1032
                     FindFileCheck = "checked"
1033
                  Else
1034
                     FindPackageCheck = "checked"
1035
                  End If
119 ghuddy 1036
 
123 ghuddy 1037
                  %>
1038
                  <fieldset>
1039
                     <legend class="body_colb"><img src="images/i_mglass.gif" width="17" height="17" border="0" align="absmiddle">&nbsp;Advanced Search</legend>
1040
                     <input name="searchtype" id="searchtype1" type="radio" value="1" <%=FindPackageCheck%>>
1041
                     <a href="javascript:;" onClick="MM_findObj('searchtype1').checked=true;" class="body_txt">Find a Package</a><br>
1042
                     <input name="searchtype" id="searchtype2" type="radio" value="2" <%=FindFileCheck%>>
1043
                     <a href="javascript:;" onClick="MM_findObj('searchtype2').checked=true;" class="body_txt">Find a File</a><br><br>
1044
                     <%If CInt(nEnvTab) = enumENVTAB_WORK_IN_PROGRESS Then%>
1045
                        Find in Work In Progress<br>
1046
                     <%ElseIf CInt(nEnvTab) = enumENVTAB_PLANNED Then%>
1047
                        Find in Pending<br>
1048
                     <%ElseIf  CInt(nEnvTab) = enumENVTAB_RELEASED Then%>
1049
                        Find in Released<br>
1050
                     <%End If%>
1051
                     <input type="text" name="keyword" size="25" class="form_ivaluew" value="<%=Request("keyword")%>">
1052
                     <input type="submit" name="btn" value="Find" class="form_ivalue">
119 ghuddy 1053
 
123 ghuddy 1054
                     <input type="hidden" name="envtab" value="<%=nEnvTab%>">
1055
                     <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
1056
                  </fieldset>
1057
                  <br>
1058
               </td>
1059
            </tr>
1060
         </form>
1061
      </table>
1062
   </DIV>
119 ghuddy 1063
 
123 ghuddy 1064
   <script language="JavaScript" type="text/javascript">
1065
      <!--
1066
      function ToggleAdvancedSearch( )
1067
      {
1068
         if ( MM_findObj("DIV_ADVANCED_SEARCH").style.display == 'none')
1069
         {
1070
            MM_findObj("DIV_ADVANCED_SEARCH").style.display = 'block';
1071
            MM_findObj("SPAN_ADVANCED_SEARCH").style.display = 'none';
1072
            MM_findObj("SPAN_ADVANCED_SEARCH_ON").style.display = 'block';
1073
         }
1074
         else
1075
         {
1076
            MM_findObj("DIV_ADVANCED_SEARCH").style.display = 'none';
1077
            MM_findObj("SPAN_ADVANCED_SEARCH").style.display = 'block';
1078
            MM_findObj("SPAN_ADVANCED_SEARCH_ON").style.display = 'none';
1079
         }
119 ghuddy 1080
 
123 ghuddy 1081
         document.cookie = 'RELMGR_DIV_ADVANCED_SEARCH' + '=' + MM_findObj("DIV_ADVANCED_SEARCH").style.display;
1082
      }
119 ghuddy 1083
 
123 ghuddy 1084
      // Run this on page render for default setting
1085
      if (GetCookie('RELMGR_DIV_ADVANCED_SEARCH') == 'block')
1086
      {
1087
         ToggleAdvancedSearch();
1088
      }
119 ghuddy 1089
 
123 ghuddy 1090
   //-->
1091
   </script>
5071 dpurdie 1092
<!-- RELEASE SDK  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
5098 dpurdie 1093
   <DIV name="DIV_RELEASE_SDK" id="DIV_RELEASE_SDK" <%=iif(isDefined("showReleaseSdk"),"","style='display:none;'")%>>
5071 dpurdie 1094
      <table width="100%" border="0" cellspacing="0" cellpadding="10">
5097 dpurdie 1095
         <form name="RelSdk" method="get" action="sdk_remove_release.asp" onSubmit="$('#RelSdkProgressBar').toggle()">
5071 dpurdie 1096
            <tr>
1097
               <td width="100%" nowrap class="form_txt">
1098
                  <fieldset>
1099
                     <legend class="body_colb"><img src="images/i_releaseref.gif" border="0" align="absmiddle">&nbsp;Release SDK</legend>
5097 dpurdie 1100
                     <div>
1101
                         <%If (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE) Then%>
1102
                            <button <%=controlDisabledInProject("AddSdk")%> onClick="addSdk(); return false;" class="rmbutton">Add ...</button>
1103
                            &nbsp;<button  <%=controlDisabledInProject("RemoveSdk")%> class="rmbutton">Remove</button>
1104
                         <%End If%>
1105
                         <span id="RelSdkProgressBar" name="RelRefProgressBar" style="display:none;" class="class="body_scol"">
1106
                            <img src="images/i_processing.gif" width="11" height="17" align="absmiddle" hspace="3">Processing...
1107
                         </span>
1108
                         <p>
1109
                         <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
1110
                     </div>
5071 dpurdie 1111
 
1112
                     <table width="100%" border="0" cellspacing="0" cellpadding="1">
1113
                        <tr>
1114
                           <td bgcolor="#999999">
1115
 
1116
                              <table width="100%" border="0" cellspacing="0" cellpadding="1">
1117
                                 <%
1118
                                 OraDatabase.Parameters.Add "RTAG_ID", parRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
1119
                                 Set rsEnvQry = OraDatabase.DbCreateDynaset( GetQuery("ReleaseSdks.sql"), 0 )
1120
                                 OraDatabase.Parameters.Remove "RTAG_ID"
1121
                                 %>
1122
                                 <%If rsEnvQry.RecordCount = 0 Then%>
1123
                                 <tr>
1124
                                    <td colspan="2" bgcolor="#FFFFFF" class="body_txt_gray">
1125
                                       No SDKs used.
1126
                                    </td>
1127
                                 </tr>
1128
                                 <%End If%>
1129
 
1130
                                 <%While (NOT rsEnvQry.EOF) AND (NOT rsEnvQry.BOF)%>
1131
                                    <tr>
5080 dpurdie 1132
                                       <td bgcolor="#FFFFFF" class="body_txt" width="1%"><input type="checkbox" name="sdktag_id" value="<%=rsEnvQry("SDKTAG_ID")%>"></td>
5098 dpurdie 1133
                                       <td bgcolor="#FFFFFF" class="body_txt" nowrap>
1134
                                        <span title="<%=HTMLEncode(rsEnvQry("SDK_COMMENT"))%>">
1135
                                            <%=rsEnvQry("SDK_NAME")%>
1136
                                        </span>
1137
                                        &nbsp;&gt;&nbsp;
1138
                                        <span title="<%=HTMLEncode(rsEnvQry("DESCRIPTION"))%>">
1139
                                            <%=rsEnvQry("SDKTAG_NAME")%>
1140
                                        </span>
1141
                                        </td>
5071 dpurdie 1142
                                    </tr>
1143
                                    <%rsEnvQry.MoveNext()
1144
                                 WEnd%>
1145
                                 <tr>
1146
                                    <td colspan="2" bgcolor="#FFFFFF" class="body_txt_gray">
1147
                                       <br><br><br>
1148
                                    </td>
1149
                                 </tr>
1150
                              </table>
1151
                           </td>
1152
                        </tr>
1153
                     </table>
1154
                  </fieldset>
1155
                  <br>
1156
               </td>
1157
            </tr>
1158
         </form>
1159
      </table>
1160
   </DIV>
1161
<!-- END OF RELEASE SDK  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
1162
 
119 ghuddy 1163
<!-- PACKAGE LIST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
4389 dpurdie 1164
   <form id="pending_PVID_List" name="pending_PVID_List" method="post" action="make_bulk_release.asp?pv_id=<%=Request("pv_id")%>&rtag_id=<%=parRtag_id%>", onSubmit="makeBulkRelease();">
123 ghuddy 1165
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
1166
         <tr>
1167
            <td width="1" bgcolor="#999999"><img src="images/spacer.gif" width="10" height="25"></td>
1168
            <td width="100%" bgcolor="#999999" valign="bottom">
1169
               <!-- TAB CONTROLS ++++++++++++++++++++++ -->
1170
               <%
1171
               Set objTabControl = New TabControl
1172
               objTabControl.TemplateDoc = ReadFile( Server.MapPath("controls/ERGTabStyleDreamWeaver/dreamweaver_style.html") ) ' Supply tab style definition
1173
               objTabControl.TabStyle = "StyleDreamWeaver"
5167 dpurdie 1174
               If   parDview = "enable"   Then
123 ghuddy 1175
                  objTabControl.AddTabDefnition ( arrProductEnv )   '-   Integration/Test/Deploy
1176
               Else
1177
                  objTabControl.AddTabDefnition ( arrEnv )
1178
               End If
1179
               objTabControl.SelectByIndex ( nEnvTab )
1180
               objTabControl.Render ()
1181
               %>
1182
               <!-- END OF TAB CONTROLS +++++++++++++++ -->
1183
            </td>
1184
            <td width="1" bgcolor="#999999"><img src="images/spacer.gif" width="10" height="1"></td>
1185
         </tr>
1186
         <tr>
1187
            <td></td>
1188
            <td>
5080 dpurdie 1189
               <!-- BULK OPR CONTROLS ++++++++++++++++++++++ -->
4388 dpurdie 1190
                <%Dim cb_selectall_display, cb_disabled
1191
                  If nEnvTab <> 1 Then cb_selectall_display = " style=display:none"
1192
                  If NOT objAccessControl.UserLogedIn Then cb_disabled = " disabled"%>
1193
                <input id="cb_selectall" type="checkbox" title="Toggle all checkboxes" onclick="toggletick(this);"<%=cb_selectall_display%><%=cb_disabled%> style="position: relative;left: 5px;float: left;">
1194
                <a href="javascript:;" title="Minimise/Restore all populated Views" onclick="toggleAllViews();"><img id="cb_minall" src="images/btn_min.gif" style="float: right;position: relative;left: -4;top: 3;"></a>
1195
                <a href="javascript:;" title="Close Populated Views" onclick="closeAllViews();"><img src="images/btn_remove.gif" style="float: right;position: relative;left: -4;"></a>
4395 dpurdie 1196
                <a href="javascript:;" title="Open and Populate all Views" onclick="openAllViews();"><img src="images/btn_expand.gif" style="float: right;position: relative;left: -4; top:2;"></a>
5080 dpurdie 1197
               <!-- END BULK OPR CONTROLS ++++++++++++++++++++++ -->
123 ghuddy 1198
               <%
1199
               Dim tempTimer
1200
               tempTimer = Timer
1201
               %>
1202
               <%'Response.write "TOTAL TIME: "&  Timer - tempTimer%>
1203
               <%
119 ghuddy 1204
 
123 ghuddy 1205
               '--- Render Environment ---
1206
               If objAccessControl.UserLogedIn AND (parPview <> "disable") Then
1207
                  'Personal View
1208
                  Call Print_View( nEnvTab, "personal", parRtag_id, parPshow, objAccessControl.UserId )
1209
               Else
1210
                  ' Guest view
1211
                  Call Print_View( nEnvTab, "guest", parRtag_id, parBshow, empty )
1212
               End If
1213
               %>
119 ghuddy 1214
 
123 ghuddy 1215
               <%'Response.write "TOTAL TIME: "&  Timer - tempTimer%>
1216
               <br>
1217
            </td>
1218
            <td></td>
1219
         </tr>
4389 dpurdie 1220
       </table>
1221
   </form>
123 ghuddy 1222
   <!-- <input type="hidden" name="pv_id_list" value=<%=Request("pv_id_list")%>> -->
119 ghuddy 1223
<!--END OF PACKAGE LIST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
1224
 
1225
<%End If%>