Advertisement
Guest User

Untitled

a guest
May 31st, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.98 KB | None | 0 0
  1.  
  2. <?php
  3.  
  4. set_time_limit(0);
  5. ignore_user_abort(true);
  6.  
  7. include("./classes/Database.php");
  8. include("./config/config.php");
  9.  
  10. $stations = $db->select("SELECT * FROM stations WHERE Type != 'FRN'");
  11.  
  12. ?>
  13. <!DOCTYPE html>
  14. <html>
  15. <head>
  16.  
  17. <meta charset='UTF-8' />
  18. <style type="text/css">
  19. <!--
  20. #content{
  21. height: 100%;
  22. width: 100%;
  23. margin-left: 20%;
  24. }
  25.  
  26. img{
  27. margin-left: 14%;
  28. }
  29. .chat_wrapper {
  30. width: 750px;
  31. margin-right: 0;
  32. margin-left: 0;
  33. background: #e5efe4;
  34. border: 2px solid #33b414;
  35. padding: 10px;
  36. font: 12px 'lucida grande',tahoma,verdana,arial,sans-serif;
  37. }
  38.  
  39. .chat_wrapper .message_box {
  40. background: #FFFFFF;
  41. height:50px;
  42. overflow: auto;
  43. padding: 10px;
  44. border: 2px solid #33b414;
  45. margin: 5px;
  46. }
  47. .chat_wrapper .panel input{
  48. padding: 2px 2px 2px 5px;
  49. }
  50. .system_msg{color: #BDBDBD;font-style: italic;}
  51. .user_name{font-weight:bold;}
  52. .user_message{color: #88B6E0;}
  53.  
  54. #live_table{
  55. padding:5px;
  56. margin:5px;
  57. border:thin grey solid;
  58. bgcolor:#ffffff;
  59. }
  60. -->
  61. </style>
  62.  
  63. <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  64.  
  65. <script language="javascript" type="text/javascript">
  66.  
  67.  
  68. $(document).ready(function(){
  69.  
  70. function createRow() {
  71. var row = document.getElementById("station_"+callsign); // find row to copy
  72. var table = document.getElementById("live_table"); // find table to append to
  73. var clone = row.cloneNode(true); // copy children too
  74. clone.id = "station_"+callsign; // change id or other attributes/contents
  75. table.appendChild(clone); // add new row to end of table
  76. }
  77.  
  78. var attempts = 1;
  79.  
  80. function createWebSocket() {
  81. var wsUri = "ws://funknetz.nrw:9000/demo/server.php";
  82. var websocket = new WebSocket(wsUri);
  83. websocket.onopen = function (ev) {
  84. // reset the tries back to 1 since we have a new connection opened.
  85. attempts = 1;
  86. // ...Your app's logic...
  87. $('#message_box').prepend("<div class=\"system_msg\">Verbunden!</div>"); //notify user
  88. }
  89.  
  90.  
  91. websocket.onclose = function(ev){
  92. $('#message_box').prepend("<div class=\"system_msg\">Verbindung unterbrochen, versuche in "+attempts+" Sekunden erneut zu verbinden</div>");
  93.  
  94. var time = 1000*attempts;
  95. setTimeout(function(){
  96. // We've tried to reconnect so increment the attempts by 1
  97. attempts++;
  98. if (attempts > 10) attempts=1;
  99. // Connection has closed so try to reconnect every 10 seconds.
  100. createWebSocket();
  101. }, time);
  102. }
  103. websocket.onmessage = function(ev){
  104. var msg = JSON.parse(ev.data); //PHP sends Json data
  105. var type = msg.type; //message type
  106. var umsg = msg.message; //message text
  107. var uname = msg.name; //user name
  108. var ucolor = msg.color; //color
  109.  
  110. var arr = umsg.split(' ');
  111.  
  112. var arr2 = arr[3].split(':');
  113.  
  114. var rx_id = arr2[1];
  115.  
  116. var callsign = arr2[0];
  117.  
  118. var arr3 = arr[2].split('::');
  119.  
  120. var category = arr3[0];
  121. var value = arr3[1];
  122. var lastseen = arr[4];
  123. var ts = arr[1];
  124.  
  125. //alert(callsign+" "+category+" "+value);
  126.  
  127. if ($('#lastseen_'+callsign)) {
  128.  
  129. var date = new Date(lastseen*1000);
  130. var hours = date.getHours();
  131. var minutes = "0" + date.getMinutes();
  132. var seconds = "0" + date.getSeconds();
  133. var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
  134. $('#lastseen_'+callsign).html(formattedTime);
  135. }
  136.  
  137. if ($('#status_'+callsign)) {
  138.  
  139. if (category == "Squelch") {
  140.  
  141. if (value == "open") {
  142. $('#status_'+callsign).css("background-color", "yellow");
  143. $('#status_'+callsign).html('Squelch offen');
  144. }
  145. if (value == "close") {
  146. $('#status_'+callsign).css("background-color", "lightgreen");
  147. $('#status_'+callsign).html('Empfangsbereit');
  148. }
  149. }
  150. if (category == "TX") {
  151.  
  152. if (value == "on") {
  153. $('#status_'+callsign).css("background-color", "blue");
  154. $('#status_'+callsign).html('Sendet');
  155. }
  156. if (value == "off") {
  157. $('#status_'+callsign).css("background-color", "lightgreen");
  158. $('#status_'+callsign).html('Empfangsbereit');
  159. }
  160. }
  161. if (category == "Status") {
  162.  
  163. if (value == "online") {
  164. $('#status_'+callsign).css("background-color", "lightgreen");
  165. $('#status_'+callsign).html('Empfangsbereit');
  166. }
  167. if (value == "offline") {
  168. $('#status_'+callsign).css("background-color", "lightgrey");
  169. $('#status_'+callsign).html('Offline');
  170. }
  171. }
  172. /* Gruppen Wechsel Anzaigen */
  173. if(category == "DTMF"){
  174. if(rx_id == "131"){
  175. //$('#group_131').html(callsign);
  176. var row = document.getElementById("station_"+callsign); // find row to copy
  177. var table = document.getElementById("live_table"); // find table to append to
  178. var clone = row.cloneNode(true); // copy children too
  179. clone.id = "station_"+callsign; // change id or other attributes/contents
  180. document.getElementById("group_131").appendChild(row); // add new row to end of table
  181.  
  182. }
  183.  
  184. if(rx_id == "130"){
  185. $("#group_131").html("");
  186. }
  187.  
  188. if(rx_id == "151"){
  189. $('#group_151').html(callsign);
  190. }
  191.  
  192. if(rx_id == "150"){
  193. $("#group_151").html("");
  194. }
  195.  
  196. if(rx_id == "161"){
  197. $('#group_161').html(callsign);
  198. }
  199.  
  200. if(rx_id == "160"){
  201. $("#group_161").html("");
  202. }
  203. }
  204.  
  205. }
  206.  
  207. if(type == 'usermsg')
  208. {
  209. $('#message_box').prepend("<div><span class=\"user_name\" style=\"color:#"+ucolor+"\">"+uname+"</span> : <span class=\"user_message\">"+umsg+"</span></div>");
  210. }
  211. if(type == 'system')
  212. {
  213. $('#message_box').prepend("<div class=\"system_msg\">"+umsg+"</div>");
  214. }
  215.  
  216. $('#message').val(''); //reset text
  217. };
  218.  
  219. websocket.onerror = function(ev){$('#message_box').prepend("<div class=\"system_error\">Ein Fehler ist aufgetreten - "+ev.data+"</div>");};
  220.  
  221. }
  222.  
  223. createWebSocket();
  224.  
  225. });
  226. </script>
  227.  
  228.  
  229. </head>
  230.  
  231. <body>
  232.  
  233. <img src="../images/banner.png">
  234. <div id="content">
  235. <div class="chat_wrapper">
  236. Funknetz.nrw Live Status & Log Talkgroup über Funk mit DTMF anwählen z.B 111# für FRN -- trennen 110# !!!
  237. <div>
  238. <table id="live_table">
  239.  
  240.  
  241. <tr style="padding:5px;margin:5px;border-bottom:thin grey solid;">
  242. <th style="text-align:left">Standort</th><th style="text-align:left">Rufzeichen</th><th style="text-align:left">Kanal</th><th style="text-align:left">Zugang</th><th style="text-align:left;width:100px;">Status</th><th>LastSeen</th>
  243. </tr>
  244. <!--
  245. <tr>
  246. <td>Herten</td><td>45699B</td><td>CB 39</td><td>-</td><td id="status_45699B">offline</td><td id="lastseen_45699B"></td>
  247. </tr>
  248. //-->
  249. </tr>
  250. <td></td><td></td><td></td><td></td><td id=""></td><td id=></td>
  251. </tr>
  252.  
  253. <!--
  254. <tr>
  255. <td style="width:200px;">Lingen [Node]</td><td style="width:100px;">49808</td><td style="width:150px;">PMR 6</td><td style="width:100px">CTCSS 67.0</td><td id="status_49808" style="width:100px;">offline</td><td id="lastseen_49808"></td>
  256. </tr>
  257. //-->
  258.  
  259. </tr>
  260. <td></td><td></td><td></td><td></td><td id=""></td><td id=></td>
  261. </tr>
  262.  
  263. <td style="font-weight: bold;">Talkgroup 111 FRN</td>
  264. <?php $frn = $db->select("SELECT * FROM stations WHERE Type = 'FRN'"); ?>
  265. <tr>
  266. <td style="width:200px;"><?= $frn[0]['City'] ?></td>
  267. <td style="width:100px;"><?= $frn[0]['Callsign'] ?> </td>
  268. <td style="width:150px;"><?= $frn[0]['Channel'] ?> </td>
  269. <td style="width:100px;">CTCSS <?= (!$frn[0]['CTCSS_Tone'] == 0) ? $frn[0]['CTCSS_Tone'] : "----"; ?></td>
  270. <td style="width:100px;" id="status_<?= $frn[0]['Callsign'] ?>">offline</td>
  271. <td id="lastseen_<?= $frn[0]['Callsign'] ?>"></td>
  272. <!-- <td>Free Radio Network</td><td>FRN</td><td>Internet </td><td>CTCSS -----</td><td id="status_FRN" >Online</td><td id="lastseen_FRN"></td> -->
  273. </tr>
  274.  
  275.  
  276. <td style="font-weight: bold;">Talkgroup 141 Funknetz NRW</td>
  277.  
  278. <?php foreach($stations as $key => $value): ?>
  279. <tr id="station_<?php echo $stations[$key]['Callsign']; ?>">
  280. <td style="width:200px;"><?= $stations[$key]['City'] ?> [<?= $stations[$key]['Type'] ?>]</td>
  281. <td style="width:100px;"><?= $stations[$key]['Callsign'] ?> </td>
  282. <td style="width:150px;"><?= $stations[$key]['Channel'] ?> </td>
  283. <td style="width:100px;">CTCSS <?= (!$stations[$key]['CTCSS_Tone'] == 0) ? $stations[$key]['CTCSS_Tone'] : "----"; ?></td>
  284. <td style="width:100px;" id="status_<?= $stations[$key]['Callsign'] ?>">offline</td>
  285. <td id="lastseen_<?= $stations[$key]['Callsign'] ?>"></td>
  286. </tr>
  287. <?php endforeach; ?>
  288.  
  289. <tr>
  290. <td></td><td></td><td></td><td></td><td id=""></td><td id=></td>
  291. </tr>
  292.  
  293. <td style="font-weight: bold;">Talkgroup 131 Quassel Test mit Papagei</td>
  294.  
  295. <tr id="group_131"></tr>
  296.  
  297. <tr><td style="font-weight: bold;">Talkgroup 151 Niedersachsen/Bremen/Hamburg</td></tr>
  298. <tr>
  299. <td id="group_151"></td>
  300. </tr>
  301. <tr><td style="font-weight: bold;">Talkgroup 161 Rheinland-Pfalz/Saarland</td></tr>
  302. <tr>
  303. <td id="group_161"></td>
  304. </tr>
  305.  
  306.  
  307. </tr>
  308.  
  309.  
  310.  
  311. </table>
  312. </div>
  313. <div class="message_box" id="message_box"></div>
  314. <div class="panel">
  315. </div>
  316. </div>
  317. </div>
  318. </body>
  319. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement