Advertisement
nephalim

config_html.h

Oct 23rd, 2021 (edited)
604
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.97 KB | None | 0 0
  1. // config.html file in raw data format for PROGMEM
  2. //
  3. const char config_html[] PROGMEM = R"=====(
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7.  <title>Налаштування ESP-radio</title>
  8.  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  9.  <link rel="Shortcut Icon" type="image/ico" href="favicon.ico">
  10.  <script>
  11.  function changeBgImg()
  12.  {
  13.  let oint = Math.floor(1 + Math.random() * 114);
  14.  if(oint < 10) oint = "00"+ oint;
  15.  if(oint > 9 && oint < 100) oint = "0"+ oint;
  16.  oint = "url('http://imz-11.narod.ru/angelina_jolie/"+oint+".jpg')";
  17.  var block = document.getElementById('bee');
  18.  block.style.backgroundImage = oint;
  19.  }
  20.  </script>
  21. </head>
  22. <body id="bee">
  23.  <ul>
  24.   <li><a class="pull-left" href="/index.html">ESP Radio</a></li>
  25.   <li><a class="pull-left active" href="/config.html">Налаштування</a></li>
  26.   <li><a class="pull-left" href="/about.html">Про програму</a></li>
  27.  </ul>
  28.  <br><br><br>
  29.  <center>
  30.   <h1>**ESP Radio:: Налаштування**</h1>
  31.   <p style="margin-top:10px;color: white;text-shadow: 2px 2px 2px black;">Ви можете змінювати налаштування шляхом правки цього INI файлу. <i>Після редагування варто перезавантажити ESP Radio.</i></p>
  32.   <h4 style="margin-top:10px;color: white;text-shadow: 2px 2px 2px black;">Наявні WiFi мережі</h4>
  33.   <select class="select" id="ssid"></select>
  34.   <br><br>
  35.   <textarea rows="25" cols="100" id="inifile" style="color: white;text-shadow: 2px 2px 2px black;">Простір для INI файлу</textarea>
  36.   <br><br>
  37.   <button class="button" onclick="fsav()">Зберегти</button>
  38.   &nbsp;&nbsp;
  39.   <button class="button buttonr" onclick="httpGet('reset')" title="УВАГА! У ESP8266 є баг, при якому вона зависає при спробі&#013;перезавантажити її використовуючи веб інтерфейс.&#013;То ж не забудьте продублювати перезавантаження&#013;апаратними засобами або відповідною командою reset&#013;через послідовний COM порт!">Перезавантажити пристрій</button>
  40.    <form action="#" onsubmit="return uploadfile(this);" enctype="multipart/form-data" method="post" name="fileinfo" class="uploadfileform">
  41.      <h4 style="margin-top:0;color: white;text-shadow: 2px 2px 2px black;">Завантажити файл:</h4>
  42.      <input type="file" name="file" size="50" />
  43.      <input type="submit" class="button" value="Відправити" title="УВАГА! Після завантаження файлу у файловий простір&#013;можливе зависання ESP8266 на етапі супроводжуючого перезавантаження.&#013;То ж не забудьте продублювати перезавантаження апаратними засобами,&#013;або подачею відповідної команди reset&#013;через послідовний COM порт.">
  44.     </form>
  45.     <br><input type="text" size="80" id="resultstr" placeholder=" Введіть команду...." style="width:570px;" onclick="resultstr.value=''" /><button class="button buttonr" onclick="httpGet(resultstr.value)" title="preset     = 12&#013;preset_00  = <mp3 stream>&#013;volume     = 95&#013;upvolume   = 2&#013;downvolume = 2&#013;toneha     = <0..15>&#013;tonehf     = <0..15>&#013;tonela     = <0..15>&#013;tonelf     = <0..15>&#013;station    = <mp3 stream>&#013;station    = <URL>.mp3&#013;station    = <URL>.m3u&#013;stop&#013;resume&#013;mute&#013;unmute&#013;wifi_00    = mySSID/mypassword&#013;mqttbroker = mybroker.com&#013;mqttport   = 1883&#013;mqttuser   = myuser&#013;mqttpasswd = mypassword&#013;mqtttopic  = mytopic&#013;mqttpubtopic = mypubtopic&#013;status&#013;testfile = <file on SPIFFS>&#013;test&#013;debug = 0 or 1&#013;reset&#013;analog">Виконати команду</button>
  46.  
  47.     <script>
  48.       function httpGet ( theReq )
  49.       {
  50.         var theUrl = "/?" + theReq + "&version=" + Math.random() ;
  51.         var xhr = new XMLHttpRequest() ;
  52.         xhr.onreadystatechange = function() {
  53.           if ( xhr.readyState == XMLHttpRequest.DONE )
  54.           {
  55.             resultstr.value = xhr.responseText ;
  56.           }
  57.         }
  58.         xhr.open ( "GET", theUrl, false ) ;
  59.         xhr.send() ;
  60.       }
  61.  
  62.  
  63.       function fsav()
  64.       {
  65.         var theUrl = "/?save=0" ;
  66.         var xhr = new XMLHttpRequest() ;
  67.         xhr.onreadystatechange = function() {
  68.           if ( xhr.readyState == XMLHttpRequest.DONE )
  69.           {
  70.             resultstr.value = xhr.responseText ;
  71.           }
  72.         }
  73.         xhr.open ( "POST", theUrl, true ) ;
  74.         xhr.setRequestHeader ( "Content-type", "application/x-www-form-urlencoded" ) ;
  75.         xhr.send ( "content=" + inifile.value ) ;
  76.       }
  77.  
  78.  
  79.       function uploadfile ( theForm )
  80.       {
  81.         var oData, oReq ;
  82.  
  83.         oData = new FormData ( fileinfo ) ;
  84.         oReq = new XMLHttpRequest() ;
  85.  
  86.         oReq.open ( "POST", "/upload", true ) ;
  87.         oReq.onload = function ( oEvent ) {
  88.           if ( oReq.status == 200 )
  89.           {
  90.             resultstr.value = oReq.responseText ;
  91.           }
  92.           else
  93.           {
  94.             resultstr.value = "Error " + oReq.statusText ;
  95.           }
  96.         }
  97.         oReq.send ( oData ) ;
  98.         return false ;
  99.       }
  100.  
  101.       // Fill configuration initially
  102.       // First the available WiFi networks
  103.       var i, select, opt, networks, params ;
  104.  
  105.       select = document.getElementById("selnet") ;
  106.       var theUrl = "/?getnetworks=0" + "&version=" + Math.random() ;
  107.       var xhr = new XMLHttpRequest() ;
  108.       xhr.onreadystatechange = function() {
  109.         if ( xhr.readyState == XMLHttpRequest.DONE )
  110.         {
  111.           networks = xhr.responseText.split ( "|" ) ;
  112.          
  113.           for ( i = 0 ; i < ( networks.length - 1 ) ; i++ )
  114.           {
  115.             opt = document.createElement( "OPTION" ) ;
  116.             opt.value = i ;
  117.             opt.text = networks[i] ;
  118.             opt.style.backgroundColor = "black";
  119.             ssid.add( opt ) ;
  120.           }
  121.           changeBgImg();
  122.         }
  123.       }
  124.       xhr.open ( "GET", theUrl, false ) ;
  125.       xhr.send() ;
  126.  
  127.       // Now get the configuration parameters from radio.ini
  128.       theUrl = "/radio.ini" ;
  129.       xhr.onreadystatechange = function() {
  130.         if ( xhr.readyState == XMLHttpRequest.DONE )
  131.         {
  132.           inifile.value = xhr.responseText ;
  133.         }
  134.       }
  135.       xhr.open ( "GET", theUrl, false ) ;
  136.       xhr.send() ;
  137.     </script>
  138.     <script type="text/javascript">
  139.       var stylesheet = document.createElement('link') ;
  140.       stylesheet.href = 'radio.css' ;
  141.       stylesheet.rel = 'stylesheet' ;
  142.       stylesheet.type = 'text/css' ;
  143.       document.getElementsByTagName('head')[0].appendChild(stylesheet) ;
  144.     </script>
  145.   </body>
  146. </html>
  147. )=====" ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement