| 22 | | <ul class="cbi-apply"><%- |
| 23 | | local fp = self._apply() |
| 24 | | self._apply = nil |
| 25 | | local line = fp:read() |
| 26 | | while line do |
| 27 | | write("<li>" .. pcdata(line) .. "</li>\n") |
| 28 | | line = fp:read() |
| 29 | | end |
| 30 | | fp:close() |
| 31 | | -%></ul> |
| | 22 | <script type="text/javascript"><![CDATA[ |
| | 23 | var apply_xhr = new XHR(); |
| | 24 | |
| | 25 | apply_xhr.get('<%=luci.dispatcher.build_url("servicectl", "restart", table.concat(self.parsechain, ","))%>', null, |
| | 26 | function() { |
| | 27 | var intv = window.setInterval( |
| | 28 | function() { |
| | 29 | apply_xhr.abort(); |
| | 30 | apply_xhr.get('<%=luci.dispatcher.build_url("servicectl", "status")%>', null, |
| | 31 | function(x) { |
| | 32 | if( x.responseText == 'finish' ) |
| | 33 | { |
| | 34 | window.clearInterval(intv); |
| | 35 | |
| | 36 | var e = document.getElementById('cbi-apply-<%=self.config%>-status'); |
| | 37 | if( e ) |
| | 38 | { |
| | 39 | e.innerHTML = '<%:Configuration applied.%>'; |
| | 40 | window.setTimeout(function() { e.parentNode.style.display = 'none' }, 1000); |
| | 41 | } |
| | 42 | } |
| | 43 | else |
| | 44 | { |
| | 45 | var e = document.getElementById('cbi-apply-<%=self.config%>-status'); |
| | 46 | if( e && x.responseText ) e.innerHTML = x.responseText; |
| | 47 | |
| | 48 | } |
| | 49 | } |
| | 50 | ); |
| | 51 | }, 1000 |
| | 52 | ) |
| | 53 | } |
| | 54 | ); |
| | 55 | ]]></script> |
| | 56 | |
| | 57 | <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> |
| | 58 | <span id="cbi-apply-<%=self.config%>-status"><%:Waiting for router...%></span> |