applications/luci-upnp: rework status javascript to use XHR.poll()
[project/luci.git] / applications / luci-upnp / luasrc / view / upnp_status.htm
index fbbcb3a..d50ed0c 100644 (file)
@@ -1,8 +1,6 @@
 <script type="text/javascript">//<![CDATA[
        function upnp_delete_fwd(idx) {
-               var dlxhr = new XHR();
-
-               dlxhr.get('<%=luci.dispatcher.build_url("admin", "services", "upnp", "delete")%>/' + idx, null,
+               XHR.get('<%=luci.dispatcher.build_url("admin", "services", "upnp", "delete")%>/' + idx, null,
                        function(x)
                        {
                                var tb = document.getElementById('upnp_status_table');
                );
        }
 
-       var stxhr = new XHR();
-       (function() {
-               var func = arguments.callee;
-
-               stxhr.get('<%=luci.dispatcher.build_url("admin", "services", "upnp", "status")%>', null,
-                       function(x, st)
+       XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "services", "upnp", "status")%>', null,
+               function(x, st)
+               {
+                       var tb = document.getElementById('upnp_status_table');
+                       if (st && tb)
                        {
-                               var tb = document.getElementById('upnp_status_table');
-                               if (st && tb)
-                               {
-                                       /* clear all rows */
-                                       while( tb.rows.length > 1 )
-                                               tb.deleteRow(1);
+                               /* clear all rows */
+                               while( tb.rows.length > 1 )
+                                       tb.deleteRow(1);
 
-                                       for( var i = 0; i < st.length; i++ )
-                                       {
-                                               var tr = tb.insertRow(-1);
-                                                       tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
+                               for( var i = 0; i < st.length; i++ )
+                               {
+                                       var tr = tb.insertRow(-1);
+                                               tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
 
-                                               tr.insertCell(-1).innerHTML = st[i].proto;
-                                               tr.insertCell(-1).innerHTML = st[i].extport;
-                                               tr.insertCell(-1).innerHTML = st[i].intaddr;
-                                               tr.insertCell(-1).innerHTML = st[i].intport;
+                                       tr.insertCell(-1).innerHTML = st[i].proto;
+                                       tr.insertCell(-1).innerHTML = st[i].extport;
+                                       tr.insertCell(-1).innerHTML = st[i].intaddr;
+                                       tr.insertCell(-1).innerHTML = st[i].intport;
 
-                                               tr.insertCell(-1).innerHTML = String.format(
-                                                       '<input class="cbi-button cbi-input-remove" type="button" value="<%:Delete Redirect%>" onclick="upnp_delete_fwd(%d)" />',
-                                                               st[i].num
-                                               );
-                                       }
+                                       tr.insertCell(-1).innerHTML = String.format(
+                                               '<input class="cbi-button cbi-input-remove" type="button" value="<%:Delete Redirect%>" onclick="upnp_delete_fwd(%d)" />',
+                                                       st[i].num
+                                       );
+                               }
 
-                                       if( tb.rows.length == 1 )
-                                       {
-                                               var tr = tb.insertRow(-1);
-                                                       tr.className = 'cbi-section-table-row';
+                               if( tb.rows.length == 1 )
+                               {
+                                       var tr = tb.insertRow(-1);
+                                               tr.className = 'cbi-section-table-row';
 
-                                               var td = tr.insertCell(-1);
-                                                       td.colSpan = 5;
-                                                       td.innerHTML = '<em><br /><%:There are no active redirects.%></em>';
-                                       }
+                                       var td = tr.insertCell(-1);
+                                               td.colSpan = 5;
+                                               td.innerHTML = '<em><br /><%:There are no active redirects.%></em>';
                                }
-
-                               window.setTimeout(func, 5000);
                        }
-               )
-       })();
+               }
+       );
 //]]></script>
 
 <fieldset class="cbi-section">