Subversion Repositories DevTools

Rev

Rev 6971 | Rev 6977 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6951 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|          Edit/View Build Configuration            |
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/_form_window_common.asp"-->
20
<!--#include file="_action_buttons.asp"-->
21
<!--#include file="class/classActionButtonControl.asp"-->
22
<% '------------ ACCESS CONTROL ------------------ %>
6971 dpurdie 23
<!--#include file="_access_control_login_optional.asp"-->
6951 dpurdie 24
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_action_project.asp"-->
26
<%
27
'------------ Variable Definition -------------
28
Dim parRtagId
6971 dpurdie 29
Dim canModify
30
Dim disabledTxt : disabledTxt = ""
31
Dim disabledImage : disabledImage = ""
6951 dpurdie 32
'------------ Constants Declaration -----------
33
'------------ Variable Init -------------------
34
parRtagId = Request("rtag_id")
35
objPMod.PersistInQryString("rtag_id")
6971 dpurdie 36
canModify = releaseIsMergable(releaseInfoHash("official"))
6951 dpurdie 37
 
6971 dpurdie 38
If NOT canModify Then
39
    disabledTxt = " - Disabled"
40
    disabledImage = ",url('images/abtn__small_remove.gif')  no-repeat center center"
41
End If
6951 dpurdie 42
 
6971 dpurdie 43
'------------ RUN BEFORE PAGE RENDER ----------
6951 dpurdie 44
'----------------------------------------------
6971 dpurdie 45
Sub InsertLocalStyle%>
6953 dpurdie 46
    <style type="text/css">
6971 dpurdie 47
        td.useThis:not(.useRemove) {background: url('images/i_added.gif') no-repeat center center<%=disabledImage%>; cursor: pointer; }
48
        td.useThis.useRemove {background: url('images/i_removed.gif') no-repeat center center<%=disabledImage%>; cursor: pointer; }
6970 dpurdie 49
        .tooOld:not(.forceShow),.hiddenChild:not(.forceShow) {display:none;}
