index.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset='utf-8'>
  5. <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  6. <title>TPA</title>
  7. <!-- https://electronjs.org/docs/tutorial/security#csp-meta-tag -->
  8. <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
  9. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  10. <link rel="stylesheet" href="lib/bootstrap.min.css">
  11. <style>
  12. body {
  13. width: 100%;
  14. min-height: 100vh;
  15. padding: 1em;
  16. }
  17. #main {
  18. width: 100%;
  19. }
  20. .row {
  21. margin: 0;
  22. }
  23. #settOAuthToken {
  24. display: inline-block;
  25. width: calc( 100% - 105px )
  26. }
  27. #settGetToken {
  28. width: 100px;
  29. float: right;
  30. }
  31. #alerts > form {
  32. margin-bottom: 1em;
  33. }
  34. .btn-remove {
  35. width: 85px;
  36. }
  37. .btn-test {
  38. width: 55px;
  39. }
  40. .custom-file {
  41. width: calc( 100% - 155px )
  42. }
  43. #filepath {
  44. overflow: hidden;
  45. }
  46. .form-btns {
  47. float:right;
  48. width: 145px;
  49. }
  50. </style>
  51. </head>
  52. <body>
  53. <div id="main">
  54. <div class="row">
  55. <h3>Settings</h3>
  56. <a id="hideButton" data-toggle="collapse" data-target="#sett" style="padding: 5px">
  57. </a>
  58. <form id="sett" class="col-12 show">
  59. <div class="form-row">
  60. <div class="form-group col-12">
  61. <label for="settClientToken">Twitch Client ID</label>
  62. <input type="text" class="form-control" id="settClientToken">
  63. </div>
  64. <div class="form-group col-12" style="margin-bottom: 0;">
  65. <label for="settOAuthToken" style="display: block;">Twitch OAuth Token</label>
  66. </div>
  67. <div class="form-group col-12 align-items-center">
  68. <input type="text" class="form-control" id="settOAuthToken" readonly>
  69. <button class="btn btn-primary" id="settGetToken">Get token</button>
  70. </div>
  71. <div class="form-group col-12">
  72. <label for="settChannel">Channel</label>
  73. <input type="text" class="form-control" id="settChannel">
  74. </div>
  75. <div class="form-group col-12">
  76. <label for="settPort">Port</label>
  77. <input type="text" class="form-control" id="settPort">
  78. </div>
  79. </div>
  80. <div class="form-group">
  81. <button type="button" class="btn btn-primary" id="settSave">Save</button>
  82. </div>
  83. </form>
  84. </div>
  85. <div>
  86. <p>
  87. Twitch Connection: <span id="twitchStatus"></span> <button id="twitchstartstop" class="btn btn-primary">Start/Stop</button> <span id="twitchError" class="error-mesage"></span>
  88. </p>
  89. <p>
  90. WebSocket Server Connection: <span id="wssStatus"></span> <button id="wssstartstop" class="btn btn-primary">Start/Stop</button>
  91. </p>
  92. </div>
  93. <h3>Alerts</h3>
  94. <div class="row" id="alerts">
  95. </div>
  96. <button id="addAlert" class="btn btn-success">Add</button>
  97. <button id="saveAlert" class="btn btn-primary">Save</button>
  98. <button id="skipAlert" class="btn btn-danger">Skip</button>
  99. <button id="abortAlert" class="btn btn-danger">Abort</button>
  100. <h3>Queue length: <span id="queueCounter"></span></h3>
  101. </div>
  102. <script src="lib/jquery-3.4.1.slim.min.js"></script>
  103. <script src="lib/popper.min.js"></script>
  104. <script src="lib/bootstrap.min.js"></script>
  105. <script src="lib/feather.min.js"></script>
  106. <script src="../dst/web/main.js"></script>
  107. <script>
  108. let col2 = $("#sett");
  109. let button = document.getElementById("hideButton");
  110. let svgOptions = {
  111. class: "align-middle"
  112. };
  113. button.innerHTML = feather.icons['chevron-up'].toSvg(svgOptions);
  114. col2.on("show.bs.collapse", ()=>{
  115. console.log("Show 2");
  116. button.innerHTML = feather.icons['chevron-up'].toSvg(svgOptions);
  117. })
  118. col2.on("hide.bs.collapse", ()=>{
  119. console.log("Hide 2");
  120. button.innerHTML = feather.icons['chevron-down'].toSvg(svgOptions);
  121. })
  122. feather.replace()
  123. </script>
  124. </body>
  125. </html>