index_html.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #pragma once
  2. #include <pgmspace.h>
  3. static const char INDEX_HTML[] PROGMEM = R"HTML(
  4. <!doctype html>
  5. <html lang="en-AU">
  6. <head>
  7. <meta charset="utf-8">
  8. <meta name="viewport" content="width=device-width, initial-scale=1">
  9. <link rel="icon" type="image/x-icon" href="/favicon.ico">
  10. <link rel="stylesheet" href="yeti-bootstrap.min.css">
  11. <link rel="stylesheet" href="font-awesome.min.css">
  12. <script src="jquery-3.7.1.slim.min.js" crossorigin="anonymous"></script>
  13. <title>Modulos EEPROM Uploader</title>
  14. <style>
  15. @font-face {
  16. font-family: 'nasalization';
  17. src: url('/nasalization-rg.woff2') format('woff2');
  18. }
  19. .nasalization { font-family: 'nasalization'; }
  20. </style>
  21. </head>
  22. <body class="bg-light" style="padding-top: 5rem;">
  23. <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  24. <div class="container">
  25. <a class="navbar-brand nasalization text-uppercase" href="#">
  26. <img src="/logo-horizontal.webp" height="30" class="d-inline-block align-top" loading="lazy">
  27. </a>
  28. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
  29. <span class="navbar-toggler-icon"></span>
  30. </button>
  31. <div class="collapse navbar-collapse" id="navbarText">
  32. <span class="col align-self-end text-end text-white">
  33. <span>{{IP}}</span>
  34. <i class="text-success fas fa-wifi"></i>
  35. <!--<i class="fas fa-network-wired"></i>-->
  36. <!--<i class="fas fa-diagram-project"></i>-->
  37. </span>
  38. </div>
  39. </div>
  40. </nav>
  41. <div class="container">
  42. <div class="row">
  43. <div class="col-sm">
  44. <h2 class="text-center pt-2 font-weight-bold" id="title">Modulos EEPROM Uploader (24C256)</h2>
  45. </div>
  46. </div>
  47. <div class="row font-weight-bold border-top border-bottom">
  48. <p>EEPROM I2C: 0x50, Size: 32768 bytes, Page: 64 bytes</p>
  49. <form method="POST" action="/upload" enctype="multipart/form-data">
  50. <div class="mb-3">
  51. <input class="form-control" type="file" name="bin" required>
  52. </div>
  53. <div class="mb-3 form-check">
  54. <input class="form-check-input" type="checkbox" name="verify" value="1" checked>
  55. <label class="form-check-label">Verify after write (CRC32)</label>
  56. </div>
  57. <button style="background-color:#114378;border-color:#114378;color:#e8b434;"
  58. type="submit" class="btn">Upload and Program</button>
  59. </form>
  60. <p><a href="/status">Status</a></p>
  61. </div>
  62. </div>
  63. <footer class="fixed-bottom mt-auto py-3 border-top bg-dark">
  64. <div class="container">
  65. <p class="text-white text-center mb-0">
  66. Copyright &copy; <span id="year"></span> - Modulos Audio - DSP Controller - All Rights Reserved
  67. </p>
  68. <script>document.getElementById('year').innerHTML = new Date().getFullYear();</script>
  69. </div>
  70. </footer>
  71. <script src="/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
  72. </body>
  73. </html>
  74. )HTML";