6971 dpurdie 50
        table.dataTable tbody tr.child{background-color: #e0e0e0;}
6953 dpurdie 51
    </style>
52
<%End Sub
53
'----------------------------------------------
6951 dpurdie 54
Sub InsertJavaScript %>
55
      <script language="JavaScript" type="text/JavaScript">
6971 dpurdie 56
 
57
        formTips.tips.h_nvReport    = stdTip(400, 'Newer Version Report', 'This page will display newer (non-ripple) versions of packages in the current release.' +
58
                                                                    '<p>The intent of this page is to allow a developer to see if work has been performed on ' + 
59
                                                                    'packages in this release and consider including the new version into the release.' + 
60
                                                                    '<p>Its possible to merge a newer version into the current Release, and to undo the operation.' + 
61
                                                                    '<p>A filter allows only recent versions to be considered.' 
62
                                                                    );
63
 
64
        formTips.tips.h_merge       = stdTip(300, 'Merge Version', 'The selected version can be merged into the Release.' +
65
                                                                    '<p>The version will added as a Pending Merge.' + 
66
                                                                    '<p>Once all required versions have been selected they will need to be released into the Release.' 
67
                                                                    );
68
 
69
 
70
 
6951 dpurdie 71
      $(document).ready(function() {
6970 dpurdie 72
        var nvAgeLimit = 31; 
6951 dpurdie 73
 
74
        // Generate Row Data from JavaScript data
75
        function getPkgName ( row, type, set, meta ) {
6970 dpurdie 76
          var hasChild = (row[10] == 1);
77
          var vis='togglerows';
78
 
79
          if (row[10] != 1 ) {
80
              vis='invisible';
6951 dpurdie 81
          }
82
          var img = "<img src='images/bt_plus.gif' border='0' align='absmiddle' hspace='3' class='pointer "+ vis +"'>"
83
 
84
          var hRef = "view_by_version.asp?pkg_id=" + row[2] + "&hideRipple=True" + "&fpkgversion=*" + row[5]
85
          return img + "<a href=" + hRef + ">" + row[3] + "</a>"
86
        }
87
 
88
        function getVersion ( row, type, set, meta ) {
6971 dpurdie 89
          var hRef = "fixed_issues.asp?pv_id=" + row[0] + "&rtag_id=" + <%=parRtagId%>
6951 dpurdie 90
          return "<a href=" + hRef + ">" + row[4] + "</a>"
91
        }
92
 
93
        function getNewerVersion ( row, type, set, meta ) {
6971 dpurdie 94
          var img = "<img src='images/history.png' width=11 height=11 border='0' align='absmiddle' hspace='3' class='pointer showHistory fright' title='Show History'>"
95
          var img2 = "<img src='images/i_used_by.gif' width=11 height=11 border='0' align='absmiddle' hspace='3' class='pointer showProjects fright' title='Show Projects using this version'>"
96
          var hRef = "fixed_issues.asp?pv_id=" + row[7]
97
          return "<a href=" + hRef + ">" + row[8] + "</a>" + img2 + img
6951 dpurdie 98
        }
99
 
6952 dpurdie 100
        var nvTable;
101
        function loadTable() {
102
            /* Init DataTables */
103
            nvTable = $('#nvtable').DataTable({
104
                sDom : "rti",
105
                data : dataSet,
106
                columns : [
107
                { data : getPkgName },
6953 dpurdie 108
                { data : getVersion  , orderable : false},
6952 dpurdie 109
                { data : [1] },
110
                { data : [6] },
6971 dpurdie 111
                { data : getNewerVersion  , orderable : false, className : 'tight'},
6970 dpurdie 112
                { data : [9], orderData :[0,5] },
6953 dpurdie 113
                { data : null, defaultContent: "", className : 'useThis' , orderable : false},
114
                ],
115
                createdRow : function( row, data, dataIndex, cells ) {
116
                    $(row).attr('data-npvid', data[7]).attr('data-pvid', data[0]);
6970 dpurdie 117
                    if ( data[10] == 2 ) {
118
                        $(row).addClass('hiddenChild child');
119
                    }
120
                    if ( data[12] == 'A' ) {
121
                        $(row).addClass('forceShow');
122
                        $('td', row).eq(6).addClass('useRemove');
123
                    }
124
                    if ( nvAgeLimit > 0 ) {
125
                        if ( parseInt(data[11]) > nvAgeLimit ) {
126
                            $(row).addClass('tooOld');
127
                        }
128
                    }
6953 dpurdie 129
                },
6970 dpurdie 130
                infoCallback: function( settings, start, end, max, total, pre ) {
131
                     return getUpdateInfo();
132
                },
6952 dpurdie 133
                scrollCollapse : true,
134
                paging : false,
135
                "order": [[0,'asc']],
136
                "info": true,
137
                "columnDefs" : [ 
138
                    {className : "dt-nowrap", targets: "_all" },
139
                ],
140
            });
141
        }
142
 
6971 dpurdie 143
        //  Load Data once via AJAX
144
        //  When loaded
145
        //      display the datatable
146
        //      Update 'title' (hover text) on controls
6952 dpurdie 147
        var dataSet;
148
        $.get({
149
            url: 'rep_new_versions_json.asp',
150
            dataType : 'json',
151
            data : {
152
                   rtag_id : <%=parRtagId%>,
153
                   action : 'getData'
154
                   },
155
            success : function(data, textStatus, jqXHR){
156
                dataSet = data.aaData;
157
                loadTable();
6971 dpurdie 158
                $('td.useThis').prop('title', 'Merge this version into the Release<%=disabledTxt%>');
159
                $('td.useRemove').prop('title', 'Remove this version from pending merge<%=disabledTxt%>');
6952 dpurdie 160
            }
6953 dpurdie 161
        }).done( function(){
162
            $('#loading').remove();
6952 dpurdie 163
 
6953 dpurdie 164
        }).fail( function(jqXHR, textStatus, errorThrown){
165
                    setInfo("Error: " + errorThrown );
6951 dpurdie 166
        });
167
 
6952 dpurdie 168
 
6973 dpurdie 169
        //  Add event listener for opening closing extended version list
6951 dpurdie 170
        $('#nvtable tbody').on('click', 'img.togglerows', function () {
6953 dpurdie 171
            clearInfo();
6951 dpurdie 172
            var tr = $(this).closest('tr');
6970 dpurdie 173
            var pvid = tr.data('pvid');
174
            var children = $('#nvtable tbody tr[data-pvid="'+pvid+'"].child');
6951 dpurdie 175
 
6970 dpurdie 176
            if ( tr.hasClass('shown') ) {
6951 dpurdie 177
                // This row is already open - close it
6970 dpurdie 178
                children.addClass('hiddenChild');
6951 dpurdie 179
                tr.removeClass('shown');
180
                $(this).attr('src', 'images/bt_plus.gif');
181
            }
182
            else {
183
                // Open this row
6970 dpurdie 184
                children.removeClass('hiddenChild');
6951 dpurdie 185
                tr.addClass('shown');
186
                $(this).attr('src', 'images/bt_minus.gif');
187
            };
6970 dpurdie 188
            updateInfo();
6951 dpurdie 189
        });
6971 dpurdie 190
<%If canModify Then %>
6953 dpurdie 191
        // Add event listner to all a verion to be 'used'
192
        $('#nvtable tbody').on('click', '.useThis', function () {
193
            var tgtEl = $(this)
194
            var tr = $(this).closest('tr');
195
            var pvid = tr.data('pvid');
196
            var npvid = tr.data('npvid');
197
            var isaRemove = tgtEl.hasClass('useRemove');
198
            $("body").addClass("cursor-wait");
6973 dpurdie 199
            $(tr).addClass('highlightRow');
6953 dpurdie 200
            clearInfo();
201
 
202
            $.get({
203
                url: 'rep_new_versions_json.asp',
204
                dataType : 'json',
205
                data : {
206
                       rtag_id : <%=parRtagId%>,
207
                       action : 'mergeVersion',
208
                       pv_id : pvid,
209
                       npv_id : npvid,
210
                       mode : isaRemove ? 'R' : 'A'
211
                       },
212
                success : function(data, textStatus, jqXHR){
6970 dpurdie 213
                            if (data.result != 0){
6953 dpurdie 214
                                setInfo("Error: " + (data.hasOwnProperty('emsgSummary') ? data.emsgSummary : "Reason not given"));
6971 dpurdie 215
                                return;
6953 dpurdie 216
                            }
6971 dpurdie 217
                            tgtEl.toggleClass('useRemove');
218
                            tr.toggleClass('forceShow');
219
                    }
6953 dpurdie 220
            }).done( function(){
221
 
222
            }).always( function(){
223
                $("body").removeClass("cursor-wait");
224
 
225
            }).fail( function(jqXHR, textStatus, errorThrown){
226
                        setInfo("Error: " + errorThrown );
227
            });
228
        });
6971 dpurdie 229
<%End If%>
6953 dpurdie 230
 
6952 dpurdie 231
       //  Toggle All the extended versions
6970 dpurdie 232
        //  Show/Hide the ALL children, unless they have been 'merged'
6951 dpurdie 233
 
6952 dpurdie 234
        $('#toggleAll').click(function(event){
235
            event.stopPropagation();
236
            event.stopImmediatePropagation();
6953 dpurdie 237
            clearInfo();
6951 dpurdie 238
 
6952 dpurdie 239
            var hide = $(this).hasClass('allOn');
240
            $(this).attr('src', hide ? 'images/bt_plus.gif' : 'images/bt_minus.gif');
241
            $(this).toggleClass('allOn');
6970 dpurdie 242
 
6952 dpurdie 243
            $('#nvtable tbody img.togglerows').each(function(idx, el){
6951 dpurdie 244
 
6952 dpurdie 245
                var tr = $(this).closest('tr');
6970 dpurdie 246
                var pvid = tr.data('pvid');
247
                var children = $('#nvtable tbody tr[data-pvid="'+pvid+'"].child');
6951 dpurdie 248
 
6970 dpurdie 249
                if ( tr.hasClass('shown') && hide ) {
6952 dpurdie 250
                    // This row is already open - close it
6970 dpurdie 251
                    children.addClass('hiddenChild');
6952 dpurdie 252
                    tr.removeClass('shown');
253
                    $(this).attr('src', 'images/bt_plus.gif');
254
                }
6970 dpurdie 255
                if ( !tr.hasClass('shown') && !hide ) {
6952 dpurdie 256
                    // Open this row
6970 dpurdie 257
                    children.removeClass('hiddenChild');
6952 dpurdie 258
                    tr.addClass('shown');
259
                    $(this).attr('src', 'images/bt_minus.gif');
260
                };
261
            });
6970 dpurdie 262
            updateInfo();
6952 dpurdie 263
        });
6951 dpurdie 264
 
6971 dpurdie 265
        //  Show History button
266
        $('#nvtable tbody').on('click', '.showHistory', function (event) {
267
            var tr = $(this).closest('tr');
268
            var pvid = tr.data('pvid');
269
            var npvid = tr.data('npvid');
270
            var data = nvTable.row( tr ).data();
6973 dpurdie 271
            $(tr).addClass('highlightRow');
6971 dpurdie 272
            var url = '_wform_versions_history_release_notes.asp?&rtag_id=<%=parRtagId%>&hideRipple=True&pv_id='+npvid+'&pkg_id='+data[2]+'&FLpkg_version=*'+data[5];
273
            var features = 'left=50,top=50,resizable=yes,scrollbars=yes,width=1000,height='+ ( screen.height - 100 );
274
            window.open(url,'History', features);
275
        });
276
 
277
        // Show Project Version dialog
278
 
279
        $('#nvtable tbody').on('click', '.showProjects', function (event) {
280
            var tr = $(this).closest('tr');
281
            var pvid = tr.data('pvid');
282
            var npvid = tr.data('npvid');
283
            var data = nvTable.row( tr ).data();
6973 dpurdie 284
            $(tr).addClass('highlightRow');
6971 dpurdie 285
            $('#popmenu').load('rep_new_versions_info.asp', {pvid: npvid});
286
        });
287
 
6973 dpurdie 288
 
289
        // Highlight row that has had specific operation
290
        // 
291
        $('#nvtable tbody').on('click', 'tr', function (event) {
292
            var allTr = $('#nvtable tbody tr').removeClass('body_row_sel_outline');
293
            allTr.filter('.highlightRow').addClass('body_row_sel_outline').removeClass('highlightRow');
294
        });
295
 
6953 dpurdie 296
        //  Ajax Error message support
297
        function setInfo(txt) {
298
            $("#nvError").text(txt).addClass("errorPanel").show();
299
        }
300
 
301
        function clearInfo() {
302
            $("#nvError").text(" ").removeClass("errorPanel").hide();
303
        }
304
 
6970 dpurdie 305
        // Update the (simulated ) table info
306
        function getUpdateInfo() {
307
            var children = $('#nvtable tbody tr');
308
            var total = children.length;
309
            var hidden = children.filter('.tooOld:not(.forceShow),.hiddenChild:not(.forceShow)').length;
310
 
311
            return "Showing "+ (total - hidden) +" of " + total + ". (" + hidden + " not shown)";
312
 
313
        }
6973 dpurdie 314
 
6970 dpurdie 315
        function updateInfo() {
316
            $("#nvtable_info").text(getUpdateInfo());
317
        }
318
 
319
        //  Update the table when the Age filter is modified
320
        $('#nvArg').change(function(event){
321
            nvAgeLimit = $("input[name='age']:checked").val();
322
            $('#nvAgeNum').val(nvAgeLimit);
323
            updateAge();
324
        });
325
 
326
        //  Update the table when the Age Number is modified
327
        $('#nvAgeNum').change(function(event){
328
            nvAgeLimit = $('#nvAgeNum').val();
329
            $("#nvAgeUsr").prop('checked', true);
330
            updateAge();
331
        });
332
 
333
        //  Reprocess the table after an age filter update
334
        function updateAge(){
335
            nvTable.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
336
                var data = this.data();
337
                var row = this.node();
338
                var hide = ( nvAgeLimit > 0  && (parseInt(data[11]) > nvAgeLimit) );
339
 
340
                if ( hide ) {
341
                    $(row).addClass('tooOld');
342
                } else {
343
                    $(row).removeClass('tooOld');
344
                }
345
            } );
346
            updateInfo();
347
        }
348
 
6952 dpurdie 349
      })
