Subversion Repositories DevTools

Rev

Rev 6953 | Rev 6971 | 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 ------------------ %>
23
<!--#include file="_access_control_login.asp"-->
24
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_action_project.asp"-->
26
<%
27
'------------ Variable Definition -------------
28
Dim parRtagId
29
'------------ Constants Declaration -----------
30
'------------ Variable Init -------------------
31
parRtagId = Request("rtag_id")
32
objPMod.PersistInQryString("rtag_id")
33
'----------------------------------------------
34
%>
35
<%
36
%>
37
<%
38
'------------ RUN BEFORE PAGE RENDER ----------
39
'----------------------------------------------------
40
' --- RUN onPostBack ---
41
If Request("action") <> "" AND objAccessControl.UserLogedIn Then
42
 
43
      If objEH.Finally Then
44
         Call OpenInWindow ( "release_config.asp?rtag_id="& parRtagId )
45
      End If
46
 
47
End If
48
'----------------------------------------------
6953 dpurdie 49
Sub InsertLocalStyle %>
50
    <style type="text/css">
51
        td.useThis:not(.useRemove) {background: url('images/i_added.gif') no-repeat center center; cursor: pointer; }
52
        td.useThis.useRemove {background: url('images/i_removed.gif') no-repeat center center; cursor: pointer; }
6970 dpurdie 53
        .tooOld:not(.forceShow),.hiddenChild:not(.forceShow) {display:none;}
6953 dpurdie 54
    </style>
55
<%End Sub
56
'----------------------------------------------
6951 dpurdie 57
Sub InsertJavaScript %>
58
      <script language="JavaScript" type="text/JavaScript">
