Home Reference Source

cables_dev/cables_ui/src/ui/components/tabs/tab_logfilter.js

  1. import { Events } from "cables-shared-client";
  2. import Tab from "../../elements/tabpanel/tab.js";
  3. import { getHandleBarHtml } from "../../utils/handlebars.js";
  4. import { GuiText } from "../../text.js";
  5. import { gui } from "../../gui.js";
  6. import { logFilter } from "../../utils/logfilter.js";
  7. export default class LoggingTab extends Events
  8. {
  9. constructor(tabs)
  10. {
  11. super();
  12. this._tabs = tabs;
  13. this._logs = [];
  14. this.closed = false;
  15. this._tab = new Tab("Logging", { "icon": "list", "infotext": "tab_logging", "padding": true, "singleton": "true", });
  16. this._tabs.addTab(this._tab, true);
  17. this.data = { "cells": this.cells, "colNames": this.colNames };
  18. this._html();
  19. logFilter.on("initiatorsChanged", this._html.bind(this));
  20. this._tab.addEventListener(
  21. "close",
  22. () =>
  23. {
  24. this.closed = true;
  25. this.emitEvent("close");
  26. logFilter.off(this._showlogListener);
  27. },
  28. );
  29. }
  30. _html()
  31. {
  32. const html = getHandleBarHtml("tab_logging", { "user": gui.user, "texts": GuiText.preferences, "info": logFilter.getTabInfo() });
  33. this._tab.html(html);
  34. }
  35. _logLine(log, txt, level)
  36. {
  37. let html = "<div class=\"logLine logLevel" + level + "\">";
  38. html += "<span style=\"float:left\">[<span class=\"initiator\">";
  39. if (log.opInstId)
  40. html += "<a onclick=\"gui.patchView.centerSelectOp('" + log.opInstId + "');\">";
  41. html += log.initiator;
  42. if (log.opInstId)
  43. html += "</a>";
  44. html += "</span>]&nbsp;&nbsp;</span> ";
  45. html += "<div style=\"float:left\">";
  46. html += txt;
  47. html += "</div>";
  48. html += "</div>";
  49. return html;
  50. }
  51. }