350
    </script>
351
<%End Sub
6951 dpurdie 352
'----------------------------------------------
353
Sub LeftPanelContent
354
%>
6970 dpurdie 355
<fieldset class="body_rowg fset">
356
    <legend>Filter</legend>
357
        <span id=nvArg>
6971 dpurdie 358
            <input     type="radio" name="age" value="1"> Last Day
359
            <br><input type="radio" name="age" value="7"> Last Week
6970 dpurdie 360
            <br><input type="radio" name="age" value="14"> Last 2 Weeks
361
            <br><input type="radio" name="age" value="21"> Last 3 Weeks
362
            <br><input type="radio" name="age" value="31" checked="checked"> Last Month
363
            <br><input type="radio" name="age" value="62"> Last 2 Months
364
            <br><input type="radio" name="age" value="365"> Last Year
365
            <br><input type="radio" name="age" value="0"> All
366
        </span>
367
            <br><input type="radio" id=nvAgeUsr name="age" value="0"> Last <input type="number" id=nvAgeNum value="31" size=4 min=1 style="width:4em;font-size:11px">
6951 dpurdie 368
</fieldset>
369
<%
370
End Sub
371
 
372
Sub MainPanelContent
373
%>
374
   <div class=Panel>
6971 dpurdie 375
    <div class=rounded_box_caption>Newer Version Report<%=Quick_Help("h_nvReport")%></div>