59
      $(document).ready(function() {
6970 dpurdie 60
        var nvAgeLimit = 31; 
6951 dpurdie 61
 
62
        // Generate Row Data from JavaScript data
63
        function getPkgName ( row, type, set, meta ) {
6970 dpurdie 64
          var hasChild = (row[10] == 1);
65
          var vis='togglerows';
66
 
67
          if (row[10] != 1 ) {
68
              vis='invisible';
6951 dpurdie 69
          }
70
          var img = "<img src='images/bt_plus.gif' border='0' align='absmiddle' hspace='3' class='pointer "+ vis +"'>"
71
 
72
          var hRef = "view_by_version.asp?pkg_id=" + row[2] + "&hideRipple=True" + "&fpkgversion=*" + row[5]
73
          return img + "<a href=" + hRef + ">" + row[3] + "</a>"
74
        }
75
 
76
        function getVersion ( row, type, set, meta ) {
77
          var hRef = "dependencies.asp?pv_id=" + row[0] + "&rtag_id=" + <%=parRtagId%>
78
          return "<a href=" + hRef + ">" + row[4] + "</a>"
79
        }
80
 
81
        function getNewerVersion ( row, type, set, meta ) {
82
          var hRef = "dependencies.asp?pv_id=" + row[7]
83
          return "<a href=" + hRef + ">" + row[8] + "</a>"
84
        }
85
 
6952 dpurdie 86
        // Format row of data for extended version display
87
        // Return as a tr node so that the colums can be added to the current table
88
        // and have them line up with existing columns
89
        function format(d){
90
             var rv = [];
91
             var dd = d[10];
6951 dpurdie 92
 
6952 dpurdie 93
             for (var ii in dd) {
6953 dpurdie 94
                 row = $('<tr/>').attr('data-npvid', dd[ii][0]).attr('data-pvid', d[0]);
6952 dpurdie 95
                 row.append($('<td/>').append( '' ).attr('colspan', '4'));
96
                 row.append($('<td/>').append( $('<a/>').append( dd[ii][1]).attr('href', 'dependencies.asp?pv_id=' + dd[ii][0]) ));
97
                 row.append($('<td/>').append( dd[ii][2] ));
6953 dpurdie 98
                 row.append($('<td/>').addClass('useThis'));
6952 dpurdie 99
                 rv.push(row);
100
             }
101
             return rv;
102
        }
103
 
104
        var nvTable;
105
        function loadTable() {
106
            /* Init DataTables */
107
            nvTable = $('#nvtable').DataTable({
108
                //bLengthChange : false,
109
                sDom : "rti",
110
                data : dataSet,
111
                columns : [
112
                { data : getPkgName },
6953 dpurdie 113
                { data : getVersion  , orderable : false},
6952 dpurdie 114
                { data : [1] },
115
                { data : [6] },
6970 dpurdie 116
                { data : getNewerVersion  , orderable : false},
117
                { data : [9], orderData :[0,5] },
6953 dpurdie 118
                { data : null, defaultContent: "", className : 'useThis' , orderable : false},
119
                ],
120
                createdRow : function( row, data, dataIndex, cells ) {
121
                    $(row).attr('data-npvid', data[7]).attr('data-pvid', data[0]);
6970 dpurdie 122
                    if ( data[10] == 2 ) {
123
                        $(row).addClass('hiddenChild child');
124
                    }
125
                    if ( data[12] == 'A' ) {
126
                        $(row).addClass('forceShow');
127
                        $('td', row).eq(6).addClass('useRemove');
128
                    }
129
                    if ( nvAgeLimit > 0 ) {
130
                        if ( parseInt(data[11]) > nvAgeLimit ) {
131
                            $(row).addClass('tooOld');
132
                        }
133
                    }
134
 
6953 dpurdie 135
                },
6970 dpurdie 136
                infoCallback: function( settings, start, end, max, total, pre ) {
137
                     return getUpdateInfo();
138
                },
6952 dpurdie 139
                scrollCollapse : true,
140
                paging : false,
141
                "order": [[0,'asc']],
142
                "info": true,
143
                "columnDefs" : [ 
144
                    {className : "dt-nowrap", targets: "_all" },
145
                ],
146
            });
147
        }
148
 
149
        // Load Data once via AJAX
150
        var dataSet;
151
        $.get({
152
            url: 'rep_new_versions_json.asp',
153
            dataType : 'json',
154
            data : {
155
                   rtag_id : <%=parRtagId%>,
156
                   action : 'getData'
157
                   },
158
            success : function(data, textStatus, jqXHR){
159
                dataSet = data.aaData;
160
                loadTable();
161
            }
6953 dpurdie 162
        }).done( function(){
163
            $('#loading').remove();
6952 dpurdie 164
 
6953 dpurdie 165
        }).fail( function(jqXHR, textStatus, errorThrown){
166
                    setInfo("Error: " + errorThrown );
6951 dpurdie 167
        });
168
 
6952 dpurdie 169
 
6951 dpurdie 170
        //  Add event listener fro opening closing extended version list
171
        $('#nvtable tbody').on('click', 'img.togglerows', function () {
6953 dpurdie 172
            clearInfo();
6951 dpurdie 173
            var tr = $(this).closest('tr');
6970 dpurdie 174
            var pvid = tr.data('pvid');
175
            var children = $('#nvtable tbody tr[data-pvid="'+pvid+'"].child');
6951 dpurdie 176
 
6970 dpurdie 177
            if ( tr.hasClass('shown') ) {
6951 dpurdie 178
                // This row is already open - close it
6970 dpurdie 179
                children.addClass('hiddenChild');
6951 dpurdie 180
                tr.removeClass('shown');
181
                $(this).attr('src', 'images/bt_plus.gif');
182
            }
183
            else {
184
                // Open this row
6970 dpurdie 185
                children.removeClass('hiddenChild');
6951 dpurdie 186
                tr.addClass('shown');
187
                $(this).attr('src', 'images/bt_minus.gif');
188
            };
6970 dpurdie 189
            updateInfo();
6951 dpurdie 190
        });
191
 
6953 dpurdie 192
        // Add event listner to all a verion to be 'used'
193
        $('#nvtable tbody').on('click', '.useThis', function () {
194
            var tgtEl = $(this)
195
            var tr = $(this).closest('tr');
196
            var pvid = tr.data('pvid');
197
            var npvid = tr.data('npvid');
198
            var isaRemove = tgtEl.hasClass('useRemove');
199
            $("body").addClass("cursor-wait");
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"));
215
                            }
216
                }
217
            }).done( function(){
218
                tgtEl.toggleClass('useRemove');
6970 dpurdie 219
                tr.toggleClass('forceShow');
6953 dpurdie 220
 
221
            }).always( function(){
222
                $("body").removeClass("cursor-wait");
223
 
224
            }).fail( function(jqXHR, textStatus, errorThrown){
225
                        setInfo("Error: " + errorThrown );
226
            });
227
 
228
 
229
        });
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
 
6953 dpurdie 265
        //  Ajax Error message support
266
        function setInfo(txt) {
267
            $("#nvError").text(txt).addClass("errorPanel").show();
268
        }
269
 
270
        function clearInfo() {
271
            $("#nvError").text(" ").removeClass("errorPanel").hide();
272
        }
273
 
6970 dpurdie 274
        // Update the (simulated ) table info
275
        function getUpdateInfo() {
276
            var children = $('#nvtable tbody tr');
277
            var total = children.length;
278
 
279
            var hidden = children.filter('.tooOld:not(.forceShow),.hiddenChild:not(.forceShow)').length;
280
 
281
            return "Showing "+ (total - hidden) +" of " + total + ". (" + hidden + " not shown)";
282
 
283
        }
284
        function updateInfo() {
285
            $("#nvtable_info").text(getUpdateInfo());
286
 
287
        }
288
 
289
        //  Update the table when the Age filter is modified
