Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5357 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|                        RTREE                      |
6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0   ' always load the page, dont store
13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/_rtree_common.asp"-->
20
<!--#include file="common/daemon_status.asp"-->
21
<%
22
'------------ ACCESS CONTROL ------------------
23
%>
24
<!--#include file="_access_control_general.asp"-->
25
<%
26
'------------ Variable Definition -------------
27
Dim ViewType
28
Dim bIsaTreeView
29
Dim rsQryStr
30
Dim rsQry
31
Dim parProjId
32
Dim parShowFilter
33
Dim objBtnControl
34
Dim currLevel, lastLevel
35
Dim dListFilter
36
Dim objDmSts
37
Dim hoverTitle, createdBy, comment
38
Dim bCanMove
39
Dim bCanDestroy
40
Dim bCanClone
41
Dim bCanUnarchive
42
Dim bCanCloseArchive
43
 
44
Dim bCanOpenToClose
45
Dim bCanRestrictiveToClose
46
Dim bCanCloseToClose
47
Dim bCanPreserveToClose
48
Dim bCanArchiveToClose
49
 
50
Dim bCanOpenToPreserve
51
Dim bCanRestrictiveToPreserve
52
Dim bCanCloseToPreserve
53
Dim bCanPreserveToPreserve
54
Dim bCanArchiveToPreserve
55
 
56
Dim bCanOpenToArchive
57
Dim bCanRestrictiveToArchive
58
Dim bCanCloseToArchive
59
Dim bCanPreserveToArchive
60
Dim bCanArchiveToArchive
61
 
62
 
63
'------------ Constants Declaration -----------
64
Const LIMG_TREE_I_HALF = "<img src='images/spacer.gif' width='20' height='1'>"
65
Const LIMG_TREE_I_NONE = "<img src='images/spacer.gif' width='30' height='15'>"
66
Const LIMG_TREE_I_FULL = "<img src='images/dot1h.gif' width='30' height='15'>"
67
Const LIMG_TREE_T      = "<img src='images/dot1.gif' width='30' height='15'>"
68
Const LIMG_LIST_VIEW   = "<img src='images/abtn_list_view.gif' border='0' align=absmiddle' name='imgviewtype' usemap='#mapviewtype' id='imgviewtype'>"
69
Const LIMG_TREE_VIEW   = "<img src='images/abtn_tree_view.gif' border='0' align=absmiddle' name='imgviewtype' usemap='#mapviewtype' id='imgviewtype'>"
70
 
71
Const LCONST_LIST_VIEW = 1
72
Const LCONST_TREE_VIEW = 2
73
 
74
Const DEFAULT_SHOW_FILTER = "'N','R','C','O'"
75
 
76
'------------ Variable Init -------------------
77
'   Need either proj_id or rtag_id, for which we will calculate a project id
78
parProjId = Request("proj_id")
79
If parProjId = "" Then parProjId = DB_PROJ_ID
80
If parProjId = ""  OR parProjId < 0 Then
81
   Response.Redirect("index.asp")
82
End If
83
Call objPMod.StoreParameter("proj_id", parProjId)
84
 
85
 
86
' Get show_filter from query string or failing that, from the cookie.
87
' Make sure that if neither supplies it, use the default
88
parShowFilter = Request("show_filter")
89
If NOT IsNull(parShowFilter) AND parShowFilter <> "" Then
90
   Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = parShowFilter
91
Else
92
   parShowFilter = Request.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter")
93
   If IsNull(parShowFilter) OR parShowFilter = "" Then
94
      parShowFilter = DEFAULT_SHOW_FILTER
95
      Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = parShowFilter
96
   End If
97
End If
98
 
99
Set dListFilter = CreateObject("Scripting.Dictionary")
100
 
101
Set objBtnControl = New ActionButtonControl
102
 
103
' Init access control
104
bCanMove =  canActionControlInProject("ConfigureRelease") 
105
bCanDestroy = canActionControlInProject("DestroyRelease")
106
bCanClone =  canActionControlInProject("CreateNewRelease")
107
 
108
bCanOpenToClose             =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_OPEN_MODE,enumDB_RELEASE_IN_CLOSED_MODE)
109
bCanRestrictiveToClose      =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_RESTRICTIVE_MODE,enumDB_RELEASE_IN_CLOSED_MODE)
110
bCanCloseToClose            =  FALSE
111
bCanPreserveToClose         =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_PRESERVE_MODE,enumDB_RELEASE_IN_CLOSED_MODE)
112
bCanArchiveToClose          =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_ARCHIVE_MODE,enumDB_RELEASE_IN_CLOSED_MODE)
113
 
114
bCanOpenToPreserve          =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_OPEN_MODE,enumDB_RELEASE_IN_PRESERVE_MODE)
115
bCanRestrictiveToPreserve   =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_RESTRICTIVE_MODE,enumDB_RELEASE_IN_PRESERVE_MODE)
116
bCanCloseToPreserve         =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_CLOSED_MODE,enumDB_RELEASE_IN_PRESERVE_MODE)
117
bCanPreserveToPreserve      =  FALSE
118
bCanArchiveToPreserve       =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_ARCHIVE_MODE,enumDB_RELEASE_IN_PRESERVE_MODE)
119
 
