Subversion Repositories DevTools

Rev

Rev 6970 | Rev 6973 | 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
 
6951 dpurdie 169
        //  Add event listener fro opening closing extended version list
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");
199
            clearInfo();
200
 
201
            $.get({
202
                url: 'rep_new_versions_json.asp',
203
                dataType : 'json',
204
                data : {
205
                       rtag_id : <%=parRtagId%>,
206
                       action : 'mergeVersion',
207
                       pv_id : pvid,
208
                       npv_id : npvid,
209
                       mode : isaRemove ? 'R' : 'A'
210
                       },
211
                success : function(data, textStatus, jqXHR){
6970 dpurdie 212
                            if (data.result != 0){
6953 dpurdie 213
                                setInfo("Error: " + (data.hasOwnProperty('emsgSummary') ? data.emsgSummary : "Reason not given"));
6971 dpurdie 214
                                return;
6953 dpurdie 215
                            }
6971 dpurdie 216
                            tgtEl.toggleClass('useRemove');
217
                            tr.toggleClass('forceShow');
218
                    }
6953 dpurdie 219
            }).done( function(){
220
 
221
            }).always( function(){
222
                $("body").removeClass("cursor-wait");
223
 
224
            }).fail( function(jqXHR, textStatus, errorThrown){
225
                        setInfo("Error: " + errorThrown );
226
            });
227
        });
6971 dpurdie 228
<%End If%>
6953 dpurdie 229
 
6952 dpurdie 230
       //  Toggle All the extended versions
6970 dpurdie 231
        //  Show/Hide the ALL children, unless they have been 'merged'
6951 dpurdie 232
 
6952 dpurdie 233
        $('#toggleAll').click(function(event){
234
            event.stopPropagation();
235
            event.stopImmediatePropagation();
6953 dpurdie 236
            clearInfo();
6951 dpurdie 237
 
6952 dpurdie 238
            var hide = $(this).hasClass('allOn');
239
            $(this).attr('src', hide ? 'images/bt_plus.gif' : 'images/bt_minus.gif');
240
            $(this).toggleClass('allOn');
6970 dpurdie 241
 
6952 dpurdie 242
            $('#nvtable tbody img.togglerows').each(function(idx, el){
6951 dpurdie 243
 
6952 dpurdie 244
                var tr = $(this).closest('tr');
6970 dpurdie 245
                var pvid = tr.data('pvid');
246
                var children = $('#nvtable tbody tr[data-pvid="'+pvid+'"].child');
6951 dpurdie 247
 
6970 dpurdie 248
                if ( tr.hasClass('shown') && hide ) {
6952 dpurdie 249
                    // This row is already open - close it
6970 dpurdie 250
                    children.addClass('hiddenChild');
6952 dpurdie 251
                    tr.removeClass('shown');
252
                    $(this).attr('src', 'images/bt_plus.gif');
253
                }
6970 dpurdie 254
                if ( !tr.hasClass('shown') && !hide ) {
6952 dpurdie 255
                    // Open this row
6970 dpurdie 256
                    children.removeClass('hiddenChild');
6952 dpurdie 257
                    tr.addClass('shown');
258
                    $(this).attr('src', 'images/bt_minus.gif');
259
                };
260
            });
6970 dpurdie 261
            updateInfo();
6952 dpurdie 262
        });
6951 dpurdie 263
 
6971 dpurdie 264
        //  Show History button
265
        $('#nvtable tbody').on('click', '.showHistory', function (event) {
266
            var tr = $(this).closest('tr');
267
            var pvid = tr.data('pvid');
268
            var npvid = tr.data('npvid');
269
            var data = nvTable.row( tr ).data();
270
            var url = '_wform_versions_history_release_notes.asp?&rtag_id=<%=parRtagId%>&hideRipple=True&pv_id='+npvid+'&pkg_id='+data[2]+'&FLpkg_version=*'+data[5];
271
            var features = 'left=50,top=50,resizable=yes,scrollbars=yes,width=1000,height='+ ( screen.height - 100 );
272
            window.open(url,'History', features);
273
        });
274
 
275
        // Show Project Version dialog
276
 
277
        $('#nvtable tbody').on('click', '.showProjects', function (event) {
278
            var tr = $(this).closest('tr');
279
            var pvid = tr.data('pvid');
280
            var npvid = tr.data('npvid');
281
            var data = nvTable.row( tr ).data();
282
            $('#popmenu').load('rep_new_versions_info.asp', {pvid: npvid});
283
        });
284
 
6953 dpurdie 285
        //  Ajax Error message support
286
        function setInfo(txt) {
287
            $("#nvError").text(txt).addClass("errorPanel").show();
288
        }
289
 
290
        function clearInfo() {
291
            $("#nvError").text(" ").removeClass("errorPanel").hide();
292
        }
293
 
6970 dpurdie 294
        // Update the (simulated ) table info
295
        function getUpdateInfo() {
296
            var children = $('#nvtable tbody tr');
297
            var total = children.length;
298
            var hidden = children.filter('.tooOld:not(.forceShow),.hiddenChild:not(.forceShow)').length;
299
 
300
            return "Showing "+ (total - hidden) +" of " + total + ". (" + hidden + " not shown)";
301
 
302
        }
303
        function updateInfo() {
304
            $("#nvtable_info").text(getUpdateInfo());
305
 
306
        }
307
 
308
        //  Update the table when the Age filter is modified
309
        $('#nvArg').change(function(event){
310
            nvAgeLimit = $("input[name='age']:checked").val();
311
            $('#nvAgeNum').val(nvAgeLimit);
312
            updateAge();
313
        });
314
 
315
        //  Update the table when the Age Number is modified
316
        $('#nvAgeNum').change(function(event){
317
            nvAgeLimit = $('#nvAgeNum').val();
318
            $("#nvAgeUsr").prop('checked', true);
319
            updateAge();
320
        });
321
 
322
        //  Reprocess the table after an age filter update
323
        function updateAge(){
324
            nvTable.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
325
                var data = this.data();
326
                var row = this.node();
327
                var hide = ( nvAgeLimit > 0  && (parseInt(data[11]) > nvAgeLimit) );
328
 
329
                if ( hide ) {
330
                    $(row).addClass('tooOld');
331
                } else {
332
                    $(row).removeClass('tooOld');
333
                }
334
            } );
335
            updateInfo();
336
        }
337
 
6952 dpurdie 338
      })
339
    </script>
340
<%End Sub
6951 dpurdie 341
'----------------------------------------------
342
Sub LeftPanelContent
343
%>
6970 dpurdie 344
<fieldset class="body_rowg fset">
345
    <legend>Filter</legend>
346
        <span id=nvArg>
6971 dpurdie 347
            <input     type="radio" name="age" value="1"> Last Day
348
            <br><input type="radio" name="age" value="7"> Last Week
6970 dpurdie 349
            <br><input type="radio" name="age" value="14"> Last 2 Weeks
350
            <br><input type="radio" name="age" value="21"> Last 3 Weeks
351
            <br><input type="radio" name="age" value="31" checked="checked"> Last Month
352
            <br><input type="radio" name="age" value="62"> Last 2 Months
353
            <br><input type="radio" name="age" value="365"> Last Year
354
            <br><input type="radio" name="age" value="0"> All
355
        </span>
356
            <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 357
</fieldset>
358
<%
359
End Sub
360
 
361
Sub MainPanelContent
362
%>
363
   <div class=Panel>
6971 dpurdie 364
    <div class=rounded_box_caption>Newer Version Report<%=Quick_Help("h_nvReport")%></div>
6951 dpurdie 365
    <div class="rounded_box">
366
       <div class=PanelFrame>
367
            <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
368
            <!--#include file="messages/_msg_inline.asp"-->
369
            <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
370
            <div class=textPanel>
371
                <table id='nvtable' width="100%" class="stdGrey">
372
                   <thead>
6971 dpurdie 373
                      <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 374
                      <th nowrap>Version</th>
375
                      <th nowrap>Base View</th>
376
                      <th nowrap>Created</th>
377
                      <th nowrap>Newer Version</th>
378
                      <th nowrap>Created</th>
6971 dpurdie 379
                      <th nowrap><%=Quick_Help("h_merge")%></th>
6951 dpurdie 380
                   </thead>
381
                    <tr id='loading' >
382
                        <td colspan=7 class=tcenter>
383
                            <img src='images/transparent-background-loading.gif'>
384
                        </td>
385
                   </tr>
386
              </table>
387
            </div>
6953 dpurdie 388
            <div id=nvError class='tleft err_alert'>
389
            </div>
6951 dpurdie 390
       </div>
391
    </div>
392
   </div>
393
<%
394
End Sub
395
%>
396
<html>
397
   <head>
398
      <title>Release Manager</title>
399
      <link rel="shortcut icon" href="<%=FavIcon%>"/>
400
      <meta http-equiv="Pragma" content="no-cache">
401
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
402
      <link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css">
403
      <link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css">
404
      <script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script>
6971 dpurdie 405
      <!-- TIPS -->
406
      <script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script>
407
      <script language="JavaScript" src="images/_help_tips.js?ver=<%=VixVerNum%>"></script>
6951 dpurdie 408
      <!-- DROPDOWN MENUS -->
6971 dpurdie 409
      <%bJqueryVix=TRUE%>
6951 dpurdie 410
      <%bJqueryDataTables = TRUE%>
6952 dpurdie 411
      <%sJqueryDataTablesCss="jquery/dataTables.vix.grey.css"%>
6951 dpurdie 412
      <!--#include file="_jquery_includes.asp"-->
413
      <!--#include file="_menu_def.asp"-->
414
      <script language="JavaScript1.2" src="images/popup_menu.js?ver=<%=VixVerNum%>"></script>
415
      <%Call InsertJavaScript %>
6953 dpurdie 416
      <%Call InsertLocalStyle %>
6951 dpurdie 417
   </head>
418
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
419
      <!-- HEADER -->
420
      <!--#include file="_header.asp"-->
421
      <!-- BODY ---->
422
      <table class="full_table">
423
         <tr>
424
            <td width="146px" class="bg_panel" valign="top">
425
                <%Call LeftPanelContent%>
426
            </td>
427
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
428
                <%Call MainPanelContent%>
429
            </td>
430
         </tr>
431
         <tr>
432
            <td class="bg_panel_btm" height="350">
433
                <img src="images/release_stats.png" vspace="20" hspace="30"></td>
434
         </tr>
435
      </table>
436
      <!-- FOOTER -->
437
      <!--#include file="_footer.asp"-->
438
   </body>
439
</html>
440