LogPage.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. var LogPage = {
  2. onPageShow: function () {
  3. LogPage.startLine = 0;
  4. $('#logContents', this).html('');
  5. $(document).on("websocketmessage", LogPage.onWebSocketMessage).on("websocketopen", LogPage.onWebSocketConnectionChange).on("websocketerror", LogPage.onWebSocketConnectionChange).on("websocketclose", LogPage.onWebSocketConnectionChange);
  6. LogPage.startInterval();
  7. var autoScroll = localStorage.getItem("autoScrollLogPage");
  8. if (autoScroll == "true") {
  9. LogPage.updateAutoScroll(true);
  10. }
  11. else if (autoScroll == "false") {
  12. LogPage.updateAutoScroll(false);
  13. }
  14. },
  15. onPageHide: function () {
  16. $(document).off("websocketmessage", LogPage.onWebSocketMessage).off("websocketopen", LogPage.onWebSocketConnectionChange).off("websocketerror", LogPage.onWebSocketConnectionChange).off("websocketclose", LogPage.onWebSocketConnectionChange);
  17. LogPage.stopInterval();
  18. },
  19. startInterval: function () {
  20. if (Dashboard.isWebSocketOpen()) {
  21. Dashboard.sendWebSocketMessage("LogFileStart", "0,2000");
  22. }
  23. },
  24. stopInterval: function () {
  25. if (Dashboard.isWebSocketOpen()) {
  26. Dashboard.sendWebSocketMessage("LogFileStop");
  27. }
  28. },
  29. onWebSocketConnectionChange: function () {
  30. LogPage.stopInterval();
  31. LogPage.startInterval();
  32. },
  33. onWebSocketMessage: function (e, msg) {
  34. if (msg.MessageType == "LogFile") {
  35. LogPage.appendLines(msg.Data);
  36. }
  37. },
  38. appendLines: function (lines) {
  39. if (!lines.length) {
  40. return;
  41. }
  42. LogPage.startLine += lines.length;
  43. lines = lines.join('\n') + '\n';
  44. var elem = $('#logContents', $.mobile.activePage).append(lines)[0];
  45. elem.style.height = (elem.scrollHeight) + 'px';
  46. if ($('#chkAutoScroll', $.mobile.activePage).checked()) {
  47. $('html, body').animate({ scrollTop: $(document).height() }, 'slow');
  48. }
  49. },
  50. updateAutoScroll: function (value) {
  51. var page = $.mobile.activePage;
  52. $('#chkAutoScrollBottom', page).checked(value).checkboxradio('refresh');
  53. $('#chkAutoScroll', page).checked(value).checkboxradio('refresh');
  54. localStorage.setItem("autoScrollLogPage", value.toString());
  55. }
  56. };
  57. $(document).on('pageshow', "#logPage", LogPage.onPageShow).on('pagehide', "#logPage", LogPage.onPageHide);