120
bCanOpenToArchive           =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_OPEN_MODE,enumDB_RELEASE_IN_ARCHIVE_MODE)            
121
bCanRestrictiveToArchive    =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_RESTRICTIVE_MODE,enumDB_RELEASE_IN_ARCHIVE_MODE)     
122
bCanCloseToArchive          =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_CLOSED_MODE,enumDB_RELEASE_IN_ARCHIVE_MODE)          
123
bCanPreserveToArchive       =  ReleaseModeAccessCheck(enumDB_RELEASE_IN_PRESERVE_MODE,enumDB_RELEASE_IN_ARCHIVE_MODE)                                                                                          
124
bCanArchiveToArchive        =  FALSE
125
 
126
'----------------------------------------------
127
%>
128
<%
129
'--------------------------------------------------------------------------------------------------------------------------
130
' Determines if the specified filter is on/off and returns a string to use to check the associated checkbox accordingly
131
Function GetIsListFilterChecked( nFilterId )
132
   GetIsListFilterChecked = ""
133
 
134
  If bIsaTreeView Then
135
       ' Disable the control in Tree View
136
       GetIsListFilterChecked = GetIsListFilterChecked & " checked disabled"
137
  Else
138
       If dListFilter.Exists ( "'" & CStr(nFilterId) & "'"  ) Then
139
          GetIsListFilterChecked = "checked"
140
       End If
141
  End If
142
 
143
End Function
144
'--------------------------------------------------------------------------------------------------------------------------
145
' Reads the cookie for the filter and creats a dictionary element for each item therein. the dictionary
146
' is used by the GetIsListFilterChecked function to determine checkbox state in the filter options
147
Sub GetListFilterValues ( outDepFilter )
148
   Dim FilterVal, aFilterValues
149
 
150
   If parShowFilter <> "" Then
151
      aFilterValues = Split( Replace( parShowFilter, " ", ""), ",")
152
 
153
      For Each FilterVal In aFilterValues
154
         outDepFilter.Item (CStr( FilterVal )) = ""
155
      Next
156
   End If
157
End Sub
158
 
159
'----------------------------------------------------------------------------------------------------------------------------------------------
160
Sub RenderIndent ( nLastLevel, nCurrLevel )
161
   Dim i
162
 
163
   If nCurrLevel <= 1 Then Exit Sub
164
 
165
   '-- Render half lines
166
   If nCurrLevel > 2 Then
167
      For i = 1 To nCurrLevel - 2
168
         Response.write LIMG_TREE_I_NONE
169
      Next
170
   End If
171
 
172
 
173
   '-- Render branch or line
174
   If nLastLevel < nCurrLevel Then
175
      Response.write LIMG_TREE_T
176
   Else
177
      Response.write LIMG_TREE_I_FULL
178
   End If
179
 
180
End Sub
181
'----------------------------------------------------------------------------------------------------------------------------------------------
182
Sub NewRelease ()
183
    Call OpenInWindow ( "new_release.asp?" & objPMod.ComposeURL() )
184
End Sub
185
'----------------------------------------------------------------------------------------------------------------------------------------------
186
Sub MergeManager ()
187
    ' Open Merge Manager without parameters
188
    Call OpenInWindow ( "diff.asp" )
189
End Sub
190
'----------------------------------------------------------------------------------------------------------------------------------------------
191
Sub AdminView()
192
     Dim Query_String
193
     Query_String = _
194
     "   SELECT DISTINCT vi.view_id, vi.view_name"&_
195
     "   FROM VIEWS vi"&_
196
     "   WHERE vi.view_name = 'PROJECT WIDE'"
197
     Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )
198
 
199
     Dim viewRecordCount
200
     Dim id
201
     viewRecordCount=0
202
     viewRecordCount = rsQry.RecordCount
203
 
204
     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
205
        id=rsQry.Fields("view_id")
206
        rsQry.MoveNext
207
     WEnd
208
 
209
      rsQry.Close()
210
     Set rsQry = nothing
211
 
212
     If viewRecordCount = 0 Then
213
        OraDatabase.Parameters.Add "PROJ_ID", parProjId,    ORAPARM_INPUT, ORATYPE_NUMBER
214
        Query_String = _
215
        " SELECT DISTINCT vi.view_id, vi.view_name"&_
216
        " FROM VIEWS vi, RELEASE_CONTENT rc, RELEASE_TAGS rt"&_
217
        " WHERE rc.BASE_VIEW_ID = vi.VIEW_ID AND rt.proj_id = "& parProjId &"AND rc.rtag_id = rt.rtag_id"&_
218
        " ORDER BY ( vi.view_name )"
219
 
220
        Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )
221
 
222
        OraDatabase.Parameters.Remove "PROJ_ID"
223
        viewRecordCount = rsQry.RecordCount
224
 
225
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
226
           id=rsQry.Fields("view_id")
227
           rsQry.MoveNext
228
        WEnd
229
 
230
        rsQry.Close()
231
        Set rsQry = nothing
232
     End If
233
 
234
     If viewRecordCount = 0 Then
235
        Call OpenInWindow ( "form_edit_project_view.asp?proj_id="&parProjId)
236
     Else
237
        Call OpenInWindow ( "form_edit_project_view.asp?proj_id="&parProjId&"&FRview_id="&id)
238
     End If
239
End Sub
240
'----------------------------------------------------------------------------------------------------------------------------------------------
241
Function GetViewType ()
242
   Dim CookieViewType
243
 
244
   CookieViewType = Request.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW")
245
 
246
   If CookieViewType <> "" Then
247
      ' Get current view type from cookie
248
      GetViewType = CInt(CookieViewType)
