log.htm 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <%
  2. local dsp = require "luci.dispatcher"
  3. -%>
  4. <script type="text/javascript">
  5. //<![CDATA[
  6. function clearlog(btn) {
  7. XHR.get('<%=dsp.build_url("admin/services/shadowsocksr/clear_log")%>', null,
  8. function(x, data) {
  9. if (x && x.status == 200) {
  10. var log_textarea = document.getElementById('log_textarea');
  11. log_textarea.innerHTML = "";
  12. log_textarea.scrollTop = log_textarea.scrollHeight;
  13. }
  14. }
  15. );
  16. }
  17. XHR.poll(5, '<%=dsp.build_url("admin/services/shadowsocksr/get_log")%>', null,
  18. function(x, data) {
  19. if (x && x.status == 200) {
  20. var log_textarea = document.getElementById('log_textarea');
  21. // 将日志分行处理,移除最后一行空行但保留中间空行
  22. var logs = x.responseText.split("\n");
  23. if (logs[logs.length - 1].trim() === "") {
  24. logs.pop(); // 删除最后的空行
  25. }
  26. logs = logs.reverse().join("\n"); // 倒序排列
  27. log_textarea.innerHTML = logs;
  28. }
  29. }
  30. );
  31. //]]>
  32. </script>
  33. <fieldset class="cbi-section" id="_log_fieldset">
  34. <input class="btn cbi-button cbi-button-remove" type="button" onclick="clearlog()" value="<%:Clear logs%>" />
  35. <textarea id="log_textarea" class="cbi-input-textarea" style="width: 100%;margin-top: 10px;" data-update="change" rows="20" wrap="off" readonly="readonly"></textarea>
  36. </fieldset>