v4 style
[freeside.git] / httemplate / elements / broadband_snmp_get.html
1 <%doc>
2 Adds a table to display dynamically loaded snmp statistics based on broadband_snmp_get 
3 export config.  Performs necessary checks such that, if no such exports are configured 
4 for the passed service, returns blank space (ie may be safely invoked even if no exports 
5 are configured.)
6
7   <& '/elements/broadband_snmp_get.html', svc => $svc &>
8
9 </%doc>
10 % if (@snmp) {
11 <& '/elements/xmlhttp.html',
12    'url'  => $fsurl.'misc/xmlhttp-broadband_snmp_get.cgi',
13    'subs' => [ 'broadband_snmp_get_request' ]
14  &>
15 <DIV ID="broadband_snmp_get"></DIV>
16 <SCRIPT>
17 function broadband_snmp_get (svcnum) {
18   document.getElementById('broadband_snmp_get').innerHTML = 'Loading SNMP...';
19   broadband_snmp_get_request('svcnum',svcnum,
20     function (result) {
21       var objects = JSON.parse(result) || [];
22       if (objects.length) {
23         var table = document.createElement('table');
24         for (i = 0; i < objects.length; i++) {
25           var obj = objects[i];
26           if (obj.error) {
27             var row = document.createElement('tr');
28             var cell = document.createElement('td');
29             cell.colSpan = '3';
30             cell.innerHTML = obj['error'];
31             row.appendChild(cell);
32             table.appendChild(row);
33           } else {
34             for (j = 0; j < obj['values'].length; j++) {
35               var row = document.createElement('tr');
36               var value = obj['values'][j];
37               var label = (obj['values'].length > 1) ? (value[0] + '.' + value[1]) : obj['label'];
38               var cell = document.createElement('td');
39               cell.innerHTML = obj['name'];
40               row.appendChild(cell);
41               cell = document.createElement('td');
42               cell.innerHTML = label;
43               row.appendChild(cell);
44               cell = document.createElement('td');
45               cell.innerHTML = value[2];
46               cell.style.paddingLeft = '3em';
47               row.appendChild(cell);
48               table.appendChild(row);
49             }
50           }
51         }
52         var resultblock = document.getElementById('broadband_snmp_get');
53         resultblock.innerHTML = '';
54         resultblock.appendChild(table);
55       }  // if objects.length
56     }  // function
57   ); // broadband_snmp_get_request
58 } // broadband_snmp_get
59 broadband_snmp_get('<% $svcnum %>');
60 </SCRIPT>
61 % } #if @snmp
62 <%init>
63 my(%opt) = @_;
64 my @snmp = $opt{'svc'}->cust_svc->part_svc->part_export('broadband_snmp_get');
65 my $svcnum = $opt{'svc'}->svcnum;
66 </%init>