249
   Else
250
      ' Set current view to list view
251
      Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW") = LCONST_LIST_VIEW
252
      GetViewType = LCONST_LIST_VIEW
253
   End If
254
 
255
End Function
256
'----------------------------------------------------------------------------------------------------------------------------------------------
257
Sub SetViewType ()
258
   If Request("viewtype") = "" Then Exit Sub    ' Nothing to do
259
 
260
   Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW") = Request("viewtype")
261
End Sub
262
'----------------------------------------------------------------------------------------------------------------------------------------------
263
Sub RenderDaemonStatusConfig(nRtagId) 
264
   %>
265
   <table class="embedded_table">
266
    <tr>
267
     <td>
268
     <%
269
      Response.Write("<img src=""icons/i_edit.gif"" border=0 vspace=0 hspace=0 title='Configure Daemons' onclick='location.href=""release_config.asp?rtag_id="&nRtagId&"""'>")
270
      Response.Write("<img src=""icons/ext_log.gif"" border=0 vspace=0 hspace=0 title='View Build Log'onclick='location.href=""build_release_log.asp?rtag_id="&nRtagId&"""'>")
271
     %>
272
     </td>
273
     <td>
274
   <%
275
    Call objDmSts.RenderDaemonStatus(nRtagId,16)
276
    %>
277
        </td>
278
        </tr>
279
        </table>
280
    <%
281
End Sub
282
 
283
'----------------------------------------------------------------------------------------------------------------------------------------------
284
Sub RenderLxrState()
285
    Response.Write RenderLxrStateString(rsQry("rtag_id"),rsQry("lxr"),rsQry("lxrserver"),rsQry("official"),"")
286
End Sub
287
'----------------------------------------------------------------------------------------------------------------------------------------------
288
Function RenderActions(nRtagId, sOfficial)
289
    Response.Write "<span title='Select operation from dropdown menu' class='select-operation ui-icon ui-icon-triangle-1-s' data-rtag-id='"&nRtagId&"' data-official='"&sOfficial&"' style='display:inline-block'></span>"
290
End Function
291
'----------------------------------------------------------------------------------------------------------------------------------------------
292
Function GetMassRefComments (nRtagId)
293
   Dim UsedBy
294
   Dim rsQryUse
295
   Dim linkB
296
   Dim joiner : joiner = ""
297
   Dim comment : comment = ""
298
 
299
'   If parProjId <> 2 Then
300
'     assocMASSREF = rsQry("assoc_mass_ref")
301
'     If assocMASSREF <> "" Then
302
'        Set rsQryAssoc = OraDatabase.DbCreateDynaset("SELECT RTAG_NAME, RTAG_ID FROM RELEASE_TAGS WHERE RTAG_ID="&assocMASSREF , ORADYN_DEFAULT)
303
'        assocMASSREFName = rsQryAssoc("RTAG_NAME")
304
'        link = rsQryAssoc("rtag_id")
305
'        rsQryAssoc.Close
306
'        Set rsQryAssoc = Nothing
307
'     Else
308
'        assocMASSREFName = "None."
309
'     End If
310
'   Else
311
      UsedBy = nRtagId
312
      If UsedBy <> "" Then
313
         Set rsQryUse = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_TAGS RT, PROJECTS P WHERE RT.ASSOC_MASS_REF=" & nRtagId & " AND RT.PROJ_ID=P.PROJ_ID", ORADYN_DEFAULT)
314
 
315
         While ((NOT rsQryUse.BOF) AND (NOT rsQryUse.EOF))
316
            If rsQryUse("assoc_mass_ref") = UsedBy Then
317
               linkB = "dependencies.asp?rtag_id="&rsQryUse("rtag_id")
318
               comment = joiner & rsQryUse("proj_name") & " -> <a href="&linkB&">"& rsQryUse("rtag_name") &"</a>"
319
               joiner = " <br> "
320
               rsQryUse.MoveNext
321
            End If
322
         WEnd
323
         rsQryUse.Close
324
         Set rsQryUse = Nothing
325
      End If
326
      GetMassRefComments = comment
327
End Function
328
'----------------------------------------------------------------------------------------------------------------------------------------------
329
%>
330
<%
331
'------------ RUN BEFORE PAGE RENDER ----------
332
If (Request("action") <> "") Then
333
 
334
   If Request("btn") = "Update" Then
335
      ' Store filter in cookie
336
      Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = Request("listFilter")
337
      parShowFilter = Request("listFilter")
338
      If IsNull(parShowFilter) OR parShowFilter = "" Then parShowFilter = DEFAULT_SHOW_FILTER
339
   Else
340
      '-- Select Action
341
      Select Case Request("action")
342
          Case "btnNewRelease"
343
             Call NewRelease()
344
 
345
          Case "btnMergeManager"
346
             Call MergeManager()
347
 
348
          Case "btnAdminView"
349
             Call AdminView()
350
      End Select
351
   End If
352
 
353
End If
354
 
355
' Set view type  if required
356
Call SetViewType ()
357
 
358
' Get current view type
359
ViewType = GetViewType()
360
bIsaTreeView = (ViewType = LCONST_TREE_VIEW)
361
 
362
'----------------------------------------------
363
%>
364
<html>
365
<head>
366
<%
367
   Set rsQry = OraDatabase.DbCreateDynaset( "SELECT PROJ_NAME FROM PROJECTS WHERE PROJ_ID="& parProjId, ORADYN_DEFAULT )
368
%>
369
<title><%=rsQry("proj_name")%></title>
370
<link rel="shortcut icon" href="<%=FavIcon%>"/>
371
<%
372
   rsQry.Close
373
   Set rsQry = Nothing
374
%>
375
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
376
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
377
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
378
<link rel="stylesheet" href="images/navigation.css" type="text/css">
379
<script language="JavaScript" src="images/common.js"></script>
380
 
381
<!-- DROPDOWN MENUS -->
382
<!--#include file="_menu_def.asp"-->
383
<script language="JavaScript1.2" src="images/popup_menu.js"></script>
384
 
385
<!-- Dropdown action menu scripts -->
386
<style>
387
    .ui-menu { position: absolute; }
388
</style>
389
<!--#include file="_jquery_includes.asp"-->
390
<script>
391
    $(function() {
392
        // Global menu data structure
393
        //  Persist between invocations of the menu
394
        //      Used to mergeLeft rtagid
395
        //      Used to store current menu info
396
        $.acData = {
397
            //  Data
398
            bCanOpenToClose                 : <%=iif(bCanOpenToClose          , "true", "false")%> ,             
399
            bCanRestrictiveToClose          : <%=iif(bCanRestrictiveToClose   , "true", "false")%> ,
400
            bCanCloseToClose                : <%=iif(bCanCloseToClose         , "true", "false")%> ,
401
            bCanPreserveToClose             : <%=iif(bCanPreserveToClose      , "true", "false")%> ,
402
            bCanArchiveToClose              : <%=iif(bCanArchiveToClose       , "true", "false")%> ,
403
 
404
            bCanOpenToPreserve              : <%=iif(bCanOpenToPreserve       , "true", "false")%> ,
405
            bCanRestrictiveToPreserve       : <%=iif(bCanRestrictiveToPreserve, "true", "false")%> ,
406
            bCanCloseToPreserve             : <%=iif(bCanCloseToPreserve      , "true", "false")%> ,
407
            bCanPreserveToPreserve          : <%=iif(bCanPreserveToPreserve   , "true", "false")%> ,
408
            bCanArchiveToPreserve           : <%=iif(bCanArchiveToPreserve    , "true", "false")%> ,
409
 
410
            bCanOpenToArchive               : <%=iif(bCanOpenToArchive        , "true", "false")%> ,
411
            bCanRestrictiveToArchive        : <%=iif(bCanRestrictiveToArchive , "true", "false")%> ,
412
            bCanCloseToArchive              : <%=iif(bCanCloseToArchive       , "true", "false")%> ,
413
            bCanPreserveToArchive           : <%=iif(bCanPreserveToArchive    , "true", "false")%> ,
414
            bCanArchiveToArchive            : <%=iif(bCanArchiveToArchive     , "true", "false")%> ,
415
            };
416
 
417
            // Convert from Release Mode to [canClose, canPreserve, canArchive]
418
        $.mode2access = {
419
 
420
            N: [$.acData.bCanOpenToClose,$.acData.bCanOpenToPreserve,$.acData.bCanOpenToArchive],
421
            R: [$.acData.bCanRestrictiveToClose,$.acData.bCanRestrictiveToPreserve,$.acData.bCanRestrictiveToArchive],
422
            C: [$.acData.bCanRestrictiveToClose,$.acData.bCanRestrictiveToPreserve,$.acData.bCanRestrictiveToArchive],
423
            Y: [$.acData.bCanCloseToClose,$.acData.bCanCloseToPreserve,$.acData.bCanCloseToArchive],
424
            O: [$.acData.bCanCloseToClose,$.acData.bCanCloseToPreserve,$.acData.bCanCloseToArchive],
425
            P: [$.acData.bCanPreserveToClose,$.acData.bCanPreserveToPreserve,$.acData.bCanPreserveToArchive],
426
            A: [$.acData.bCanArchiveToClose,$.acData.bCanArchiveToPreserve,$.acData.bCanArchiveToArchive],
427
 
428
            canAccess : function(state, index) {
429
                if ( this.hasOwnProperty(state)) {
430
                    return this[state][index];
431
                } else {
432
                    return false;
433
                }
434
            },
435
        };
436
 
437
        $.miniMenu = {
438
            //  Data
439
 
440
            //  Menu operations
441
            open : function (data) {
442
                //console.log("Opening:", data.rtagid);
443
                this.gotoUrl("dependencies.asp", {rtag_id : data.rtagid});
444
             },
445
 
446
             edit : function (data) {
447
                 //console.log("Editing:", data.rtagid);
448
                 this.gotoUrl("form_edit_release.asp", {rtag_id : data.rtagid, rfile : "<%=ScriptName%>"});
449
             },
450
 
451
             mergeSelect : function (data) {
452
                 //console.log("Merge from:", data.rtagid );
453
                 $('#releaseTree .body_row_sel2').removeClass('body_row_sel2');
454
                 if (data.mergeLeft != data.rtagid) {
455
                     data.mergeLeft = data.rtagid;
456
                     $.miniMenu.currentRow.addClass('body_row_sel2');
457
                 } else {
458
                     delete(data.mergeLeft);
459
                 }
460
             },
461
 
462
             merge : function (data) {
463
                 //console.log ("Merge:", data.mergeLeft, data.rtagid);
464
                 this.gotoUrl("diff.asp", { rtagA : data.mergeLeft, rtagB : data.rtagid});
465
             },
466
 
467
             close : function (data) {
468
                 //console.log("Closing:", data.rtagid);
469
                 this.gotoUrl("_change_release_mode.asp", {rtag_id : data.rtagid, mode_code : 3 , rfile : "<%=ScriptName%>"});
470
             },
471
 
472
             preserve : function (data) {
473
                 //console.log("Preserving:", data.rtagid);
474
                 this.gotoUrl("_change_release_mode.asp", {rtag_id : data.rtagid, mode_code : 6 , rfile : "<%=ScriptName%>"});
475
             },
476
 
477
             archive : function (data) {
478
                 //console.log("Archiving:", data.rtagid);
479
                 this.gotoUrl("_change_release_mode.asp", {rtag_id : data.rtagid, mode_code : 5 , rfile : "<%=ScriptName%>"});
480
             },
481
<%If bCanDestroy Then%>
482
             delete : function (data) {
483
                 //console.log("Delete:", data.rtagid);
484
                 $.miniMenu.currentRow.addClass('body_row_sel_outline');
485
                 var that = this;
486
                 var delObject = $.Deferred(that.confirmDelete
487
                 ).done(function(){
488
                     that.gotoUrl("_destroy_release.asp", {rtag_id_list : data.rtagid, proj_id : <%=parProjId%>, rfile : "<%=ScriptName%>"});
489
                 }).fail(function(){
490
                     $('#releaseTree .body_row_sel_outline').removeClass('body_row_sel_outline');
491
                 });
492
             },
493
<%End If%>
494
<%If bCanMove Then%>
495
             move : function (data) {
496
                 //console.log("Move:", data.rtagid);
497
                 this.gotoUrl("form_move_release.asp", { rtag_id_list : data.rtagid, proj_id : <%=parProjId%> });
498
             },
499
<%End If%>
500
<%If bCanClone Then%>
501
             clone : function(data) {
502
                 //console.log("Clone:", data.rtagid);
503
                 this.gotoUrl("new_release.asp", { rtag_id_list : data.rtagid, proj_id : <%=parProjId%>, branch : "Y" });
504
             },
505
<%End If%>
506
 
507
             //
508
             // Internal functions
509
             // Goto url, or open in new tab
510
             gotoUrl: function (url, params)
511
             {
512
                 // Open in new tab - not as simple as it sounds
513
                 // Need to create a form and submit it
514
                 if(this.event.shiftKey){
515
                     var form = $('<form>',{
516
                         action : url,
517
                         target : '_blank',
518
                         //method : 'GET'
519
                         });
520
 
521
                     $.each(params,function(n,v){
522
                         var item = $('<input>',{
523
                             name : n,
524
                             value : v
525
                         });
526
                         form.append(item);
527
                        });
528
 
529
 
530
                     form.appendTo(document.body);
531
                     form.submit();
532
                     form.remove();
533
                 }
534
                 else {
535
                     if (params)
536
                         url += '?' + jQuery.param(params)
537
                     window.location.href = url;
538
                 }
539
             },
540
 
541
             // Confirm action
542
             //     Delegate Object
543
             confirmDelete : function(dbo){
544
                 $( "<div>Are you sure</div>" ).dialog({
545
                    resizable: true,
546
                    height:170,
547
                    width : 300,
548
                    modal: true,
549
                    position: { my: "top", at: "top+100", of: window },
550
                    title:'Destroy Release',
551
                    open: function() {
552
                        $(this).siblings('.ui-dialog-buttonpane').find('button:eq(1)').focus(); 
553
                        var markup = '<p><img src="images/i_critical.gif" style="float:left; margin:0 7px 20px 0;">This Release will be permanently destroyed.<p>Are you sure?';
554
                        $(this).html(markup);
555
                    },
556
                    close : function() {
557
                        $(this).remove();
558
                        dbo.reject();
559
                    },
560
                    buttons: {
561
                        "Destroy Release": function() {
562
                            dbo.resolve();
563
                            $(this).dialog("close");
564
                        },
565
                        Cancel: function() {
566
                            $(this).dialog("close");
567
                        }
568
                    }
569
                 });
570
             },
571
 
572
    };
573
 
574
    // Create and Hide the Menu
575
    $( "#select-menu" ).hide().menu();
576
 
577
    // Register menuselect event handler
578
    $( "#select-menu" ).on( "menuselect", function( event, ui ) {
579
       var opr = ui.item.data('opr');
580
 
581
        // Invoke operation within the menu data structure
582
        if (typeof $.miniMenu[opr] == 'function' ) {
583
            $.miniMenu['event'] = event;
584
            $.miniMenu[opr]($.miniMenu);
585
            return;
586
        }
587
        //console.log ("Menu Operation:", opr, "Not found");
588
    });
589
 
590
 
591
    // Add menu to all require instances
592
   $( ".select-operation" ).click(function(event) {
593
        // When clicked - create and show the menu
594
        // Insert rtag-id
595
 
596
       // In order to have the menu positioing work correctly
597
       //   Create a div that covers the visible screen area
598
       //   Us it within the menu poistioning
599
       //   Then delete it again
600
       var positionDiv = $( "<div></div>" ).css({
601
               position: 'absolute', 
602
               top : $(document).scrollTop(), 
603
               left : $(document).scrollLeft(),
604
               width: '100vw',
605
               height: '100vh',
606
               'z-index' : -1,
607
           });
608
       positionDiv.appendTo(document.body);
609
 
610
        //  Create the menu
611
        var menu = $("#select-menu").show().position({
612
             my: "left top",
613
             at: "center bottom",
614
             of: this,
615
             within : positionDiv,
616
        });
617
 
618
        // Cleanup the poistioning div
619
        positionDiv.remove();
620
 
621
        // Setup global data
622
        $.miniMenu.rtagid = $(this).data('rtag-id');
623
 
624
        // Set initial menu state - merge target
625
        $('#select-menu-merge').toggleClass('ui-state-disabled',!('mergeLeft' in $.miniMenu ));
626
 
627
        // Set initial state close/archive
628
        //
629
        var official = $(this).data('official');
630
        $('#select-menu-close').toggleClass('ui-state-disabled',! $.mode2access.canAccess(official,0));
631
        $('#select-menu-preserve').toggleClass('ui-state-disabled',!$.mode2access.canAccess(official,1));
632
        $('#select-menu-archive').toggleClass('ui-state-disabled',! $.mode2access.canAccess(official,2));
633
 
634
        // Highlight the row selected
635
        $('#releaseTree .body_row_sel').removeClass('body_row_sel');
636
        $.miniMenu.currentRow = $(event.target).closest('tr').addClass('body_row_sel');
637
 
638
        // Allow click outside of the menu to close it
639
        $( document ).one( "click", function() {
640
            menu.hide();
641
            $('#releaseTree .body_row_sel').removeClass('body_row_sel');
642
        });
643
 
644
 
645
        // Prevent propagation of event
646
        return false;
647
    });
648
});
649
</script>
650
 
651
</head>
652
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" >
653
<!-- MENU LAYERS -------------------------------------->
654
<div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,'on')" onMouseout="highlightmenu(event,'off');dynamichide(event)">
655
</div>
656
<!-- TIPS LAYERS -------------------------------------->
657
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
658
<!----------------------------------------------------->
659
<!-- HEADER -->
660
<!--#include file="_header.asp"-->
661
<!-- BODY ---->
662
 
