admin.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. (function() {
  2. var uploadbtn = document.getElementById('uploadbtn');
  3. var uploadfile = document.getElementById('uploadfile');
  4. uploadbtn.addEventListener('change', function () {
  5. uploadfile.value = this.value.replace(/^.*\\/, "");
  6. var len = uploadfile.value.length - 7;
  7. uploadfile.setAttribute('size', len);
  8. var len = uploadfile.offsetWidth;
  9. uploadbtn.style.width = len + "px";
  10. });
  11. /* onload check wanconf form selects and set accordingly */
  12. /* var wanconf = document.getElementById('wanconf');
  13. var selects = wanconf.getElementsByTagName('select');
  14. for (i = 0; i < selects.length; i++) {
  15. wanChange(selects[i]);
  16. }
  17. */
  18. var wanconf = document.getElementById('wanconf');
  19. wanconf.addEventListener('change', function(event) { wanChange(event.target) });
  20. function wanChange(e) {
  21. var wanwifi = document.getElementById('wanwifi');
  22. var wanaddr = document.getElementById('wanaddr');
  23. switch (e[e.selectedIndex].id) {
  24. case 'wlan':
  25. wanwifi.setAttribute('class','show');
  26. iwScan();
  27. break;
  28. case 'dhcp':
  29. wanaddr.setAttribute('class','hide');
  30. break;
  31. case 'eth':
  32. wanwifi.setAttribute('class','hide');
  33. break
  34. case 'stat':
  35. wanaddr.setAttribute('class','show');
  36. break;
  37. }
  38. }
  39. var wanssid = document.getElementById('wanssid');
  40. wanssid.addEventListener('focus', function(event) {
  41. console.log('scan now');
  42. iwScan();
  43. event.stopPropagation();
  44. });
  45. /* update uptime output */
  46. (function uptimeUpdate() {
  47. setTimeout(function() {
  48. ajaxReq('POST', '/admin/uptime', 'null', function(xmlDoc) {
  49. //console.log(xmlDoc['response'])
  50. document.getElementById('uptime').innerHTML = xmlDoc['response'];
  51. });
  52. uptimeUpdate();
  53. }, 5000);
  54. })();
  55. //iwScan();
  56. })();
  57. function iwScan() {
  58. function comp(a,b) {
  59. if (a.quality < b.quality)
  60. return 1;
  61. if (a.quality > b.quality)
  62. return -1;
  63. return 0;
  64. }
  65. ajaxReq('POST', '/admin/iwscan', 'null', function(xmlDoc) {
  66. var res = JSON.parse(xmlDoc['response']);
  67. var stas = res['results'].sort(comp);
  68. sss = stas;
  69. var wanssid = document.getElementById('wanssid');
  70. for (var i = 0; i < Object.keys(stas).length; i++) {
  71. // console.log(stas[i]['ssid']);
  72. // console.log(stas[i]);
  73. var sta;
  74. if (sta = document.getElementById(stas[i]['ssid'])) {
  75. console.log('found ' + stas[i]['ssid'] + ' entry');
  76. } else {
  77. sta = document.createElement('option');
  78. sta.id = stas[i]['ssid'];
  79. sta.setAttribute('data-quality', stas[i]['quality']);
  80. if (stas[i]['encryption']['enabled']) {
  81. sta.setAttribute('data-enc', 'wpa2');
  82. } else {
  83. sta.setAttribute('data-enc', 'false');
  84. }
  85. sta.innerHTML = stas[i]['ssid'];
  86. wanssid.appendChild(sta);
  87. }
  88. }
  89. // console.log(res);
  90. });
  91. }
  92. function ajaxReq(url, method, data, callback) {
  93. var xmlDoc = new XMLHttpRequest();
  94. xmlDoc.open(url, method, true);
  95. if (method == 'POST') {
  96. xmlDoc.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  97. }
  98. xmlDoc.onreadystatechange = function() {
  99. if (xmlDoc.readyState === 4 && xmlDoc.status === 200) {
  100. callback(xmlDoc);
  101. }
  102. }
  103. xmlDoc.send(data);
  104. }
  105. /*
  106. function formChange() {
  107. if (document.activeElement.tagName.toLowerCase() != 'select') {
  108. console.log('not select');
  109. return false;
  110. }
  111. aElem = document.activeElement;
  112. aParent = aElem.parentElement;
  113. sOpt = aElem[aElem.selectedIndex];
  114. console.log(aElem.id + sOpt.id);
  115. if (aElem.id + sOpt.id == 'wanprotostat') {
  116. document.getElementById('wanaddr').setAttribute('class','show');
  117. }
  118. if (aElem.id + sOpt.id == 'wanprotodhcp') {
  119. document.getElementById('wanaddr').setAttribute('class','hide');
  120. }
  121. if (aElem.id + sOpt.id == 'wanifnamewlan') {
  122. document.getElementById('wanwifi').setAttribute('class','show');
  123. }
  124. if (aElem.id + sOpt.id == 'wanifnameeth') {
  125. document.getElementById('wanwifi').setAttribute('class','hide');
  126. }
  127. };
  128. */