Subversion Repositories DevTools

Rev

Rev 6953 | Rev 6971 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6953 Rev 6970
Line 48... Line 48...
48
'----------------------------------------------
48
'----------------------------------------------
49
Sub InsertLocalStyle %>
49
Sub InsertLocalStyle %>
50
    <style type="text/css">
50
    <style type="text/css">
51
        td.useThis:not(.useRemove) {background: url('images/i_added.gif') no-repeat center center; cursor: pointer; }
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; }
52
        td.useThis.useRemove {background: url('images/i_removed.gif') no-repeat center center; cursor: pointer; }
53
        td.drillDown {background: url('images/i_removed.gif') no-repeat center center; cursor: pointer; }
53
        .tooOld:not(.forceShow),.hiddenChild:not(.forceShow) {display:none;}
54
    </style>
54
    </style>
55
<%End Sub
55
<%End Sub
56
'----------------------------------------------
56
'----------------------------------------------
57
Sub InsertJavaScript %>
57
Sub InsertJavaScript %>
58
      <script language="JavaScript" type="text/JavaScript">
58
      <script language="JavaScript" type="text/JavaScript">
59
      $(document).ready(function() {
59
      $(document).ready(function() {
-
 
60
        var nvAgeLimit = 31; 
60
 
61
 
61
        // Generate Row Data from JavaScript data
62
        // Generate Row Data from JavaScript data
62
        function getPkgName ( row, type, set, meta ) {
63
        function getPkgName ( row, type, set, meta ) {
-
 
64
          var hasChild = (row[10] == 1);
63
          var vis = 'togglerows';
65
          var vis='togglerows';
-
 
66
 
64
          if(typeof row[10] === 'undefined') {
67
          if (row[10] != 1 ) {
65
            vis = 'invisible'
68
              vis='invisible';
66
          }
69
          }
67
          var img = "<img src='images/bt_plus.gif' border='0' align='absmiddle' hspace='3' class='pointer "+ vis +"'>"
70
          var img = "<img src='images/bt_plus.gif' border='0' align='absmiddle' hspace='3' class='pointer "+ vis +"'>"
68
 
71
 
69
          var hRef = "view_by_version.asp?pkg_id=" + row[2] + "&hideRipple=True" + "&fpkgversion=*" + row[5]
72
          var hRef = "view_by_version.asp?pkg_id=" + row[2] + "&hideRipple=True" + "&fpkgversion=*" + row[5]
70
          return img + "<a href=" + hRef + ">" + row[3] + "</a>"
73
          return img + "<a href=" + hRef + ">" + row[3] + "</a>"
Line 108... Line 111...
108
                columns : [
111
                columns : [
109
                { data : getPkgName },
112
                { data : getPkgName },
110
                { data : getVersion  , orderable : false},
113
                { data : getVersion  , orderable : false},
111
                { data : [1] },
114
                { data : [1] },
112
                { data : [6] },
115
                { data : [6] },
113
                { data : getNewerVersion  , orderable : false, className : 'drillDown'},
116
                { data : getNewerVersion  , orderable : false},
114
                { data : [9] },
117
                { data : [9], orderData :[0,5] },
115
                { data : null, defaultContent: "", className : 'useThis' , orderable : false},
118
                { data : null, defaultContent: "", className : 'useThis' , orderable : false},
116
                ],
119
                ],
117
                createdRow : function( row, data, dataIndex, cells ) {
120
                createdRow : function( row, data, dataIndex, cells ) {
118
                    $(row).attr('data-npvid', data[7]).attr('data-pvid', data[0]);
121
                    $(row).attr('data-npvid', data[7]).attr('data-pvid', data[0]);
-
 
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
                    
-
 
135
                },
-
 
136
                infoCallback: function( settings, start, end, max, total, pre ) {
-
 
137
                     return getUpdateInfo();
119
                },
138
                },
120
                scrollCollapse : true,
139
                scrollCollapse : true,
121
                paging : false,
140
                paging : false,
122
                "order": [[0,'asc']],
141
                "order": [[0,'asc']],
123
                "info": true,
142
                "info": true,
Line 150... Line 169...
150
 
169
 
151
        //  Add event listener fro opening closing extended version list
170
        //  Add event listener fro opening closing extended version list
152
        $('#nvtable tbody').on('click', 'img.togglerows', function () {
171
        $('#nvtable tbody').on('click', 'img.togglerows', function () {
153
            clearInfo();
172
            clearInfo();
154
            var tr = $(this).closest('tr');
173
            var tr = $(this).closest('tr');
155
            var row = nvTable.row(tr);
174
            var pvid = tr.data('pvid');
-
 
175
            var children = $('#nvtable tbody tr[data-pvid="'+pvid+'"].child');
156
 
176
 
157
            if ( row.child.isShown() ) {
177
            if ( tr.hasClass('shown') ) {
158
                // This row is already open - close it
178
                // This row is already open - close it
159
                row.child.hide();
179
                children.addClass('hiddenChild');
160
                tr.removeClass('shown');
180
                tr.removeClass('shown');
161
                $(this).attr('src', 'images/bt_plus.gif');
181
                $(this).attr('src', 'images/bt_plus.gif');
162
            }
182
            }
163
            else {
183
            else {
164
                // Open this row
184
                // Open this row
165
                row.child( format(row.data()) ).show();
185
                children.removeClass('hiddenChild');
166
                tr.addClass('shown');
186
                tr.addClass('shown');
167
                $(this).attr('src', 'images/bt_minus.gif');
187
                $(this).attr('src', 'images/bt_minus.gif');
168
            };
188
            };
169
 
-
 
-
 
189
            updateInfo();
170
        });
190
        });
171
 
191
 
172
        // Add event listner to all a verion to be 'used'
192
        // Add event listner to all a verion to be 'used'
173
        $('#nvtable tbody').on('click', '.useThis', function () {
193
        $('#nvtable tbody').on('click', '.useThis', function () {
174
            var tgtEl = $(this)
194
            var tgtEl = $(this)
Line 188... Line 208...
188
                       pv_id : pvid,
208
                       pv_id : pvid,
189
                       npv_id : npvid,
209
                       npv_id : npvid,
190
                       mode : isaRemove ? 'R' : 'A'
210
                       mode : isaRemove ? 'R' : 'A'
191
                       },
211
                       },
192
                success : function(data, textStatus, jqXHR){
212
                success : function(data, textStatus, jqXHR){
193
                            if (data.result != 0)
213
                            if (data.result != 0){
194
                            {
-
 
195
                                setInfo("Error: " + (data.hasOwnProperty('emsgSummary') ? data.emsgSummary : "Reason not given"));
214
                                setInfo("Error: " + (data.hasOwnProperty('emsgSummary') ? data.emsgSummary : "Reason not given"));
196
                                return;
-
 
197
                            }
215
                            }
198
                }
216
                }
199
            }).done( function(){
217
            }).done( function(){
200
                tgtEl.toggleClass('useRemove');
218
                tgtEl.toggleClass('useRemove');
-
 
219
                tr.toggleClass('forceShow');
201
 
220
 
202
            }).always( function(){
221
            }).always( function(){
203
                $("body").removeClass("cursor-wait");
222
                $("body").removeClass("cursor-wait");
204
 
223
 
205
            }).fail( function(jqXHR, textStatus, errorThrown){
224
            }).fail( function(jqXHR, textStatus, errorThrown){
Line 208... Line 227...
208
 
227
 
209
 
228
 
210
        });
229
        });
211
 
230
 
212
       //  Toggle All the extended versions
231
       //  Toggle All the extended versions
213
        //  Show/Hide the ALL row togglers for rows that do not have any children
232
        //  Show/Hide the ALL children, unless they have been 'merged'
214
 
233
 
215
        $('#toggleAll').click(function(event){
234
        $('#toggleAll').click(function(event){
216
            event.stopPropagation();
235
            event.stopPropagation();
217
            event.stopImmediatePropagation();
236
            event.stopImmediatePropagation();
218
            clearInfo();
237
            clearInfo();
219
 
238
 
220
            var hide = $(this).hasClass('allOn');
239
            var hide = $(this).hasClass('allOn');
221
            $(this).attr('src', hide ? 'images/bt_plus.gif' : 'images/bt_minus.gif');
240
            $(this).attr('src', hide ? 'images/bt_plus.gif' : 'images/bt_minus.gif');
222
             
-
 
223
            $(this).toggleClass('allOn');
241
            $(this).toggleClass('allOn');
-
 
242
 
224
            $('#nvtable tbody img.togglerows').each(function(idx, el){
243
            $('#nvtable tbody img.togglerows').each(function(idx, el){
225
 
244
 
226
                var tr = $(this).closest('tr');
245
                var tr = $(this).closest('tr');
227
                var row = nvTable.row(tr);
246
                var pvid = tr.data('pvid');
-
 
247
                var children = $('#nvtable tbody tr[data-pvid="'+pvid+'"].child');
228
 
248
 
229
                if ( row.child.isShown() && hide ) {
249
                if ( tr.hasClass('shown') && hide ) {
230
                    // This row is already open - close it
250
                    // This row is already open - close it
231
                    row.child.hide();
251
                    children.addClass('hiddenChild');
232
                    tr.removeClass('shown');
252
                    tr.removeClass('shown');
233
                    $(this).attr('src', 'images/bt_plus.gif');
253
                    $(this).attr('src', 'images/bt_plus.gif');
234
                }
254
                }
235
 
-
 
236
                if ( ! row.child.isShown() && !hide ) {
255
                if ( !tr.hasClass('shown') && !hide ) {
237
                    // Open this row
256
                    // Open this row
238
                    row.child( format(row.data()) ).show();
257
                    children.removeClass('hiddenChild');
239
                    tr.addClass('shown');
258
                    tr.addClass('shown');
240
                    $(this).attr('src', 'images/bt_minus.gif');
259
                    $(this).attr('src', 'images/bt_minus.gif');
241
                };
260
                };
242
            });
261
            });
-
 
262
            updateInfo();
243
        });
263
        });
244
 
264
 
245
        //  Ajax Error message support
265
        //  Ajax Error message support
246
        function setInfo(txt) {
266
        function setInfo(txt) {
247
            $("#nvError").text(txt).addClass("errorPanel").show();
267
            $("#nvError").text(txt).addClass("errorPanel").show();
Line 249... Line 269...
249
 
269
 
250
        function clearInfo() {
270
        function clearInfo() {
251
            $("#nvError").text(" ").removeClass("errorPanel").hide();
271
            $("#nvError").text(" ").removeClass("errorPanel").hide();
252
        }
272
        }
253
 
273
 
-
 
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
 
254
      })
319
      })
255
    </script>
320
    </script>
256
<%End Sub
321
<%End Sub
257
'----------------------------------------------
322
'----------------------------------------------
258
Sub LeftPanelContent
323
Sub LeftPanelContent
259
%>
324
%>
260
<fieldset class="fset" align="right" style=" border: 1px groove;">
325
<fieldset class="body_rowg fset">
261
   <table>
326
    <legend>Filter</legend>
262
      <tr>
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
263
         <td>Left Panel Content</td>
334
            <br><input type="radio" name="age" value="0"> All
264
      </tr>
335
        </span>
265
   </table>
-
 
-
 
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">
266
</fieldset>
337
</fieldset>
267
<%
338
<%
268
End Sub
339
End Sub
269
 
340
 
270
Sub MainPanelContent
341
Sub MainPanelContent