663
<%Call GetListFilterValues ( dListFilter )%>
664
 
665
<form name="FormName" method="post" action="<%=ScriptName%>">
666
<table width="100%" border="0" cellspacing="0" cellpadding="0">
667
   <tr>
668
      <td width="1" background="images/bg_home_orange.gif" valign="top">
669
         <!-- ICON STATUS and FILTER -------------------------------------->
670
         <table width="118" border="0" align="left" style="margin-top: 38px;">
671
            <tr>
672
               <td bgcolor="#E4E9EC" width="26"><span class="body_txt">Icon</span></td>
673
               <td bgcolor="#E4E9EC" width="82"><span class="body_txt">Release State </span></td>
674
            </tr>
675
            <tr>
676
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_open_mode.gif" width="15" height="13"></td>
677
               <td bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_OPEN_MODE%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_OPEN_MODE)%>>Open Mode</span></td>
678
            </tr>
679
            <tr>
680
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_restrictive_mode.gif" width="15" height="15"></td>
681
               <td nowrap bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_RESTRICTIVE_MODE%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_RESTRICTIVE_MODE)%>>Restrictive Mode</span></td>
682
            </tr>
683
            <tr>
684
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_ccb_mode.gif" width="15" height="15"></td>
685
               <td bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_CCB_MODE%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_CCB_MODE)%>>CCB Mode</span></td>