6951 dpurdie 376
    <div class="rounded_box">
377
       <div class=PanelFrame>
378
            <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
379
            <!--#include file="messages/_msg_inline.asp"-->
380
            <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
381
            <div class=textPanel>
382
                <table id='nvtable' width="100%" class="stdGrey">
383
                   <thead>
6971 dpurdie 384
                      <th nowrap><img id='toggleAll' src='images/bt_plus.gif' border='0' align='absmiddle' hspace='3' class='pointer' title='Expand/Hide other versions'>Package Name</th>
6952 dpurdie 385
                      <th nowrap>Version</th>
386
                      <th nowrap>Base View</th>
387
                      <th nowrap>Created</th>
388
                      <th nowrap>Newer Version</th>
389
                      <th nowrap>Created</th>
6971 dpurdie 390
                      <th nowrap><%=Quick_Help("h_merge")%></th>
6951 dpurdie 391
                   </thead>
392
                    <tr id='loading' >
393
                        <td colspan=7 class=tcenter>
394
                            <img src='images/transparent-background-loading.gif'>
395
                        </td>
396
                   </tr>
397
              </table>
398
            </div>
6953 dpurdie 399
            <div id=nvError class='tleft err_alert'>
400
            </div>
6951 dpurdie 401
       </div>
402
    </div>
