Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
157 ghuddy 5
'|                        RTREE                      |
119 ghuddy 6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
157 ghuddy 12
Response.Expires = 0   ' always load the page, dont store
119 ghuddy 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"-->
183 brianf 20
<!--#include file="common/daemon_status.asp"-->
119 ghuddy 21
<%
22
'------------ ACCESS CONTROL ------------------
23
%>
24
<!--#include file="_access_control_general.asp"-->
25
<%
26
'------------ Variable Definition -------------
27
Dim ViewType
5177 dpurdie 28
Dim bIsaTreeView
157 ghuddy 29
Dim rsQryStr
119 ghuddy 30
Dim rsQry
31
Dim parProjId
157 ghuddy 32
Dim parShowFilter
119 ghuddy 33
Dim objBtnControl
5177 dpurdie 34
Dim currLevel, lastLevel
157 ghuddy 35
Dim dListFilter
183 brianf 36
Dim objDmSts
5177 dpurdie 37
Dim hoverTitle, createdBy, comment
38
Dim bCanMove
39
Dim bCanDestroy
40
Dim bCanClone
41
Dim bCanUnarchive
42
Dim bCanCloseArchive
5178 dpurdie 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
 
119 ghuddy 63
'------------ Constants Declaration -----------
64
Const LIMG_TREE_I_HALF = "<img src='images/spacer.gif' width='20' height='1'>"
4078 dpurdie 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'>"
157 ghuddy 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'>"
5177 dpurdie 70
 
119 ghuddy 71
Const LCONST_LIST_VIEW = 1
72
Const LCONST_TREE_VIEW = 2
157 ghuddy 73
 
5177 dpurdie 74
Const DEFAULT_SHOW_FILTER = "'N','R','C','O'"
75
 
119 ghuddy 76
'------------ Variable Init -------------------
5177 dpurdie 77
'   Need either proj_id or rtag_id, for which we will calculate a project id
119 ghuddy 78
parProjId = Request("proj_id")
5177 dpurdie 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)
157 ghuddy 84
 
5177 dpurdie 85
 
157 ghuddy 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
 
119 ghuddy 101
Set objBtnControl = New ActionButtonControl
183 brianf 102
 
5177 dpurdie 103
' Init access control
104
bCanMove =  canActionControlInProject("ConfigureRelease") 
105
bCanDestroy = canActionControlInProject("DestroyRelease")
106
bCanClone =  canActionControlInProject("CreateNewRelease")
107
 
5178 dpurdie 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
 
119 ghuddy 126
'----------------------------------------------
127
%>
128
<%
157 ghuddy 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 = ""
5177 dpurdie 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
 
157 ghuddy 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
 
5177 dpurdie 150
   If parShowFilter <> "" Then
151
      aFilterValues = Split( Replace( parShowFilter, " ", ""), ",")
157 ghuddy 152
 
153
      For Each FilterVal In aFilterValues
154
         outDepFilter.Item (CStr( FilterVal )) = ""
155
      Next
156
   End If
157
End Sub
158
 
119 ghuddy 159
'----------------------------------------------------------------------------------------------------------------------------------------------
160
Sub RenderIndent ( nLastLevel, nCurrLevel )
157 ghuddy 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
4078 dpurdie 168
         Response.write LIMG_TREE_I_NONE
157 ghuddy 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
 
119 ghuddy 180
End Sub
181
'----------------------------------------------------------------------------------------------------------------------------------------------
182
Sub NewRelease ()
5177 dpurdie 183
    Call OpenInWindow ( "new_release.asp?" & objPMod.ComposeURL() )
119 ghuddy 184
End Sub
185
'----------------------------------------------------------------------------------------------------------------------------------------------
5177 dpurdie 186
Sub MergeManager ()
187
    ' Open Merge Manager without parameters
188
    Call OpenInWindow ( "diff.asp" )
119 ghuddy 189
End Sub
190
'----------------------------------------------------------------------------------------------------------------------------------------------
5177 dpurdie 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) )
157 ghuddy 198
 
5177 dpurdie 199
     Dim viewRecordCount
200
     Dim id
201
     viewRecordCount=0
202
     viewRecordCount = rsQry.RecordCount
157 ghuddy 203
 
5177 dpurdie 204
     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
205
        id=rsQry.Fields("view_id")
206
        rsQry.MoveNext
207
     WEnd
157 ghuddy 208
 
5177 dpurdie 209
      rsQry.Close()
210
     Set rsQry = nothing
157 ghuddy 211
 
5177 dpurdie 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 )"
157 ghuddy 219
 
5177 dpurdie 220
        Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )
157 ghuddy 221
 
5177 dpurdie 222
        OraDatabase.Parameters.Remove "PROJ_ID"