686
            </tr>
687
            <tr>
688
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_closed_mode.gif" width="15" height="14"></td>
689
               <td bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_CLOSED_MODE%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_CLOSED_MODE)%>>Closed Mode</span></td>
690
            </tr>
691
            <tr>
692
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_closed_mode_warn.gif" width="15" height="14"></td>
693
               <td bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_CLOSED_WARN%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_CLOSED_WARN)%>>Closed Aged</span></td>
694
            </tr>
695
            <tr>
696
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_preserve_mode.gif" width="15" height="14"></td>
697
               <td bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_PRESERVE_MODE%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_PRESERVE_MODE)%>>Preserve Mode</span></td>
698
            </tr>
699
            <tr>
700
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_archive_mode.gif" width="15" height="14"></td>
701
               <td bgcolor="#F5F5F5"><span class="body_txt"><input name="listFilter" type="checkbox" value="'<%=enumDB_RELEASE_IN_ARCHIVE_MODE%>'" <%=GetIsListFilterChecked(enumDB_RELEASE_IN_ARCHIVE_MODE)%>>Archive Mode</span></td>
702
            </tr>
703
            <%If NOT bIsaTreeView Then%>
704
             <tr>
705
                <td>&nbsp;</td>
706
                <td><input name="btn" type="submit" class="form_btn" value="Update"></td>
707
             </tr>
708
             <%End If%>
709
         </table>
710
      </td>
711
      <td rowspan="2" valign="top" width="100%">
712
         <!-- ACTION BUTTONS ---------------------------------------------->
713
         <table width="100%"  border="0" cellspacing="0" cellpadding="7" style="background-color:#DAD7C8">
714
            <tr>
715
               <td width="1">
716
                  <%
717
                  If bIsaTreeView Then
718
                     Response.write LIMG_TREE_VIEW
719
                  Else
720
                     Response.write LIMG_LIST_VIEW
721
                  End If
722
                  %>
723
               </td>
724
               <td width="100%">
725
                  <%
726
                  Dim aBtnsDef
727
                  ' Define action buttons
728
                  aBtnsDef = Array("btnNewRelease", "width=5", "btnMergeManager", "width=5", "btnAdminView")
729
 
730
                  ' Load action buttons from database
731
                  Call objBtnControl.LoadActionButtons ( aBtnsDef, OraDatabase )
732
 
733
                  ' Set spacing to minimum between buttons
734
                  objBtnControl.ButtonSpacer = 0
735
                  objBtnControl.ImageHspace = 2
736
 
737
                  ' Access Control
738
                  If NOT canActionControlInProject("CreateNewRelease") Then Call objBtnControl.Active ( "btnNewRelease", "N" )
