123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- <!-- HTTP_HEAD -->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/>
- <title>{v}</title>
- <!-- /HTTP_HEAD -->
- <!-- HTTP_STYLE -->
- <style>
- :root{
- /* CSS VARIABLE THEME COLOR */
- /*--primarycolor:#9933CC;*/
- --primarycolor:#1fa3ec;
- }
- body.invert,
- body.invert a,
- body.invert h1 {
- background-color:#060606;
- color:white;
- }
- body.invert .msg{
- background-color: #282828;
- border-top: 1px solid #555;
- border-right: 1px solid #555;
- border-bottom: 1px solid #555;
- color:#fff;
- }
- body.invert .q[role=img] {
- -webkit-filter: invert(1);
- filter: invert(1);
- }
- .c,
- body {
- text-align: center;
- font-family: verdana
- }
- .wrap {
- text-align:left;
- display:inline-block;
- min-width:260px;
- max-width:500px;
- }
- div,
- input {
- padding: 5px;
- font-size: 1em;
- /*width: 100%;*/
- margin:5px 0;
- box-sizing: border-box;
- }
- input,button,.msg{
- border-radius:.3rem;
- width: 100%;
- }
- button,input[type="button"],input[type="submit"] {
- border: 0;
- background-color: var(--primarycolor);
- color: #fff;
- line-height: 2.4rem;
- font-size: 1.2rem;
- }
- input[type="file"]{
- border: 1px solid var(--primarycolor);
- }
- a {
- color: #000;
- font-weight: 700;
- text-decoration: none;
- }
- a:hover {
- color: var(--primarycolor);
- text-decoration: underline;
- }
- .h {
- display: none;
- }
- .q {
- height: 16px;
- margin: 0;
- padding: 0 5px;
- text-align: right;
- min-width: 38px;
- float:right;
- }
- .q.q-0:after {
- background-position-x: 0;
- }
- .q.q-1:after {
- background-position-x: -16px;
- }
- .q.q-2:after {
- background-position-x: -32px;
- }
- .q.q-3:after {
- background-position-x: -48px;
- }
- .q.q-4:after {
- background-position-x: -64px;
- }
- .q.l:before {
- background-position-x: -80px;
- padding-right: 5px
- }
- .ql .q {
- float: left;
- }
- .q:after,
- .q:before {
- content: '';width:16px;height:16px;display:inline-block;background-repeat:no-repeat;background-position: 16px 0;
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQCAMAAADeZIrLAAAAJFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHJj5lAAAAC3RSTlMAIjN3iJmqu8zd7vF8pzcAAABsSURBVHja7Y1BCsAwCASNSVo3/v+/BUEiXnIoXkoX5jAQMxTHzK9cVSnvDxwD8bFx8PhZ9q8FmghXBhqA1faxk92PsxvRc2CCCFdhQCbRkLoAQ3q/wWUBqG35ZxtVzW4Ed6LngPyBU2CobdIDQ5oPWI5nCUwAAAAASUVORK5CYII=');
- }
- @media (-webkit-min-device-pixel-ratio: 2),
- (min-resolution: 192dpi) {
- .q:before,
- .q:after {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAAgCAMAAACfM+KhAAAALVBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAESIzRGZ3iJmqu8zd7gKjCLQAAACmSURBVHgB7dDBCoMwEEXRmKlVY3L//3NLhyzqIqSUggy8uxnhCR5Mo8xLt+14aZ7wwgsvvPA/ofv9+44334UXXngvb6XsFhO/VoC2RsSv9J7x8BnYLW+AjT56ud/uePMdb7IP8Bsc/e7h8Cfk912ghsNXWPpDC4hvN+D1560A1QPORyh84VKLjjdvfPFm++i9EWq0348XXnjhhT+4dIbCW+WjZim9AKk4UZMnnCEuAAAAAElFTkSuQmCC');
- background-size: 95px 16px;
- }
- }
- .msg {
- padding: 20px;
- margin: 20px 0;
- border: 1px solid #eee;
- border-left-width: 5px;
- border-left-color: #777;
- }
- .msg h4 {
- margin-top: 0;
- margin-bottom: 5px;
- }
- .msg.P {
- border-left-color: var(--primarycolor);
- }
- .msg.P h4 {
- color: var(--primarycolor);
- }
- /*.msg.S {
- border-left-color: #5cb85c;
- }
- .msg.S h4 {
- color: #5cb85c;
- }*/
- .msg.D {
- border-left-color: #dc3630;
- }
- .msg.D h4 {
- color: #dc3630;
- }
- dt {
- font-weight: bold;
- }
- dd {
- margin: 0;
- padding: 0 0 0.5em 0;
- }
- td {
- vertical-align: top;
- }
- button.D{
- background-color:#dc3630;
- }
- input:disabled {
- opacity: 0.5;
- }
- </style>
- <!-- /HTTP_STYLE -->
- <!-- HTTP_SCRIPT -->
- <script>
- function c(l){document.getElementById('s').value=l.innerText||l.textContent;
- p = l.nextElementSibling.classList.contains('l');
- document.getElementById('p').disabled = !p;
- if(p)document.getElementById('p').focus()};
- </script>
- <!-- /HTTP_SCRIPT -->
- <!-- HTTP_HEAD_END -->
- </head>
- <body class="invert">
- <div class='wrap'>
- <!-- <div class='wrap ql qinv'> -->
- <!-- /HTTP_HEAD_END -->
- <!-- SAMPLE -->
- <h2>/</h2><hR>
- <!-- /SAMPLE -->
- <!-- HTTP_PORTAL_OPTIONS -->
- <!-- /HTTP_PORTAL_OPTIONS -->
- <!-- HTTP_PORTAL_MENU[] -->
- <form action='/wifi' method='get'><button>Configure WiFi</button></form><br/>
- <form action='/0wifi' method='get'><button>Configure WiFi (No Scan)</button></form><br/>
- <form action='/info' method='get'><button>Info</button></form><br/>
- <form action='/param' method='get'><button>Setup</button></form><br/>
- <Hr><br/>
- <form action='/close' method='post'><button>Close</button></form><br/>
- <form action='/erase' method='post'><button class='D'>Erase</button></form><br/>
- <form action='/restart' method='post'><button>Restart</button></form><br/>
- <form action='/exit' method='post'><button>Exit</button></form><br/>
- <!-- /HTTP_PORTAL_MENU -->
- <!-- SAMPLE -->
- <h2>/wifi</h2><hr>
- <div><a href='#p' onclick='c(this)'>Acccess Point 01</a><div role='img' aria-label='88%' title='88%' class='q q-4 l'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 02</a><div role='img' aria-label='88%' title='88%' class='q q-4'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 03</a><div role='img' aria-label='60%' title='60%' class='q q-3 l'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 04</a><div role='img' aria-label='60%' title='60%' class='q q-3'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 05</a><div role='img' aria-label='60%' title='60%' class='q q-3'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 06</a><div role='img' aria-label='40%' title='40%' class='q q-2'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 07</a><div role='img' aria-label='40%' title='40%' class='q q-2 l'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 08</a><div role='img' aria-label='20%' title='20%' class='q q-1'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 09</a><div role='img' aria-label='20%' title='20%' class='q q-1'></div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 10</a><div role='img' aria-label='20%' title='20%' class='q q-4 l'></div><div class='q '>100%</div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 11</a><div role='img' aria-label='10%' title='10%' class='q q-3'></div><div class='q '>70%</div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 12</a><div role='img' aria-label='10%' title='10%' class='q q-1 l'></div><div class='q '>10%</div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 13</a><div role='img' aria-label='10%' title='10%' class='q q-0 h'></div><div class='q '>100%</div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 14</a><div class='q'>66%</div></div>
- <div><a href='#p' onclick='c(this)'>Acccess Point 15</a><div class='q'>56%</div></div>
- <!-- /SAMPLE -->
- <!-- HTTP_ITEM -->
- <div><a href='#p' onclick='c(this)'>{v}</a><div role='img' aria-label='{r}%' title='{r}%' class='q q-{q} {i}'></div></div>
- <!-- /HTTP_ITEM -->
- <!-- HTTP_FORM_START -->
- <form method='get' action='wifisave'><label for='s'>SSID</label><br/><input id='s' name='s' length=32 placeholder='SSID'><br/><label for='p'>Password</label><input id='p' name='p' length=64 type='password' placeholder='password'><br/>
- <!-- /HTTP_FORM_START -->
- <!-- SAMPLE -->
- <h3>custom parameter</h3><hr>
- <br/><label for='custom'>Label for Custom Param</label>
- <br/><input id='custom' name='custom' length='255' placeholder='placeholder' value='' {c}>
- <!-- /SAMPLE -->
- <!-- HTTP_FORM_LABEL -->
- <br/><label for='{i}'>{p}</label>
- <!-- /HTTP_FORM_LABEL -->
- <!-- HTTP_FORM_PARAM -->
- <br/><input id='{i}' name='{n}' length='{l}' placeholder='{p}' value='{v}' {c}>
- <!-- /HTTP_FORM_PARAM -->
- <!-- HTTP_FORM_END -->
- <br/><button type='submit'>Save</button></form>
- <!-- /HTTP_FORM_END -->
- <!-- HTTP_SCAN_LINK -->
- <br/><form action='/wifi' method='get'><button>Refresh</button></form>
- <!-- /HTTP_SCAN_LINK -->
- <!-- HTTP_SAVED -->
- <div class='msg'><h4>Saving Credentials</h4>Trying to connect ESP to network.<br />If it fails reconnect to AP to try again</div>
- <!-- /HTTP_SAVED -->
- <!-- HTTP_STATUS_ON -->
- <div class='msg P'><strong>Connected</strong> to {v}<br/><em><small>with IP {i}</small></em></div>
- <!-- /HTTP_STATUS_ON -->
- <!-- HTTP_STATUS_OFF -->
- <div class='msg {c}'><strong>Not Connected</strong> to {v}{r}</div>
- <!-- /HTTP_STATUS_OFF -->
- <!-- sample -->
- <div class='msg D'><strong>Not Connected</strong> to apname
- <!-- /sample -->
- <!-- HTTP_STATUS_OFFPW -->
- <br/>Authentication Failure
- <!-- /HTTP_STATUS_OFFPW -->
- <!-- HTTP_STATUS_OFFNOAP -->
- <br/>AP not found
- <!-- /HTTP_STATUS_OFFNOAP -->
- <!-- HTTP_STATUS_OFFFAIL -->
- <br/>Could not Connect
- <!-- /HTTP_STATUS_OFFFAIL -->
- </div>
- <!-- HTTP_STATUS_NONE -->
- <div class='msg'>No AP set</div>
- <!-- /HTTP_STATUS_NONE -->
- <!-- SAMPLE -->
- <div class='msg P'><h4>H4 Color Header</h4>content</div>
- <!-- /SAMPLE -->
- <!-- SAMPLE -->
- <h2>/info</h3><hr>
- <dl>
- <dt>Chip ID</dt><dd>123456</dd>
- <dt>Flash Chip ID</dt><dd>1234556</dd>
- <dt>IDE Flash Size</dt><dd>4194304 bytes</dd>
- <dt>Real Flash Size</dt><dd>4194304 bytes</dd>
- <dt>Empty</dt><dd></dd>
- <dt>Soft AP IP</dt><dd>192.168.4.1</dd>
- <dt>Soft AP MAC</dt><dd>00:00:00:00:00:00</dd>
- <dt>Station MAC</dt><dd>00:00:00:00:00:00</dd>
- </dl>
- <!-- /SAMPLE -->
- <!-- HTTP_HELP -->
- <br/><h3>Available Pages</h3><hr>
- <table class='table'>
- <thead><tr><th>Page</th><th>Function</th></tr></thead><tbody>
- <tr><td><a href='/'>/</a></td>
- <td>Menu page.</td></tr>
- <tr><td><a href='/wifi'>/wifi</a></td>
- <td>Show WiFi scan results and enter WiFi configuration.(/0wifi noscan)</td></tr>
- <tr><td><a href='/wifisave'>/wifisave</a></td>
- <td>Save WiFi configuration information and configure device. Needs variables supplied.</td></tr>
- <tr><td><a href='/close'>/close</a></td>
- <td>Close the configuration server and configuration WiFi network.</td></tr>
- <tr><td><a href='/info'>/info</a></td>
- <td>Information page</td></tr>
- <tr><td><a href='/close'>/close</a></td>
- <td>Close the captiveportal popup,configportal will remain active</td></tr>
- <tr><td><a href='/exit'>/exit</a></td>
- <td>Exit Config Portal, configportal will close</td></tr>
- <tr><td><a href='/restart'>/restart</a></td>
- <td>Reboot the device</td></tr>
- <tr><td><a href='/erase'>/erase</a></td>
- <td>Erase WiFi configuration and reboot Device. Device will not reconnect to a network until new WiFi configuration data is entered.</td></tr>
- </table>
- <p/>More information about WiFiManager at <a href='https://github.com/tzapu/WiFiManager'>https://github.com/tzapu/WiFiManager</a>
- <!-- /HTTP_HELP -->
- <!-- FORM_UPLOAD -->
- <Br/><br/>Form UPLOAD<br/><form method='POST' action='u' enctype='multipart/form-data'><input type='file' name='update' accept='.bin,application/octet-stream'><button type='submit' value='Submit'>Submit</button></form>
- <!-- /FORM_UPLOAD -->
- <!-- HTTP_END -->
- </div>
- </body>
- </html>
- <!-- /HTTP_END -->
|