availablenetwork.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. include '../../../auth.php';
  3. ?>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="UTF-8">
  8. <link rel="stylesheet" href="style.css">
  9. <link rel="stylesheet" href="../../../script/tocas/tocas.css">
  10. <script type='text/javascript' src="../../../script/tocas/tocas.js"></script>
  11. <script src="../../../script/jquery.min.js"></script>
  12. <title>WIFI</title>
  13. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  14. </head>
  15. <body>
  16. <div class="ts fluid borderless slate">
  17. <div class="ts segment" style="width:100%;">
  18. <div class="ts header">
  19. Connect New Wi-Fi Network
  20. <div class="sub header">All the WiFi SSID scanned within the range of the onboard WLAN card.</div>
  21. </div>
  22. </div>
  23. <div class="ts container">
  24. </div>
  25. </div>
  26. <br>
  27. <?php
  28. if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  29. echo '<div class="ts message">
  30. <div class="header">Not Supported OS</div>
  31. <p>This function is not supported in Windows Host.</p>
  32. </div>';
  33. exit(0);
  34. }
  35. ?>
  36. <div class="ts container">
  37. <div class="ts cards" id="main_wifi">
  38. </div>
  39. </div>
  40. <div class="ts modals dimmer">
  41. <dialog class="ts basic modal" id="modal" style="background-color:white" close>
  42. <div class="header" style="color:black" id="head_modal">
  43. </div>
  44. <div class="content" style="color:black" id="content_modal">
  45. </div>
  46. <div class="actions">
  47. <Button class="ts primary button" id="connect_btn">Connect</button>
  48. <button class="ts negative button">Cancel</button>
  49. </div>
  50. </dialog>
  51. </div>
  52. <div id="msgbox" class="ts bottom right snackbar">
  53. <div class="content">
  54. Your request is being processed now.
  55. </div>
  56. </div>
  57. <script>
  58. startup();
  59. var previouswifi;
  60. function startup(){
  61. //Please ADD ALL LOAD ON STARTUP SCRIPT HERE
  62. scannetwork();
  63. }
  64. function scannetwork(){
  65. $('#main_wifi').html("");
  66. $("#availablewifi").html('<tr><th>Wi-Fi name</th></tr>');
  67. $.ajaxSettings.async = false;
  68. $.getJSON("opr.php?opr=scan", function(result){
  69. $.each(result, function(i, field){
  70. var Quality = "icon-0";
  71. var Quality_int = parseInt(field["Quality"].split("/")[0])/parseInt(field["Quality"].split("/")[1]);
  72. if(Quality_int == 0){
  73. Quality = "icon-0";
  74. }else if(Quality_int > 0 && Quality_int <= 0.25){
  75. Quality = "icon-1";
  76. }else if(Quality_int > 0.25 && Quality_int <= 0.5){
  77. Quality = "icon-2";
  78. }else if(Quality_int > 0.5 && Quality_int <= 0.75){
  79. Quality = "icon-3";
  80. }else if(Quality_int > 0.75 && Quality_int <= 1){
  81. Quality = "icon-Full";
  82. }
  83. $('#main_wifi').append('<div class="ts card"><div class="content"><div class="ts medium comments"><div class="comment"><div class="avatar"><span class="' + Quality + '" style="font-size:2.5em"></span></div><div class="content"><p class="author">' + field["ESSID"] + '</p><div class="text">' + field["Encrpytion_Method"] + '</div><div class="actions" id="act_wifi"><a onclick="conn_modal(this)" ssid="' + field["ESSID"] + '" encrypt="' + field["Encrpytion_Method_Shortname"] + '">Connect</a></div></div></div></div></div></div>');
  84. });
  85. });
  86. $("#main_wifi").append('<div class="ts card"><div class="content"><div class="ts medium comments"><div class="comment"><div class="avatar"><i class="big add icon"></i></div><div class="content"><a class="author">Add new Wi-Fi</a><div class="text">Add new network</div><div class="actions"><a onclick="redirect()">Add</a></div></div></div></div></div></div>');
  87. $.ajaxSettings.async = true;
  88. }
  89. // not fixed
  90. function redirect(){
  91. window.location = "addnew.php";
  92. }
  93. //
  94. function conn_modal(ssid){
  95. var method = "";
  96. if($(ssid).attr("encrypt") == "No"){
  97. method = "no";
  98. }else if($(ssid).attr("encrypt") == "802.1x"){
  99. method = "802.1x"
  100. }else if($(ssid).attr("encrypt") == "WPA2"){
  101. method = "WPA2"
  102. }
  103. ts('#modal').modal({
  104. approve: '.primary',
  105. deny: '.negative',
  106. onDeny: function() {
  107. msg("Cancelled");
  108. },
  109. onApprove: function() {
  110. submit($(ssid).attr('ssid'),method);
  111. }
  112. }).modal("show");
  113. $('#head_modal').html("Connecting to : " + $(ssid).attr('ssid'));
  114. $('#content_modal').html('<form id="form" class="ts form" id="wifi" action=""><div class="fields">' + form($(ssid).attr('encrypt')) +'</div><input type="hidden" id="ssid" name="ssid" value="' + $(ssid).attr('ssid') + '"><input type="hidden" id="encryption" name="encryption" value="' + method + '"></form>');
  115. var saved=false;
  116. $("#connect_btn").removeAttr("disabled");
  117. $.getJSON("opr.php?opr=view_wifistorage", function(result){
  118. $.each(result, function(i, wifiarray){
  119. if(wifiarray["ssid"] == $(ssid).attr("ssid")){
  120. saved=true;
  121. $('#content_modal').html("Record already exists. You have to remove the WiFi Network Record before reconnecting.");
  122. $("#connect_btn").attr("disabled","true");
  123. }
  124. });
  125. });
  126. }
  127. function form(method){
  128. console.log(method);
  129. if(method == "WPA2"){
  130. return '<div class="sixteen wide field"><input id="psk" name="psk" placeholder="Password" type="password"></div>';
  131. }else if(method == "802.1x"){
  132. return '<div class="eight wide field"><input id="identity" name="identity" placeholder="Username" type="text"></div><div class="eight wide field"><input ut id="psk" name="psk" placeholder="Password" type="password"></div>';
  133. }else if(method == "No"){
  134. return 'Open Network. No Password Required';
  135. }else{
  136. return 'System cannot determine wifi encrpyion method.';
  137. }
  138. }
  139. function msg(content) {
  140. ts('.snackbar').snackbar({
  141. content: content,
  142. actionEmphasis: 'negative',
  143. });
  144. }
  145. function submit(){
  146. $.post( "opr.php?opr=addwifi", $( "#form" ).serialize()).done(function() {
  147. msg("WPA Updated. Restarting wireless interface services.");
  148. $.ajax({url:"opr.php?opr=restart",async:false});
  149. msg('Added Wi-Fi Network.');
  150. })
  151. .fail(function() {
  152. msg( "Failed" );
  153. });
  154. }
  155. </script>
  156. </body>
  157. </html>