739
                  If NOT canActionControlInProject("ConfigureRelease") Then Call objBtnControl.Active ( "btnMoveRelease", "N" )
740
 
741
                  ' -- Render Buttons
742
                  Call objBtnControl.Render  ( aBtnsDef, objAccessControl )
743
                  %>
744
               </td>
745
            </tr>
746
         </table>
747
         <!-- ACTION BUTTONS END  ------------------------------------------>
748
         <!-- RELEASE INFORMATION  ----------------------------------------->
749
         <table id=releaseTree width="100%"  border="0" cellspacing="10" cellpadding="0">
750
               <tr>
751
                  <td>
752
                     <!-- TREE VIEW ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
753
                     <%If bIsaTreeView Then%>
754
                        <table width="100%"  border="0" cellspacing="1" cellpadding="1">
755
                           <tr class='form_field_bg' style="height:21px">
756
                              <td width="25%" class="body_txt">Release Name </td>
757
 
758
                              <%If parProjId <> 2 Then %>
759
                                 <td width="15%" class="body_txt">Created</td>
760
                                 <td width="47%" class="body_txt">Comments</td>
761
                              <%Else%>
762
                                 <td width="15%" class="body_txt">Created</td>
763
                                 <td width="25%" class="body_txt">Used By </td>
764
                                 <td width="22%" class="body_txt">Comments</td>
765
                              <%End If%>
766
                           <td width="1%" nowrap class="body_txt">Lxr</td>
767
                           <td width="3%" nowrap class="body_txt">Daemon&nbsp;Status</td>
768
                           </tr>
769
                           <%
770
                           OraDatabase.Parameters.Add "PROJ_ID",  parProjId,  ORAPARM_INPUT, ORATYPE_NUMBER
771
 
772
                           Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ReleaseVersionTree.sql") , ORADYN_DEFAULT )
773
                           lastLevel = 0
774
 
775
                           OraDatabase.Parameters.Remove "PROJ_ID"
776
 
777
                           Dim lastRtagId, parentRtag_id
778
 
779
                           If rsQry.RecordCount > 0 Then
780
 
781
                              Set objDmSts = New DaemonStatus
782
                              Call objDmSts.GetDaemonStatus(parProjId)
783
 
784
                              While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
785
                                 currLevel = CInt(rsQry("hierarchy"))
786
                                 hoverTitle = "Last change: "& rsQry("OFFICIAL_STAMP") & " by " & rsQry("modifier")
787
                                 createdBy = rsQry("created_stamp") & " by " & rsQry("creator") 
788
 
789
                                 %>
790
                                 <tr class="body_rowg2">
791
                                    <td nowrap>
792
                                       <%Call RenderIndent( lastLevel, currLevel )%>
793
                                       <%Call RenderActions(rsQry("rtag_id"),rsQry("official"))%>
794
                                       <a href="dependencies.asp?rtag_id=<%=rsQry("rtag_id")%>" class="body_link" title="<%=hoverTitle%>" >
795
                                       <%=ReleaseIcon( rsQry("official") )%>&nbsp;<%=rsQry("rtag_name")%></a>
796
                                    </td>
797
                                    <td nowrap valign=top"><%=createdBy%></td>
798
                                    <%
799
                                    If parProjId = 2 Then
800
                                       comment = GetMassRefComments(rsQry("rtag_id"))
801
                                       If comment = "" Then comment = "None."
802
                                       %>
803
                                       <td><%=comment%></td>
804
                                    <%End If%>
805
 
806
                                    <td><%=NewLine_To_BR(rsQry("description"))%></td>
807
                                    <td nowrap valign="top"><%Call RenderLxrState() %></td>
808
                                    <td valign="top"><%Call RenderDaemonStatusConfig(rsQry("rtag_id"))%></td>
809
                                 </tr>
810
                                 <%
811
                                 lastLevel = currLevel
812
                                 rsQry.MoveNext
813
                              WEnd
814
                              Set objDmSts = Nothing
815
                           End If
816
                           rsQry.Close
817
                           Set rsQry = Nothing
818
                           %>
819
                        </table>
820
                     <!-- LIST VIEW ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
821
                     <%Else%>
822
                        <table width="100%"  border="0" cellspacing="1" cellpadding="1">
823
                           <tr class='form_field_bg'>
824
                              <td width="1%">&nbsp;</td>
825
                              <td width="20%" class="body_txt">Release Name </td>
826
                              <td width="10%" class="body_txt">Created</td>
827
                              <%If parProjId <> 2 Then %>
828
                                 <td width="47%" class="body_txt">Comments</td>
829
                              <%Else%>
830
                                 <td width="24%" class="body_txt">Used By </td>
831
                                 <td width="22%" class="body_txt">Comments</td>
832
                              <%End If%>
833
                              <td width="1%" class="body_txt" title="LXR Support enabled">Lxr</td>