403
   </div>
404
<%
405
End Sub
406
%>
407
<html>
408
   <head>
409
      <title>Release Manager</title>
410
      <link rel="shortcut icon" href="<%=FavIcon%>"/>
411
      <meta http-equiv="Pragma" content="no-cache">
412
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
413
      <link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css">
414
      <link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css">
415
      <script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script>
6971 dpurdie 416
      <!-- TIPS -->
417
      <script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script>
418
      <script language="JavaScript" src="images/_help_tips.js?ver=<%=VixVerNum%>"></script>
6951 dpurdie 419
      <!-- DROPDOWN MENUS -->
6971 dpurdie 420
      <%bJqueryVix=TRUE%>
6951 dpurdie 421
      <%bJqueryDataTables = TRUE%>
6952 dpurdie 422
      <%sJqueryDataTablesCss="jquery/dataTables.vix.grey.css"%>
6951 dpurdie 423
      <!--#include file="_jquery_includes.asp"-->
424
      <!--#include file="_menu_def.asp"-->
425
      <script language="JavaScript1.2" src="images/popup_menu.js?ver=<%=VixVerNum%>"></script>
426
      <%Call InsertJavaScript %>
6953 dpurdie 427
      <%Call InsertLocalStyle %>
6951 dpurdie 428
   </head>
429
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
430
      <!-- HEADER -->
431
      <!--#include file="_header.asp"-->
432
      <!-- BODY ---->
433
      <table class="full_table">
434
         <tr>
435
            <td width="146px" class="bg_panel" valign="top">
436
                <%Call LeftPanelContent%>
437
            </td>
438
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
439
                <%Call MainPanelContent%>
440
            </td>
441
         </tr>
442
         <tr>
443
            <td class="bg_panel_btm" height="350">
444
                <img src="images/release_stats.png" vspace="20" hspace="30"></td>
445
         </tr>
446
      </table>
447
      <!-- FOOTER -->
448
      <!--#include file="_footer.asp"-->
449
   </body>
450
</html>
451