290
        $('#nvArg').change(function(event){
291
            nvAgeLimit = $("input[name='age']:checked").val();
292
            $('#nvAgeNum').val(nvAgeLimit);
293
            updateAge();
294
        });
295
 
296
        //  Update the table when the Age Number is modified
297
        $('#nvAgeNum').change(function(event){
298
            nvAgeLimit = $('#nvAgeNum').val();
299
            $("#nvAgeUsr").prop('checked', true);
300
            updateAge();
301
        });
302
 
303
        //  Reprocess the table after an age filter update
304
        function updateAge(){
305
            nvTable.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
306
                var data = this.data();
307
                var row = this.node();
308
                var hide = ( nvAgeLimit > 0  && (parseInt(data[11]) > nvAgeLimit) );
309
 
310
                if ( hide ) {
311
                    $(row).addClass('tooOld');
312
                } else {
313
                    $(row).removeClass('tooOld');
314
                }
315
            } );
316
            updateInfo();
317
        }
318
 
6952 dpurdie 319
      })
320
    </script>
321
<%End Sub
6951 dpurdie 322
'----------------------------------------------
323
Sub LeftPanelContent
324
%>
6970 dpurdie 325
<fieldset class="body_rowg fset">
326
    <legend>Filter</legend>
327
        <span id=nvArg>
328
            <input     type="radio" name="age" value="7"> Last Week
329
            <br><input type="radio" name="age" value="14"> Last 2 Weeks
330
            <br><input type="radio" name="age" value="21"> Last 3 Weeks
331
            <br><input type="radio" name="age" value="31" checked="checked"> Last Month
332
            <br><input type="radio" name="age" value="62"> Last 2 Months
333
            <br><input type="radio" name="age" value="365"> Last Year
334
            <br><input type="radio" name="age" value="0"> All
335
        </span>
336
            <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 337
</fieldset>
338
<%
339
End Sub
340
 
341
Sub MainPanelContent
342
%>
343
   <div class=Panel>
344
    <div class=rounded_box_caption>New Version Report</div>
345
    <div class="rounded_box">
346
       <div class=PanelFrame>
347
            <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
348
            <!--#include file="messages/_msg_inline.asp"-->
349
            <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
350
            <div class=textPanel>
351
                <table id='nvtable' width="100%" class="stdGrey">
352
                   <thead>
6952 dpurdie 353
                      <th nowrap><img id='toggleAll' src='images/bt_plus.gif' border='0' align='absmiddle' hspace='3' class='pointer'>Package Name</th>
354
                      <th nowrap>Version</th>
355
                      <th nowrap>Base View</th>
356
                      <th nowrap>Created</th>
357
                      <th nowrap>Newer Version</th>
358
                      <th nowrap>Created</th>
359
                      <th nowrap></th>
6951 dpurdie 360
                   </thead>
361
                    <tr id='loading' >
362
                        <td colspan=7 class=tcenter>
363
                            <img src='images/transparent-background-loading.gif'>
364
                        </td>
365
                   </tr>
366
              </table>
367
            </div>
6953 dpurdie 368
            <div id=nvError class='tleft err_alert'>
369
            </div>
6951 dpurdie 370
       </div>
371
    </div>
372
   </div>
373
<%
374
End Sub
375
%>
376
<html>
377
   <head>
378
      <title>Release Manager</title>
379
      <link rel="shortcut icon" href="<%=FavIcon%>"/>
380
      <meta http-equiv="Pragma" content="no-cache">
381
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
382
      <link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css">
383
      <link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css">
384
      <script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script>
385
      <!-- DROPDOWN MENUS -->
386
      <%bJqueryDataTables = TRUE%>
6952 dpurdie 387
      <%sJqueryDataTablesCss="jquery/dataTables.vix.grey.css"%>
6951 dpurdie 388
      <!--#include file="_jquery_includes.asp"-->
389
      <!--#include file="_menu_def.asp"-->
390
      <script language="JavaScript1.2" src="images/popup_menu.js?ver=<%=VixVerNum%>"></script>
391
      <%Call InsertJavaScript %>
6953 dpurdie 392
      <%Call InsertLocalStyle %>
6951 dpurdie 393
   </head>
394
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
395
      <!-- HEADER -->
396
      <!--#include file="_header.asp"-->
397
      <!-- BODY ---->
398
      <table class="full_table">
399
         <tr>
400
            <td width="146px" class="bg_panel" valign="top">
401
                <%Call LeftPanelContent%>
402
            </td>
403
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
404
                <%Call MainPanelContent%>
405
            </td>
406
         </tr>
407
         <tr>
408
            <td class="bg_panel_btm" height="350">
409
                <img src="images/release_stats.png" vspace="20" hspace="30"></td>
410
         </tr>
411
      </table>
412
      <!-- FOOTER -->
413
      <!--#include file="_footer.asp"-->
414
   </body>
415
</html>
416