834
                              <td width="3%" class="body_txt">Daemon Status</td>
835
                           </tr>
836
                           <%
837
                              OraDatabase.Parameters.Add "PROJ_ID",  parProjId,  ORAPARM_INPUT, ORATYPE_NUMBER
838
 
839
                              rsQryStr = GetQuery ("ReleaseVersionList.sql")
840
                              rsQryStr = Replace(rsQryStr, "/*SHOW_FILTER*/", parShowFilter)
841
 
842
                              Set rsQry = OraDatabase.DbCreateDynaset( rsQryStr, ORADYN_DEFAULT )
843
 
844
                              OraDatabase.Parameters.Remove "PROJ_ID"
845
 
846
                              If rsQry.RecordCount > 0 Then
847
 
848
                                 Set objDmSts = New DaemonStatus
849
                                 Call objDmSts.GetDaemonStatus(parProjId)
850
 
851
                                 While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
852
                                    hoverTitle = "Last change: "& rsQry("OFFICIAL_STAMP") & " by " & rsQry("modifier") & ". " & rsQry("OFFICIAL_STAMP_DAYS")& " Days ago"
853
                                    createdBy = rsQry("created_stamp") & " by " & rsQry("creator")
854
 
855
                                    %>
856
                                    <tr class="body_rowg2">
857
                                       <td valign="top">
858
                                          <%Call RenderActions(rsQry("rtag_id"),rsQry("official"))%>
859
                                       </td>
860
                                       <td nowrap valign="top">
861
                                          <a href="dependencies.asp?rtag_id=<%=rsQry("rtag_id")%>" class="body_link" title="<%=hoverTitle%>">
862
                                          <%=ReleaseIcon( rsQry("official"))%>&nbsp;<%=rsQry("rtag_name")%></a>
863
                                       </td>
864
                                       <td nowrap  valign=top><%=createdBy%></td>
865
                                       <%
866
                                       If parProjId = 2 Then
867
                                          comment = GetMassRefComments(rsQry("rtag_id"))
868
                                          If comment = "" Then comment = "None."
869
                                          %>
870
                                            <td><%=comment%></td>
871
                                       <%End If%>
872
                                       <td><%=NewLine_To_BR(  rsQry("description")   )%></td>
873
                                       <td nowrap valign="top"><%Call RenderLxrState() %></td>
874
                                       <td valign="top"><%Call RenderDaemonStatusConfig(rsQry("rtag_id"))%>
875
                                       </td>
876
                                    </tr>
877
                                    <%
878
                                    rsQry.MoveNext
879
                                 WEnd
880
                                 Set objDmSts = Nothing
881
                              End If
882
                              rsQry.Close
883
                              Set rsQry = Nothing
884
                              %>
885
                        </table>
886
                     <%End If%>
887
                     <!-- LIST VIEW END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
888
                     <%=objPMod.ComposeHiddenTags()%>
889
                     <input type="hidden" name="action" value="true">
890
                     </form>
891
                     <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
892
                     <!--#include file="messages/_msg_inline.asp"-->
893
                     <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
894
                  </td>
895
               </tr>
896
         </table>
897
      </td>
898
      <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
899
   </tr>
900
   <tr>
901
      <td valign="bottom" align="center" background="images/bg_home_orange.gif">
902
      </td>
903
   </tr>
904
</table>
905
<!-- Dropdown Menu -->
906
<div id=testdiv></div>
907
<div >
908
  <ul id="select-menu" style="display:none;">
909
   <li data-opr="open" title="Goto this Release">Open ...</li>
910
    <li data-opr="edit" title="Edit the properties of the Release">Edit Properties</li>
911
    <li <%=iif(bCanMove,"data-opr=move","class=ui-state-disabled")%> title="Change the order in which releases are displayed">Change display order</li>
912
    <li>-</li>
913
    <li data-opr="mergeSelect" title="Select as the source (left side) of a merge or comparison">Select for Merge/Diff</li>
914
    <li id="select-menu-merge" data-opr="merge" title="Merge or Compare from selected release to this release">Merge/Diff from selected</li>
915
    <li>-</li>
916
    <li id="select-menu-close" data-opr="close">Close Release</li>
917
    <li id="select-menu-preserve" data-opr="preserve" >Preserve Release</li>
918
    <li id="select-menu-archive" data-opr="archive" >Archive Release</li>
919
    <li>-</li>
920
    <li <%=iif(bCanClone,"data-opr=clone","class=ui-state-disabled")%> title="Create a new Release based on selected Release">Clone Release</li>
921
    <li>-</li>
922
    <li <%=iif(bCanDestroy,"data-opr=delete","class=ui-state-disabled")%>  title="Delete the selected Release">Destroy Release</li>
923
    <li>-</li>
924
    <li>Close Menu</li>
925
  </ul>
926
</div>
927
<!-- FOOTER -->
928
<!--#include file="_footer.asp"-->
929
<map name="mapviewtype">
930
  <area shape="rect" coords="2,2,69,23" href="<%=ScriptName%>?viewtype=1&<%=objPMod.ComposeURL()%>" title="Switch to List View">
931
  <area shape="rect" coords="73,2,143,23" href="<%=ScriptName%>?viewtype=2&<%=objPMod.ComposeURL()%>" title="Switch to Tree View">
932
</map>
933
</body>
934
</html>
935
<%
936
Call Destroy_All_Objects
937
%>