header.php 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Map Generator</title>
  7. <?php AssetLoader::loadCSS(['/assets/bootstrap.min.css', '/assets/bootstrap-icons.min.css']); ?>
  8. <style>
  9. /* Header fixe */
  10. #global-header {
  11. position: fixed;
  12. top: 0;
  13. left: 0;
  14. right: 0;
  15. z-index: 1030;
  16. }
  17. .sidebar {
  18. position: fixed;
  19. top: 56px; /* Hauteur de la navbar */
  20. left: 0;
  21. width: 250px;
  22. height: calc(100vh - 56px);
  23. background-color: #343a40;
  24. color: white;
  25. overflow-y: auto;
  26. z-index: 1000;
  27. }
  28. .main-content {
  29. margin-left: 250px;
  30. margin-top: 76px; /* Espace pour le header fixe + padding */
  31. padding-top: 20px;
  32. }
  33. .sidebar .nav-link {
  34. color: rgba(255, 255, 255, 0.75);
  35. padding: 10px 20px;
  36. }
  37. .sidebar .nav-link:hover {
  38. color: white;
  39. background-color: rgba(255, 255, 255, 0.1);
  40. }
  41. .sidebar .nav-link.active {
  42. color: white;
  43. background-color: #0d6efd;
  44. }
  45. .tool-group {
  46. border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  47. margin-bottom: 10px;
  48. padding-bottom: 10px;
  49. }
  50. .tool-group h6 {
  51. color: rgba(255, 255, 255, 0.6);
  52. text-transform: uppercase;
  53. font-size: 0.8rem;
  54. margin: 15px 20px 5px 20px;
  55. }
  56. .canvas-container {
  57. position: relative;
  58. border-radius: 8px;
  59. overflow: hidden;
  60. }
  61. .tool-active {
  62. background-color: #0d6efd !important;
  63. color: white !important;
  64. }
  65. .color-swatch.selected {
  66. border: 2px solid white !important;
  67. }
  68. .layer-item {
  69. background-color: rgba(255, 255, 255, 0.05);
  70. border-radius: 4px;
  71. margin-bottom: 2px;
  72. }
  73. .layer-item:hover {
  74. background-color: rgba(255, 255, 255, 0.1);
  75. }
  76. </style>
  77. </head>
  78. <body>
  79. <header id="global-header">
  80. <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  81. <div class="container-fluid">
  82. <a class="navbar-brand" href="#">
  83. <i class="bi bi-geo-alt-fill me-2"></i>
  84. Map Generator
  85. </a>
  86. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
  87. <span class="navbar-toggler-icon"></span>
  88. </button>
  89. <div class="collapse navbar-collapse" id="navbarNav">
  90. <ul class="navbar-nav ms-auto">
  91. <li class="nav-item">
  92. <a class="nav-link" href="#" id="saveBtn">
  93. <i class="bi bi-save me-1"></i>Sauvegarder
  94. </a>
  95. </li>
  96. <li class="nav-item">
  97. <a class="nav-link" href="#" id="exportBtn">
  98. <i class="bi bi-download me-1"></i>Exporter
  99. </a>
  100. </li>
  101. <li class="nav-item dropdown">
  102. <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  103. <i class="bi bi-gear me-1"></i>Paramètres
  104. </a>
  105. <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
  106. <li><a class="dropdown-item" href="#">Préférences</a></li>
  107. <li><a class="dropdown-item" href="#">Raccourcis</a></li>
  108. <li><hr class="dropdown-divider"></li>
  109. <li><a class="dropdown-item" href="#">À propos</a></li>
  110. </ul>
  111. </li>
  112. </ul>
  113. </div>
  114. </div>
  115. </nav>
  116. </header>
  117. <!-- Barre latérale des outils -->
  118. <div class="sidebar">
  119. <nav class="nav flex-column">
  120. <!-- Gestion des projets -->
  121. <div class="tool-group">
  122. <h6><i class="bi bi-folder me-1"></i>Projet</h6>
  123. <a class="nav-link" href="#" id="newMap">
  124. <i class="bi bi-plus-circle me-2"></i>Nouvelle carte
  125. </a>
  126. <a class="nav-link" href="#" id="openMap">
  127. <i class="bi bi-folder-open me-2"></i>Ouvrir carte
  128. </a>
  129. <a class="nav-link" href="#" id="saveProject">
  130. <i class="bi bi-save me-2"></i>Sauvegarder projet
  131. </a>
  132. </div>
  133. <!-- Outils de dessin -->
  134. <div class="tool-group">
  135. <h6><i class="bi bi-brush me-1"></i>Outils</h6>
  136. <a class="nav-link active" href="#" id="brushTool">
  137. <i class="bi bi-brush me-2"></i>Pinceau
  138. </a>
  139. <a class="nav-link" href="#" id="eraserTool">
  140. <i class="bi bi-eraser me-2"></i>Gomme
  141. </a>
  142. <a class="nav-link" href="#" id="fillTool">
  143. <i class="bi bi-paint-bucket me-2"></i>Remplissage
  144. </a>
  145. <a class="nav-link" href="#" id="lineTool">
  146. <i class="bi bi-dash me-2"></i>Ligne
  147. </a>
  148. <a class="nav-link" href="#" id="rectangleTool">
  149. <i class="bi bi-square me-2"></i>Rectangle
  150. </a>
  151. <a class="nav-link" href="#" id="circleTool">
  152. <i class="bi bi-circle me-2"></i>Cercle
  153. </a>
  154. <a class="nav-link" href="#" id="selectTool">
  155. <i class="bi bi-cursor me-2"></i>Sélection
  156. </a>
  157. </div>
  158. <!-- Palette de couleurs -->
  159. <div class="tool-group">
  160. <h6><i class="bi bi-palette me-1"></i>Couleurs</h6>
  161. <div class="px-3">
  162. <div class="color-palette d-flex flex-wrap gap-1 mb-2">
  163. <div class="color-swatch" style="background-color: #000000; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Noir"></div>
  164. <div class="color-swatch" style="background-color: #ffffff; width: 20px; height: 20px; border-radius: 3px; border: 1px solid #ccc; cursor: pointer;" title="Blanc"></div>
  165. <div class="color-swatch" style="background-color: #ff0000; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Rouge"></div>
  166. <div class="color-swatch" style="background-color: #00ff00; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Vert"></div>
  167. <div class="color-swatch" style="background-color: #0000ff; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Bleu"></div>
  168. <div class="color-swatch" style="background-color: #ffff00; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Jaune"></div>
  169. <div class="color-swatch" style="background-color: #ff00ff; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Magenta"></div>
  170. <div class="color-swatch" style="background-color: #00ffff; width: 20px; height: 20px; border-radius: 3px; cursor: pointer;" title="Cyan"></div>
  171. </div>
  172. <input type="color" class="form-control form-control-sm" id="customColor" value="#000000">
  173. </div>
  174. </div>
  175. <!-- Calques -->
  176. <div class="tool-group">
  177. <h6><i class="bi bi-layers me-1"></i>Calques</h6>
  178. <div class="px-3">
  179. <button class="btn btn-outline-light btn-sm w-100 mb-2" id="addLayer">
  180. <i class="bi bi-plus me-1"></i>Ajouter calque
  181. </button>
  182. <div id="layersList">
  183. <div class="layer-item d-flex align-items-center justify-content-between p-1">
  184. <span>Calque 1</span>
  185. <div>
  186. <i class="bi bi-eye me-1" style="cursor: pointer;"></i>
  187. <i class="bi bi-trash" style="cursor: pointer;"></i>
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. <!-- Outils avancés -->
  194. <div class="tool-group">
  195. <h6><i class="bi bi-tools me-1"></i>Avancé</h6>
  196. <a class="nav-link" href="#" id="zoomIn">
  197. <i class="bi bi-zoom-in me-2"></i>Zoom +
  198. </a>
  199. <a class="nav-link" href="#" id="zoomOut">
  200. <i class="bi bi-zoom-out me-2"></i>Zoom -
  201. </a>
  202. <a class="nav-link" href="#" id="gridToggle">
  203. <i class="bi bi-grid me-2"></i>Grille
  204. </a>
  205. <a class="nav-link" href="#" id="undoBtn">
  206. <i class="bi bi-arrow-counterclockwise me-2"></i>Annuler
  207. </a>
  208. <a class="nav-link" href="#" id="redoBtn">
  209. <i class="bi bi-arrow-clockwise me-2"></i>Rétablir
  210. </a>
  211. </div>
  212. </nav>
  213. </div>
  214. <div class="main-content">
  215. <!-- Contenu principal de l'application -->
  216. </div>
  217. <?php AssetLoader::loadJS(['/assets/bootstrap.bundle.min.js']); ?>
  218. </body>
  219. </html>