alarmBar.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. //"use strict";
  2. var connection = new signalR.HubConnectionBuilder().withUrl("/alarmHub").build();
  3. //Disable send button until connection is established
  4. //document.getElementById("sendButton").disabled = true;
  5. connection.on("Remove", function (message) {
  6. var infoSpan = document.getElementById("common_header_left_text");
  7. if (infoSpan != null) {
  8. infoSpan.innerHTML = message;
  9. }
  10. console.log("Remove called");
  11. });
  12. connection.on("AddMessage", function (user, message, alarmInfoCount, warningInfoCount) {
  13. //var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
  14. var msg = JSON.parse(message.toString());
  15. if (msg == null)
  16. return;
  17. var infoSpan = document.getElementById("common_header_left_text");
  18. if (infoSpan != null) {
  19. infoSpan.innerHTML = msg.Description;
  20. }
  21. UpdateAlarmBarVisibility(msg.Severity);
  22. if (msg.Severity === "Alarm" && msg.Acked === false) {
  23. var alarmAudio = document.getElementById("alarm_audio");
  24. if (alarmAudio == null) {
  25. alarmAudio = document.createElement("audio");
  26. alarmAudio.id = "alarm_audio";
  27. alarmAudio.src = "/audio/alarm.wav";
  28. alarmAudio.autoplay = "autoplay";
  29. alarmAudio.loop = "loop";
  30. //alarmAudio.muted = "false";
  31. //alarmAudio.controls = "controls";
  32. if (document.getElementById("common_header"))
  33. document.getElementById("common_header").appendChild(alarmAudio);
  34. }
  35. }
  36. var alarmCountSpan = document.getElementById("common_header_left_alarm_count");
  37. if (alarmCountSpan != null) alarmCountSpan.innerHTML = "报警次数:" + alarmInfoCount.toString();
  38. var warningCountSpan = document.getElementById("common_header_left_warning_count");
  39. if (warningCountSpan != null) warningCountSpan.innerHTML = "预警次数:" + warningInfoCount.toString();
  40. console.log("Add message called");
  41. });
  42. connection.on("Remove", function (user) {
  43. var infoSpan = document.getElementById("common_header_right_text");
  44. if (infoSpan != null) {
  45. infoSpan.innerHTML = "remove" + user;
  46. }
  47. });
  48. connection.on("MuteAlarmAduio", function () {
  49. var alarmAudio = document.getElementById("alarm_audio");
  50. if (alarmAudio != null) {
  51. //alarmAudio.muted = "muted";
  52. if (document.getElementById("common_header"))
  53. document.getElementById("common_header").removeChild(alarmAudio);
  54. }
  55. });
  56. connection.start().then(function () {
  57. console.log("start successfully");
  58. //var infoSpan = document.getElementById("common_header_left_text");
  59. //if (infoSpan != null) {
  60. // infoSpan.innerHTML = "Main view SignalRStarted"+Math.random().toString();
  61. //}
  62. }).catch(function (err) {
  63. return console.error(err.toString());
  64. });
  65. function Stop() {
  66. if (connection != null && connection.connectionState === "Connected") {
  67. connection.stop();
  68. }
  69. }
  70. function UpdateAlarmBarVisibility(severity) {
  71. var normalImgVisibility = severity === "Information" || severity == null ? "visible" : "hidden";
  72. var warningImgVisibility = severity === "Warning" ? "visible" : "hidden";
  73. var alarmImgVisibility = severity === "Alarm" ? "visible" : "hidden";
  74. var normalImg = document.getElementById("common_header_left_normal");
  75. var warningImg = document.getElementById("common_header_left_warning");
  76. var alarmImg = document.getElementById("common_header_left_alarm");
  77. if (normalImg != null) normalImg.style.visibility = normalImgVisibility;
  78. if (warningImg != null) warningImg.style.visibility = warningImgVisibility;
  79. if (alarmImg != null) alarmImg.style.visibility = alarmImgVisibility;
  80. }
  81. function AlarmBarClicked(id) {
  82. if (document.getElementById("alarm_information") != null) {
  83. return;
  84. }
  85. if (id === "common_header" &&
  86. document.getElementById("common_header_left_alarm") != null &&
  87. document.getElementById("common_header_left_alarm").style.visibility === "visible") {
  88. $.ajax({
  89. url: "/AlarmBar/AlarmAcked",
  90. contentType: 'application/json',
  91. //data: message,
  92. type: 'post',
  93. success: function (res) {
  94. console.log("Alarm information handled successfully, the response is:" + res);
  95. var alarmAudio = document.getElementById("alarm_audio");
  96. if (alarmAudio != null) {
  97. //alarmAudio.muted = "muted";
  98. if (document.getElementById("common_header"))
  99. document.getElementById("common_header").removeChild(alarmAudio);
  100. }
  101. },
  102. error: function (msg) {
  103. console.log(msg);
  104. }
  105. });
  106. }
  107. var alarmInfoDiv = document.createElement("div");
  108. alarmInfoDiv.id = "alarm_information";
  109. alarmInfoDiv.style = "position: absolute;left:0%;top:0px;width:100%; height: 88.339%;background-image:url(/images/shared/alarmbarBackground.jpg);";
  110. var alarmInfoTable = document.createElement("table");
  111. alarmInfoTable.id = "alarm_information_table";
  112. alarmInfoTable.style = "width:100%;height:94%;border-collapse:collapse;";
  113. var alarmInfoTableHeader = document.createElement("thead");
  114. var headr = document.createElement("tr");
  115. headr.style = "display: table;width:100%;height:10%;table-layout:fixed;font-size: 22px;";
  116. var tableData = document.createElement("td");
  117. tableData.style = "width:20%;text-align: center;";
  118. tableData.innerText = "报警类型";
  119. var tableData1 = document.createElement("td");
  120. tableData1.style = "width:20%;text-align: center;";
  121. tableData1.innerText = "报警时间";
  122. var tableData3 = document.createElement("td");
  123. tableData3.style = "width:20%;text-align: center;";
  124. tableData3.innerText = "模块";
  125. var tableData2 = document.createElement("td");
  126. tableData2.style = "width:40%;text-align: center;";
  127. tableData2.innerText = "描述";
  128. headr.appendChild(tableData);
  129. headr.appendChild(tableData1);
  130. headr.appendChild(tableData3);
  131. headr.appendChild(tableData2);
  132. alarmInfoTableHeader.appendChild(headr);
  133. alarmInfoTable.appendChild(alarmInfoTableHeader);
  134. var tableBody = document.createElement("tbody");
  135. tableBody.style = "height:90%; overflow: hidden;display: block;overflow:hidden;overflow-y: auto;";
  136. $.ajax({
  137. url: "/AlarmBar/GetAlarmInformation",
  138. contentType: 'application/json',
  139. //data: message,
  140. type: 'get',
  141. success: function (res) {
  142. if (res == null) return;
  143. var msg = JSON.parse(res.toString());
  144. if (msg == null) return;
  145. msg.forEach(function (m) {
  146. var tempr = document.createElement("tr");
  147. tempr.style = "display: table;width:100%;height:10%;table-layout:fixed;font-size: 22px;";
  148. var tableData = document.createElement("td");
  149. tableData.style = "width:20%;text-align: center;";
  150. tableData.innerText = m.Severity;
  151. var tableData1 = document.createElement("td");
  152. tableData1.style = "width:20%;text-align: center;";
  153. tableData1.innerText = new Date(m.OccurTime).getFullYear() + "-" + Pad(new Date(m.OccurTime).getMonth() + 1, 2) + "-" + Pad(new Date(m.OccurTime).getDate(), 2);
  154. var tableData3 = document.createElement("td");
  155. tableData3.style = "width:20%;text-align: center;";
  156. tableData3.innerText = m.Module;
  157. var tableData2 = document.createElement("td");
  158. tableData2.style = "width:40%;text-align: left;";
  159. tableData2.innerText = m.Description;
  160. tempr.appendChild(tableData);
  161. tempr.appendChild(tableData1);
  162. tempr.appendChild(tableData3);
  163. tempr.appendChild(tableData2);
  164. tableBody.appendChild(tempr);
  165. });
  166. console.log("Alarm information handled successfully, the response is:" + res);
  167. },
  168. error: function (msg) {
  169. console.log(msg);
  170. }
  171. });
  172. alarmInfoTable.appendChild(tableBody);
  173. alarmInfoDiv.appendChild(alarmInfoTable);
  174. var closeButtonImg = document.createElement("img");
  175. closeButtonImg.id = "close_alarm_information";
  176. //closeButtonImg.onclick = CloseAlarmInfoPage("close_alarm_information");
  177. closeButtonImg.onclick = function () { CloseAlarmInfoPage("close_alarm_information"); };
  178. closeButtonImg.style = "position: absolute; top:94.213%; left:45.156%;width:9.688%; height: 5.787%;";
  179. closeButtonImg.src = "/images/shared/closeButton.png";
  180. alarmInfoDiv.appendChild(closeButtonImg);
  181. //var bodyTab = document.getElementById("mainscrren_body");
  182. var bodyTab = document.getElementById("smartfuel_main_view");
  183. if (bodyTab != null) bodyTab.appendChild(alarmInfoDiv);
  184. }
  185. function CloseAlarmInfoPage(id) {
  186. if (document.getElementById("alarm_information") != null) {
  187. var mainbody = document.getElementById("smartfuel_main_view");
  188. if (mainbody != null) mainbody.removeChild(document.getElementById("alarm_information"));
  189. }
  190. }
  191. function Pad(num, n) {
  192. var len = num.toString().length;
  193. while (len < n) {
  194. num = "0" + num;
  195. len++;
  196. }
  197. return num;
  198. }