223
        viewRecordCount = rsQry.RecordCount
157 ghuddy 224
 
5177 dpurdie 225
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
226
           id=rsQry.Fields("view_id")
227
           rsQry.MoveNext
228
        WEnd
157 ghuddy 229
 
5177 dpurdie 230
        rsQry.Close()
231
        Set rsQry = nothing
232
     End If
157 ghuddy 233
 
5177 dpurdie 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
119 ghuddy 239
End Sub
240
'----------------------------------------------------------------------------------------------------------------------------------------------
241
Function GetViewType ()
157 ghuddy 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
 
119 ghuddy 255
End Function
256
'----------------------------------------------------------------------------------------------------------------------------------------------
257
Sub SetViewType ()
157 ghuddy 258
   If Request("viewtype") = "" Then Exit Sub    ' Nothing to do
259
 
260
   Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW") = Request("viewtype")
119 ghuddy 261
End Sub
262
'----------------------------------------------------------------------------------------------------------------------------------------------
5177 dpurdie 263
Sub RenderDaemonStatusConfig(nRtagId) 
5009 dpurdie 264
   %>
265
   <table class="embedded_table">
266
    <tr>
267
     <td>
268
     <%
5177 dpurdie 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&"""'>")
5009 dpurdie 271
     %>
272
     </td>
273
     <td>
274
   <%
5177 dpurdie 275
    Call objDmSts.RenderDaemonStatus(nRtagId,16)
5009 dpurdie 276
    %>
277
        </td>
278
        </tr>
279
        </table>
280
    <%
281
End Sub
5177 dpurdie 282
'----------------------------------------------------------------------------------------------------------------------------------------------
283
Function RenderActions(nRtagId, sOfficial)
284
    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&"'></span>"
285
End Function
286
'----------------------------------------------------------------------------------------------------------------------------------------------
287
Function GetMassRefComments (nRtagId)
288
   Dim UsedBy
289
   Dim rsQryUse
290
   Dim linkB
291
   Dim joiner : joiner = ""
292
   Dim comment : comment = ""
5009 dpurdie 293
 
5177 dpurdie 294
'   If parProjId <> 2 Then
295
'     assocMASSREF = rsQry("assoc_mass_ref")
296
'     If assocMASSREF <> "" Then
297
'        Set rsQryAssoc = OraDatabase.DbCreateDynaset("SELECT RTAG_NAME, RTAG_ID FROM RELEASE_TAGS WHERE RTAG_ID="&assocMASSREF , ORADYN_DEFAULT)
298
'        assocMASSREFName = rsQryAssoc("RTAG_NAME")
299
'        link = rsQryAssoc("rtag_id")
300
'        rsQryAssoc.Close
301
'        Set rsQryAssoc = Nothing
302
'     Else
303
'        assocMASSREFName = "None."
304
'     End If
305
'   Else
306
      UsedBy = nRtagId
307
      If UsedBy <> "" Then
308
         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)
309
 
310
         While ((NOT rsQryUse.BOF) AND (NOT rsQryUse.EOF))
311
            If rsQryUse("assoc_mass_ref") = UsedBy Then
312
               linkB = "dependencies.asp?rtag_id="&rsQryUse("rtag_id")
313
               comment = joiner & rsQryUse("proj_name") & " -> <a href="&linkB&">"& rsQryUse("rtag_name") &"</a>"
314
               joiner = " <br> "
315
               rsQryUse.MoveNext
316
            End If
317
         WEnd
318
         rsQryUse.Close
319
         Set rsQryUse = Nothing
320
      End If
321
      GetMassRefComments = comment
322
End Function
5009 dpurdie 323
'----------------------------------------------------------------------------------------------------------------------------------------------
119 ghuddy 324
%>
325
<%
326
'------------ RUN BEFORE PAGE RENDER ----------
327
If (Request("action") <> "") Then
121 hknight 328
 
5177 dpurdie 329
   If Request("btn") = "Update" Then
157 ghuddy 330
      ' Store filter in cookie
331
      Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = Request("listFilter")
332
      parShowFilter = Request("listFilter")
5177 dpurdie 333
      If IsNull(parShowFilter) OR parShowFilter = "" Then parShowFilter = DEFAULT_SHOW_FILTER
157 ghuddy 334
   Else
335
      '-- Select Action
336
      Select Case Request("action")
5177 dpurdie 337
          Case "btnNewRelease"
338
             Call NewRelease()
121 hknight 339
 
5177 dpurdie 340
          Case "btnMergeManager"
341
             Call MergeManager()
121 hknight 342
 
5177 dpurdie 343
          Case "btnAdminView"
344
             Call AdminView()
157 ghuddy 345
      End Select
346
   End If
347
 
119 ghuddy 348
End If
349
 
5177 dpurdie 350
' Set view type  if required
119 ghuddy 351
Call SetViewType ()
352
 
353
' Get current view type
354
ViewType = GetViewType()
5177 dpurdie 355
bIsaTreeView = (ViewType = LCONST_TREE_VIEW)
157 ghuddy 356
 
119 ghuddy 357
'----------------------------------------------
358
%>
359
<html>
360
<head>
361
<%
5177 dpurdie 362
   Set rsQry = OraDatabase.DbCreateDynaset( "SELECT PROJ_NAME FROM PROJECTS WHERE PROJ_ID="& parProjId, ORADYN_DEFAULT )
119 ghuddy 363
%>
364
<title><%=rsQry("proj_name")%></title>
365
<%
157 ghuddy 366
   rsQry.Close
367
   Set rsQry = Nothing
119 ghuddy 368
%>
369
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
370
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
371
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
372
<link rel="stylesheet" href="images/navigation.css" type="text/css">
373
<script language="JavaScript" src="images/common.js"></script>
374
 
375
<!-- DROPDOWN MENUS -->
376
<!--#include file="_menu_def.asp"-->
377
<script language="JavaScript1.2" src="images/popup_menu.js"></script>
378
 
5177 dpurdie 379
<!-- Dropdown action menu scripts -->
380
<style>
381
    .ui-menu { position: absolute; }
382
</style>
383
<!--#include file="_jquery_includes.asp"-->
384
<script>
385
    $(function() {
386
        // Global menu data structure
387
        //  Persist between invocations of the menu
388
        //      Used to mergeLeft rtagid
389
        //      Used to store current menu info
5178 dpurdie 390
        $.acData = {
5177 dpurdie 391
            //  Data
5178 dpurdie 392
            bCanOpenToClose                 : <%=iif(bCanOpenToClose          , "true", "false")%> ,             
393
            bCanRestrictiveToClose          : <%=iif(bCanRestrictiveToClose   , "true", "false")%> ,
394
            bCanCloseToClose                : <%=iif(bCanCloseToClose         , "true", "false")%> ,
395
            bCanPreserveToClose             : <%=iif(bCanPreserveToClose      , "true", "false")%> ,
396
            bCanArchiveToClose              : <%=iif(bCanArchiveToClose       , "true", "false")%> ,
397
 
398
            bCanOpenToPreserve              : <%=iif(bCanOpenToPreserve       , "true", "false")%> ,
399
            bCanRestrictiveToPreserve       : <%=iif(bCanRestrictiveToPreserve, "true", "false")%> ,
400
            bCanCloseToPreserve             : <%=iif(bCanCloseToPreserve      , "true", "false")%> ,
401
            bCanPreserveToPreserve          : <%=iif(bCanPreserveToPreserve   , "true", "false")%> ,
402
            bCanArchiveToPreserve           : <%=iif(bCanArchiveToPreserve    , "true", "false")%> ,
403
 
404
            bCanOpenToArchive               : <%=iif(bCanOpenToArchive        , "true", "false")%> ,
405
            bCanRestrictiveToArchive        : <%=iif(bCanRestrictiveToArchive , "true", "false")%> ,
406
            bCanCloseToArchive              : <%=iif(bCanCloseToArchive       , "true", "false")%> ,
407
            bCanPreserveToArchive           : <%=iif(bCanPreserveToArchive    , "true", "false")%> ,
408
            bCanArchiveToArchive            : <%=iif(bCanArchiveToArchive     , "true", "false")%> ,
409
            };
5177 dpurdie 410
 
5178 dpurdie 411
            // Convert from Release Mode to [canClose, canPreserve, canArchive]
412
        $.mode2access = {
413
 
414
            N: [$.acData.bCanOpenToClose,$.acData.bCanOpenToPreserve,$.acData.bCanOpenToArchive],
415
            R: [$.acData.bCanRestrictiveToClose,$.acData.bCanRestrictiveToPreserve,$.acData.bCanRestrictiveToArchive],
416
            C: [$.acData.bCanRestrictiveToClose,$.acData.bCanRestrictiveToPreserve,$.acData.bCanRestrictiveToArchive],
417
            Y: [$.acData.bCanCloseToClose,$.acData.bCanCloseToPreserve,$.acData.bCanCloseToArchive],
418
            O: [$.acData.bCanCloseToClose,$.acData.bCanCloseToPreserve,$.acData.bCanCloseToArchive],
419
            P: [$.acData.bCanPreserveToClose,$.acData.bCanPreserveToPreserve,$.acData.bCanPreserveToArchive],
420
            A: [$.acData.bCanArchiveToClose,$.acData.bCanArchiveToPreserve,$.acData.bCanArchiveToArchive],
421
 
422
            canAccess : function(state, index) {
423
                if ( this.hasOwnProperty(state)) {
424
                    return this[state][index];
425
                } else {
426
                    return false;
427
                }
428
            },
429
        };
430
 
431
        $.miniMenu = {
5177 dpurdie 432
            //  Menu operations
433
            open : function (data, event) {
434
                console.log("Opening:", data.rtagid);
435
                this.gotoUrl("dependencies.asp", {rtag_id : data.rtagid});
436
             },
437
 
438
             edit : function (data) {
439
                 console.log("Editing:", data.rtagid);
440
                 this.gotoUrl("form_edit_release.asp", {rtag_id : data.rtagid, rfile : "<%=ScriptName%>"});
441
             },
442
 
443
             mergeSelect : function (data) {
444
                 console.log("Merge from:", data.rtagid );
445
                 data.mergeLeft = data.rtagid;
446
             },
447
 
448
             merge : function (data) {
449
                 console.log ("Merge:", data.mergeLeft, data.rtagid);
450
                 this.gotoUrl("diff.asp", { rtagA : data.mergeLeft, rtagB : data.rtagid});
451
             },
452
 
453
             close : function (data) {
454
                 console.log("Closing:", data.rtagid);
455
                 this.gotoUrl("_change_release_mode.asp", {rtag_id : data.rtagid, mode_code : 3 , rfile : "<%=ScriptName%>"});
456
             },
457
 
458
             preserve : function (data) {
459
                 console.log("Preserving:", data.rtagid);
460
                 this.gotoUrl("_change_release_mode.asp", {rtag_id : data.rtagid, mode_code : 6 , rfile : "<%=ScriptName%>"});
461
             },
462
 
463
             archive : function (data) {
464
                 console.log("Archiving:", data.rtagid);
465
                 this.gotoUrl("_change_release_mode.asp", {rtag_id : data.rtagid, mode_code : 5 , rfile : "<%=ScriptName%>"});
466
             },
467
<%If bCanDestroy Then%>
468
             delete : function (data) {
469
                 console.log("Delete:", data.rtagid);
470
                 var that = this;
471
                 this.confirmDelete(function(){
472
                     that.gotoUrl("_destroy_release.asp", {rtag_id_list : data.rtagid, proj_id : <%=parProjId%>, rfile : "<%=ScriptName%>"});
473
                 });
474
             },
475
<%End If%>
476
<%If bCanMove Then%>
477
             move : function (data) {
478
                 console.log("Move:", data.rtagid);
479
                 this.gotoUrl("form_move_release.asp", { rtag_id_list : data.rtagid, proj_id : <%=parProjId%> });
480
             },
481
<%End If%>
482
<%If bCanClone Then%>
483
             clone : function(data) {
484
                 console.log("Clone:", data.rtagid);
485
                 this.gotoUrl("new_release.asp", { rtag_id_list : data.rtagid, proj_id : <%=parProjId%> });
486
             },
487
<%End If%>
488
 
489
             //
490
             // Internal functions
491
             // Goto url, or open in new tab
492
             gotoUrl: function (url, params)
493
             {
494
                 // Open in new tab - not as simple as it sounds
495
                 // Need to create a form and submit it
496
                 if(event.shiftKey){
497
                     var form = $('<form>',{
498
                         action : url,
499
                         target : '_blank',
500
                         //method : 'GET'
501
                         });
502
 
503
                     $.each(params,function(n,v){
504
                         var item = $('<input>',{
505
                             name : n,
506
                             value : v
507
                         });
508
                         form.append(item);
509
                        });
510
 
511
 
512
                     form.appendTo(document.body);
513
                     form.submit();
514
                     form.remove();
515
                 }
516
                 else {
517
                     if (params)
518
                         url += '?' + jQuery.param(params)
519
                     window.location.href = url;
520
                 }
521
             },
522
 
523
             // Confirm action
524
             //     okcb - callback function
525
             confirmDelete : function(okcb){
526
                 $( "<div>Are you sure</div>" ).dialog({
527
                    resizable: true,
528
                    height:170,
529
                    width : 300,
530
                    modal: true,
531
                    position: { my: "top", at: "top+100", of: window },
532
                    title:'Destroy Release',
533
                    open: function() {
534
                        $(this).siblings('.ui-dialog-buttonpane').find('button:eq(1)').focus(); 
535
                        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?';
536
                        $(this).html(markup);
537
                    },
538
                    close : function() {
539
                        $(this).remove();
540
                    },
541
                    buttons: {
542
                        "Destroy Release": function() {
543
                            okcb();
544
                            $(this).dialog("close");
545
                        },
546
                        Cancel: function() {
547
                            $(this).dialog("close");
548
                        }
549
                    }
550
                 });
551
             },
552
 
553
    };
554
 
555
    // Hide the Menu
556
    $( "#select-menu" ).hide().menu();
557
 
558
    // Register menuselect event handler
559
    $( "#select-menu" ).on( "menuselect", function( event, ui ) {
560
       var opr = ui.item.data('opr');
561
 
562
        // Invoke operation within the menu data structure
563
        if (typeof $.miniMenu[opr] == 'function' ) {
564
            $.miniMenu[event] = event;
565
            $.miniMenu[opr]($.miniMenu);
566
            return;
567
        }
568
        console.log ("Menu Operation:", opr, "Not found");
569
    });
570
 
571
    // Add menu to all require instances
572
   $( ".select-operation" ).click(function() {
573
        // When clicked - create and show the menu
574
        // Insert rtag-id
575
 
576
        //  Create the menu
577
        var menu = $("#select-menu").show().position({
578
         my: "left top",
579
         at: "center bottom",
580
         of: this 
581
    });
582
 
583
        // Allow click outside of the menu to close it
584
      $( document ).one( "click", function() {
585
        menu.hide();
586
        });
587
 
588
        // Setup global data
589
        $.miniMenu.rtagid = $(this).data('rtag-id');
590
 
591
        // Set initial menu state - merge target
592
        $('#select-menu-merge').toggleClass('ui-state-disabled',!('mergeLeft' in $.miniMenu ));
593
 
594
        // Set initial state close/archive
595
        //
596
        var official = $(this).data('official');
5178 dpurdie 597
        $('#select-menu-close').toggleClass('ui-state-disabled',! $.mode2access.canAccess(official,0));
598
        $('#select-menu-preserve').toggleClass('ui-state-disabled',!$.mode2access.canAccess(official,1));
599
        $('#select-menu-archive').toggleClass('ui-state-disabled',! $.mode2access.canAccess(official,2));
5177 dpurdie 600
 
601
        // Prevent propagation of event
602
        return false;
603
    });
604
});
605
</script>
606
 
119 ghuddy 607
</head>
608
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" >
609
<!-- MENU LAYERS -------------------------------------->
157 ghuddy 610
<div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,'on')" onMouseout="highlightmenu(event,'off');dynamichide(event)">
119 ghuddy 611
</div>
612
<!-- TIPS LAYERS -------------------------------------->
613
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
614
<!----------------------------------------------------->
615
<!-- HEADER -->
616
<!--#include file="_header.asp"-->
617
<!-- BODY ---->
618
 
5177 dpurdie 619
<%Call GetListFilterValues ( dListFilter )%>
620
 
621
<form name="FormName" method="post" action="<%=ScriptName%>">
119 ghuddy 622
<table width="100%" border="0" cellspacing="0" cellpadding="0">
157 ghuddy 623
   <tr>
5177 dpurdie 624
      <td width="1" background="images/bg_home_orange.gif" valign="top">
625
         <!-- ICON STATUS and FILTER -------------------------------------->
626
         <table width="118" border="0" align="left" style="margin-top: 38px;">
627
            <tr>
628
               <td bgcolor="#E4E9EC" width="26"><span class="body_txt">Icon</span></td>
629
               <td bgcolor="#E4E9EC" width="82"><span class="body_txt">Release State </span></td>
630
            </tr>
631
            <tr>
632
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_open_mode.gif" width="15" height="13"></td>
633
               <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>
634
            </tr>
635
            <tr>
636
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_restrictive_mode.gif" width="15" height="15"></td>
637
               <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>
638
            </tr>
639
            <tr>
640
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_ccb_mode.gif" width="15" height="15"></td>
641
               <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>
642
            </tr>
643
            <tr>
644
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_closed_mode.gif" width="15" height="14"></td>
645
               <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>
646
            </tr>
647
            <tr>
648
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_closed_mode_warn.gif" width="15" height="14"></td>
649
               <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>
650
            </tr>
651
            <tr>
652
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_preserve_mode.gif" width="15" height="14"></td>
653
               <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>
654
            </tr>
655
            <tr>
656
               <td bgcolor="#F5F5F5"><img src="images/i_rtag_archive_mode.gif" width="15" height="14"></td>
657
               <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>
658
            </tr>
659
            <%If NOT bIsaTreeView Then%>
660
             <tr>
661
                <td>&nbsp;</td>
662
                <td><input name="btn" type="submit" class="form_btn" value="Update"></td>
663
             </tr>
664
             <%End If%>
665
         </table>
666
      </td>
157 ghuddy 667
      <td rowspan="2" valign="top" width="100%">
668
         <!-- ACTION BUTTONS ---------------------------------------------->
5177 dpurdie 669
         <table width="100%"  border="0" cellspacing="0" cellpadding="7" style="background-color:#DAD7C8">
157 ghuddy 670
            <tr>
5177 dpurdie 671
               <td width="1">
157 ghuddy 672
                  <%
5177 dpurdie 673
                  If bIsaTreeView Then
157 ghuddy 674
                     Response.write LIMG_TREE_VIEW
675
                  Else
676
                     Response.write LIMG_LIST_VIEW
677
                  End If
678
                  %>
679
               </td>
5177 dpurdie 680
               <td width="100%">
157 ghuddy 681
                  <%
682
                  Dim aBtnsDef
683
                  ' Define action buttons
5177 dpurdie 684
                  aBtnsDef = Array("btnNewRelease", "width=5", "btnMergeManager", "width=5", "btnAdminView")
119 ghuddy 685
 
157 ghuddy 686
                  ' Load action buttons from database
687
                  Call objBtnControl.LoadActionButtons ( aBtnsDef, OraDatabase )
119 ghuddy 688
 
157 ghuddy 689
                  ' Set spacing to minimum between buttons
690
                  objBtnControl.ButtonSpacer = 0
691
                  objBtnControl.ImageHspace = 2
119 ghuddy 692
 
157 ghuddy 693
                  ' Access Control
5061 dpurdie 694
                  If NOT canActionControlInProject("CreateNewRelease") Then Call objBtnControl.Active ( "btnNewRelease", "N" )
695
                  If NOT canActionControlInProject("DestroyRelease") Then Call objBtnControl.Active ( "btnDestroyRelease", "N" )
696
                  If NOT canActionControlInProject("ConfigureRelease") Then Call objBtnControl.Active ( "btnMoveRelease", "N" )
119 ghuddy 697
 
157 ghuddy 698
                  ' -- Render Buttons
699
                  Call objBtnControl.Render  ( aBtnsDef, objAccessControl )
700
                  %>
701
               </td>
702
            </tr>
703
         </table>
704
         <!-- ACTION BUTTONS END  ------------------------------------------>
5177 dpurdie 705
         <!-- RELEASE INFORMATION  ----------------------------------------->
157 ghuddy 706
         <table width="100%"  border="0" cellspacing="10" cellpadding="0">
707
               <tr>
708
                  <td>
709
                     <!-- TREE VIEW ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
5177 dpurdie 710
                     <%If bIsaTreeView Then%>
157 ghuddy 711
                        <table width="100%"  border="0" cellspacing="1" cellpadding="1">
712
                           <tr>
5177 dpurdie 713
                              <td width="25%" bgcolor="#E4E9EC" class="body_txt">Release Name </td>
119 ghuddy 714
 
157 ghuddy 715
                              <%If parProjId <> 2 Then %>
5177 dpurdie 716
                                 <td width="15%" bgcolor="#E4E9EC" class="body_txt">Created</td>
183 brianf 717
                                 <td width="47%" bgcolor="#E4E9EC" class="body_txt">Comments</td>
5177 dpurdie 718
                                 <td width="3%"  bgcolor="#E4E9EC" class="body_txt">Daemon Status</td>
157 ghuddy 719
                              <%Else%>
5177 dpurdie 720
                                 <td width="15%" bgcolor="#E4E9EC" class="body_txt">Created</td>
183 brianf 721
                                 <td width="25%" bgcolor="#E4E9EC" class="body_txt">Used By </td>
722
                                 <td width="22%" bgcolor="#E4E9EC" class="body_txt">Comments</td>
5177 dpurdie 723
                                 <td width="3%"  bgcolor="#E4E9EC" class="body_txt">Daemon Status</td>
157 ghuddy 724
                              <%End If%>
725
                           </tr>
726
                           <%
727
                           OraDatabase.Parameters.Add "PROJ_ID",  parProjId,  ORAPARM_INPUT, ORATYPE_NUMBER
728
 
729
                           Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ReleaseVersionTree.sql") , ORADYN_DEFAULT )
730
                           lastLevel = 0
731
 
732
                           OraDatabase.Parameters.Remove "PROJ_ID"
733
 
734
                           Dim lastRtagId, parentRtag_id
735
 
736
                           If rsQry.RecordCount > 0 Then
737
 
183 brianf 738
                              Set objDmSts = New DaemonStatus
739
                              Call objDmSts.GetDaemonStatus(parProjId)
740
 
157 ghuddy 741
                              While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
742
                                 currLevel = CInt(rsQry("hierarchy"))
4080 dpurdie 743
                                 hoverTitle = "Last change: "& rsQry("OFFICIAL_STAMP") & " by " & rsQry("modifier")
5177 dpurdie 744
                                 createdBy = rsQry("created_stamp") & " by " & rsQry("creator") 
4080 dpurdie 745
 
157 ghuddy 746
                                 %>
747
                                 <tr>
5177 dpurdie 748
                                    <td nowrap bgcolor="#F5F5F5" class="body_rowg">
157 ghuddy 749
                                       <%Call RenderIndent( lastLevel, currLevel )%>
5177 dpurdie 750
                                       <%Call RenderActions(rsQry("rtag_id"),rsQry("official"))%>
4080 dpurdie 751
                                       <a href="dependencies.asp?rtag_id=<%=rsQry("rtag_id")%>" class="body_link" title="<%=hoverTitle%>" >
157 ghuddy 752
                                       <%=ReleaseIcon( rsQry("official") )%>&nbsp;<%=rsQry("rtag_name")%></a>
5177 dpurdie 753
                                    </td>
754
                                    <td nowrap bgcolor="#F5F5F5" class="body_rowg valign=top"><%=createdBy%></td>
755
                                    <%
756
                                    If parProjId = 2 Then
757
                                       comment = GetMassRefComments(rsQry("rtag_id"))
758
                                       If comment = "" Then comment = "None."
759
                                       %>
760
                                       <td bgcolor="#F5F5F5" class="body_rowg"><%=comment%></td>
761
                                    <%End If%>
157 ghuddy 762
 
5177 dpurdie 763
                                    <td bgcolor="#F5F5F5" class="body_rowg"><%=NewLine_To_BR(rsQry("description"))%></td>
764
                                    <td bgcolor="#F5F5F5" class="body_rowg" valign=top>
765
                                       <%Call RenderDaemonStatusConfig(rsQry("rtag_id"))%>
766
                                    </td>
157 ghuddy 767
                                 </tr>
768
                                 <%
769
                                 lastLevel = currLevel
770
                                 rsQry.MoveNext
771
                              WEnd
183 brianf 772
                              Set objDmSts = Nothing
157 ghuddy 773
                           End If
774
                           rsQry.Close
775
                           Set rsQry = Nothing
776
                           %>
777
                        </table>
778
                     <!-- LIST VIEW ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
779
                     <%Else%>
5177 dpurdie 780
                        <table width="100%"  border="0" cellspacing="1" cellpadding="1">
157 ghuddy 781
                           <tr>
5177 dpurdie 782
                              <td width="1%" bgcolor="#E4E9EC">&nbsp;</td>
783
                              <td width="20%" bgcolor="#E4E9EC" class="body_txt">Release Name </td>
784
                              <td width="10%" bgcolor="#E4E9EC" class="body_txt">"Created"</td>
157 ghuddy 785
                              <%If parProjId <> 2 Then %>
183 brianf 786
                                 <td width="47%" bgcolor="#E4E9EC" class="body_txt">Comments</td>
157 ghuddy 787
                              <%Else%>
183 brianf 788
                                 <td width="24%" bgcolor="#E4E9EC" class="body_txt">Used By </td>
789
                                 <td width="22%" bgcolor="#E4E9EC" class="body_txt">Comments</td>
157 ghuddy 790
                              <%End If%>
5177 dpurdie 791
                              <td width="3%" bgcolor="#E4E9EC" class="body_txt">Daemon Status</td>
157 ghuddy 792
                           </tr>
793
                           <%
794
                              OraDatabase.Parameters.Add "PROJ_ID",  parProjId,  ORAPARM_INPUT, ORATYPE_NUMBER
795
 
796
                              rsQryStr = GetQuery ("ReleaseVersionList.sql")
797
                              rsQryStr = Replace(rsQryStr, "/*SHOW_FILTER*/", parShowFilter)
798
 
799
                              Set rsQry = OraDatabase.DbCreateDynaset( rsQryStr, ORADYN_DEFAULT )
800
 
801
                              OraDatabase.Parameters.Remove "PROJ_ID"
802
 
803
                              If rsQry.RecordCount > 0 Then
804
 
183 brianf 805
                                 Set objDmSts = New DaemonStatus
806
                                 Call objDmSts.GetDaemonStatus(parProjId)
807
 
5177 dpurdie 808
                                 While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
809
                                    hoverTitle = "Last change: "& rsQry("OFFICIAL_STAMP") & " by " & rsQry("modifier") & ". " & rsQry("OFFICIAL_STAMP_DAYS")& " Days ago"
810
                                    createdBy = rsQry("created_stamp") & " by " & rsQry("creator")
157 ghuddy 811
 
812
                                    %>
813
                                    <tr>
814
                                       <td bgcolor="#F5F5F5" class="body_txt" valign="top">
5177 dpurdie 815
                                          <%Call RenderActions(rsQry("rtag_id"),rsQry("official"))%>
157 ghuddy 816
                                       </td>
5177 dpurdie 817
                                       <td nowrap bgcolor="#F5F5F5" valign="top">
818
                                          <a href="dependencies.asp?rtag_id=<%=rsQry("rtag_id")%>" class="body_link" title="<%=hoverTitle%>">
819
                                          <%=ReleaseIcon( rsQry("official"))%>&nbsp;<%=rsQry("rtag_name")%></a>
157 ghuddy 820
                                       </td>
5177 dpurdie 821
                                       <td nowrap bgcolor="#F5F5F5" class="body_rowg" valign=top><%=createdBy%></td>
157 ghuddy 822
                                       <%
5177 dpurdie 823
                                       If parProjId = 2 Then
824
                                          comment = GetMassRefComments(rsQry("rtag_id"))
825
                                          If comment = "" Then comment = "None."
157 ghuddy 826
                                          %>
5177 dpurdie 827
                                            <td bgcolor="#F5F5F5" class="body_rowg"><%=comment%></td>
157 ghuddy 828
                                       <%End If%>
5177 dpurdie 829
                                       <td bgcolor="#F5F5F5" class="body_rowg"><%=NewLine_To_BR(  rsQry("description")   )%></td>
830
                                       <td bgcolor="#F5F5F5" class="body_rowg" valign=top>
831
                                          <%Call RenderDaemonStatusConfig(rsQry("rtag_id"))%>
183 brianf 832
                                       </td>
157 ghuddy 833
                                    </tr>
834
                                    <%
5177 dpurdie 835
                                    rsQry.MoveNext
836
                                 WEnd
183 brianf 837
                                 Set objDmSts = Nothing
157 ghuddy 838
                              End If
839
                              rsQry.Close
840
                              Set rsQry = Nothing
5177 dpurdie 841
                              %>
157 ghuddy 842
                        </table>
5177 dpurdie 843
                        <%=objPMod.ComposeHiddenTags()%>
844
                        <input type="hidden" name="action" value="true">
845
                        </form>
157 ghuddy 846
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
847
                        <!--#include file="messages/_msg_inline.asp"-->
848
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
849
 
850
                     <%End If%>
851
                     <!-- LIST VIEW END ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
852
                  </td>
853
               </tr>
854
         </table>
855
      </td>
856
      <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
857
   </tr>
858
   <tr>
5177 dpurdie 859
      <td valign="bottom" align="center" background="images/bg_home_orange.gif">
860
      </td>
157 ghuddy 861
   </tr>
119 ghuddy 862
</table>
5177 dpurdie 863
<!-- Dropdown Menu -->
864
<div >
865
  <ul id="select-menu" style="display:none;">
866
   <li data-opr="open" title="Goto this Release">Open ...</li>
867
    <li data-opr="edit" title="Edit the properties of the Release">Edit Properties</li>
868
    <li <%=iif(bCanMove,"data-opr=move","class=ui-state-disabled")%> title="Change the order in which releases are displayed">Change display order</li>
869
    <li>-</li>
5178 dpurdie 870
    <li data-opr="mergeSelect" title="Select as the source (left side) of a merge or comparison">Select for Merge/Diff</li>
871
    <li id="select-menu-merge" data-opr="merge" title="Merge or Compare from selected release to this release">Merge/Diff from selected</li>
5177 dpurdie 872
    <li>-</li>
873
    <li id="select-menu-close" data-opr="close">Close Release</li>
874
    <li id="select-menu-preserve" data-opr="preserve" >Preserve Release</li>
875
    <li id="select-menu-archive" data-opr="archive" >Archive Release</li>
876
    <li>-</li>
877
    <li <%=iif(bCanClone,"data-opr=clone","class=ui-state-disabled")%> title="Create a new Release based on selected Release">Clone Release</li>
878
    <li>-</li>
879
    <li <%=iif(bCanDestroy,"data-opr=delete","class=ui-state-disabled")%>  title="Delete the selected Release">Destroy Release</li>
880
    <li>-</li>
881
    <li>Close Menu</li>
882
  </ul>
883
</div>
119 ghuddy 884
<!-- FOOTER -->
885
<!--#include file="_footer.asp"-->
886
<map name="mapviewtype">
887
  <area shape="rect" coords="2,2,69,23" href="<%=ScriptName%>?viewtype=1&<%=objPMod.ComposeURL()%>" title="Switch to List View">
888
  <area shape="rect" coords="73,2,143,23" href="<%=ScriptName%>?viewtype=2&<%=objPMod.ComposeURL()%>" title="Switch to Tree View">
889
</map>
890
</body>
891
</html>
892
<%
893
Call Destroy_All_Objects
157 ghuddy 894
%>