Changeset 7596

Show
Ignore:
Timestamp:
10/02/11 10:59:07 (20 months ago)
Author:
jow
Message:

modules/freifunk: convert public status template to XHR.poll()

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/modules/freifunk/luasrc/view/freifunk/public_status.htm

    r6981 r7596  
    6060 
    6161<script type="text/javascript">//<![CDATA[ 
    62     var iwxhr = new XHR(); 
    63  
    64     var update_wifi_status = function() { 
    65         iwxhr.get('<%=luci.dispatcher.build_url("freifunk", "status", "public_status_json", table.concat(netlist, ","))%>', null, 
    66             function(x, st) 
     62    XHR.poll(<%=interval%>, '<%=luci.dispatcher.build_url("freifunk", "status", "public_status_json", table.concat(netlist, ","))%>', null, 
     63        function(x, st) 
     64        { 
     65            if (st) 
    6766            { 
    68                 if (st) 
     67                for( var i = 0; i < st.length; i++ ) 
    6968                { 
    70                     for( var i = 0; i < st.length; i++ ) 
    71                     { 
    72                         var iw = st[i]; 
    73                         var is_assoc = (iw.bssid && iw.channel); 
    74                         var p = (100 / iw.quality_max * iw.quality); 
    75                         var q = is_assoc ? p : -1; 
    76  
    77                         var icon; 
    78                         if (q < 0) 
    79                             icon = "<%=resource%>/icons/signal-none.png"; 
    80                         else if (q == 0) 
    81                             icon = "<%=resource%>/icons/signal-0.png"; 
    82                         else if (q < 25) 
    83                             icon = "<%=resource%>/icons/signal-0-25.png"; 
    84                         else if (q < 50) 
    85                             icon = "<%=resource%>/icons/signal-25-50.png"; 
    86                         else if (q < 75) 
    87                             icon = "<%=resource%>/icons/signal-50-75.png"; 
    88                         else 
    89                             icon = "<%=resource%>/icons/signal-75-100.png"; 
    90  
    91                         var power = document.getElementById(iw.id + '-txpower'); 
    92                         if (power) 
    93                             power.innerHTML = String.format('%s dbm', iw.txpower); 
    94  
    95                         var signal = document.getElementById(iw.id + '-signal'); 
    96                         if (signal) 
    97                             signal.innerHTML = String.format( 
    98                                 '<img src="%s" title="Signal: %s db / Noise: %s db" alt="Signal Quality" />', 
    99                                 icon, iw.signal, iw.noise 
    100                             ); 
    101  
    102                         var bitrate = document.getElementById(iw.id + '-bitrate'); 
    103                         if (bitrate) 
    104                             bitrate.innerHTML = String.format('%s Mb/s', iw.bitrate ? iw.bitrate / 1000 : '?'); 
    105  
    106                         var ssid = document.getElementById(iw.id + '-ssid'); 
    107                         if (ssid) 
    108                             ssid.innerHTML = iw.ssid; 
    109  
    110                         var bssid = document.getElementById(iw.id + '-bssid'); 
    111                         if (bssid) 
    112                             bssid.innerHTML = iw.bssid; 
    113  
    114                         var channel = document.getElementById(iw.id + '-channel'); 
    115                         if (channel) 
    116                             channel.innerHTML = iw.channel; 
    117  
    118                         var mode = document.getElementById(iw.id + '-mode'); 
    119                         if (mode) 
    120                         mode.innerHTML = iw.mode; 
    121                     } 
    122  
    123                     i = st.length - 1 
    124                     var u 
    125                      
    126                     if (u = document.getElementById('dynuptime')) 
    127                         u.innerHTML = st[i].uptime; 
    128  
    129                     if (u = document.getElementById('dynload')) 
    130                         u.innerHTML = st[i].load; 
    131  
    132                     if (u = document.getElementById('dynmem')) 
    133                         u.innerHTML = st[i].mem; 
    134  
    135                     if (u = document.getElementById('dyntime')) 
    136                         u.innerHTML = st[i].time; 
    137  
    138                     if (st[i].defroutev4) 
    139                     { 
    140                         if (u = document.getElementById('v4dst')) 
    141                             u.innerHTML = st[i].defroutev4.dest; 
    142  
    143                         if (u = document.getElementById('v4gw')) 
    144                             u.innerHTML = st[i].defroutev4.gateway; 
    145  
    146                         if (u = document.getElementById('v4dev')) 
    147                             u.innerHTML = st[i].defroutev4.dev; 
    148  
    149                         if (u = document.getElementById('v4metr')) 
    150                             u.innerHTML = st[i].defroutev4.metr; 
    151                     } 
    152  
    153                     if (st[i].defroutev6) 
    154                     { 
    155                         if (u = document.getElementById('v6dst')) 
    156                             u.innerHTML = st[i].defroutev6.dest; 
    157  
    158                         if (u = document.getElementById('v6gw')) 
    159                             u.innerHTML = st[i].defroutev6.gateway; 
    160  
    161                         if (u = document.getElementById('v6dev')) 
    162                             u.innerHTML = st[i].defroutev6.dev; 
    163  
    164                         if (u = document.getElementById('v6metr')) 
    165                             u.innerHTML = st[i].defroutev6.metr; 
    166                     } 
     69                    var iw = st[i]; 
     70                    var is_assoc = (iw.bssid && iw.channel); 
     71                    var p = (100 / iw.quality_max * iw.quality); 
     72                    var q = is_assoc ? p : -1; 
     73 
     74                    var icon; 
     75                    if (q < 0) 
     76                        icon = "<%=resource%>/icons/signal-none.png"; 
     77                    else if (q == 0) 
     78                        icon = "<%=resource%>/icons/signal-0.png"; 
     79                    else if (q < 25) 
     80                        icon = "<%=resource%>/icons/signal-0-25.png"; 
     81                    else if (q < 50) 
     82                        icon = "<%=resource%>/icons/signal-25-50.png"; 
     83                    else if (q < 75) 
     84                        icon = "<%=resource%>/icons/signal-50-75.png"; 
     85                    else 
     86                        icon = "<%=resource%>/icons/signal-75-100.png"; 
     87 
     88                    var power = document.getElementById(iw.id + '-txpower'); 
     89                    if (power) 
     90                        power.innerHTML = String.format('%s dbm', iw.txpower); 
     91 
     92                    var signal = document.getElementById(iw.id + '-signal'); 
     93                    if (signal) 
     94                        signal.innerHTML = String.format( 
     95                            '<img src="%s" title="Signal: %s db / Noise: %s db" alt="Signal Quality" />', 
     96                            icon, iw.signal, iw.noise 
     97                        ); 
     98 
     99                    var bitrate = document.getElementById(iw.id + '-bitrate'); 
     100                    if (bitrate) 
     101                        bitrate.innerHTML = String.format('%s Mb/s', iw.bitrate ? iw.bitrate / 1000 : '?'); 
     102 
     103                    var ssid = document.getElementById(iw.id + '-ssid'); 
     104                    if (ssid) 
     105                        ssid.innerHTML = iw.ssid; 
     106 
     107                    var bssid = document.getElementById(iw.id + '-bssid'); 
     108                    if (bssid) 
     109                        bssid.innerHTML = iw.bssid; 
     110 
     111                    var channel = document.getElementById(iw.id + '-channel'); 
     112                    if (channel) 
     113                        channel.innerHTML = iw.channel; 
     114 
     115                    var mode = document.getElementById(iw.id + '-mode'); 
     116                    if (mode) 
     117                    mode.innerHTML = iw.mode; 
    167118                } 
    168119 
    169                 window.setTimeout(update_wifi_status, <%=interval%>); 
     120                i = st.length - 1 
     121                var u 
     122 
     123                if (u = document.getElementById('dynuptime')) 
     124                    u.innerHTML = st[i].uptime; 
     125 
     126                if (u = document.getElementById('dynload')) 
     127                    u.innerHTML = st[i].load; 
     128 
     129                if (u = document.getElementById('dynmem')) 
     130                    u.innerHTML = st[i].mem; 
     131 
     132                if (u = document.getElementById('dyntime')) 
     133                    u.innerHTML = st[i].time; 
     134 
     135                if (st[i].defroutev4) 
     136                { 
     137                    if (u = document.getElementById('v4dst')) 
     138                        u.innerHTML = st[i].defroutev4.dest; 
     139 
     140                    if (u = document.getElementById('v4gw')) 
     141                        u.innerHTML = st[i].defroutev4.gateway; 
     142 
     143                    if (u = document.getElementById('v4dev')) 
     144                        u.innerHTML = st[i].defroutev4.dev; 
     145 
     146                    if (u = document.getElementById('v4metr')) 
     147                        u.innerHTML = st[i].defroutev4.metr; 
     148                } 
     149 
     150                if (st[i].defroutev6) 
     151                { 
     152                    if (u = document.getElementById('v6dst')) 
     153                        u.innerHTML = st[i].defroutev6.dest; 
     154 
     155                    if (u = document.getElementById('v6gw')) 
     156                        u.innerHTML = st[i].defroutev6.gateway; 
     157 
     158                    if (u = document.getElementById('v6dev')) 
     159                        u.innerHTML = st[i].defroutev6.dev; 
     160 
     161                    if (u = document.getElementById('v6metr')) 
     162                        u.innerHTML = st[i].defroutev6.metr; 
     163                } 
    170164            } 
    171         ) 
    172     }; 
    173  
    174     update_wifi_status(); 
     165        } 
     166    ); 
    175167//]]></script> 
    176168 
     
    191183<div class="cbi-map"> 
    192184    <h2><%:Wireless Overview%></h2> 
    193      
     185 
    194186        <% if not has_iwinfo then %> 
    195187            <div class="errorbox"> 
     
    212204                        <th class="cbi-section-table-cell"><%:Interface%></th> 
    213205                    </tr> 
    214     <%  
     206    <% 
    215207    for _, dev in ipairs(devices) do 
    216208    local net