fix(admin): remove stale unauthenticated static admin mockups
All checks were successful
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 23s
CI / secret-scan (pull_request) Successful in 9s
CI / php-lint (pull_request) Successful in 19s
CI / static-tests (push) Successful in 33s
CI / static-tests (pull_request) Successful in 32s
CI / auto-merge (push) Has been skipped
CI / auto-merge (pull_request) Successful in 4s
All checks were successful
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 23s
CI / secret-scan (pull_request) Successful in 9s
CI / php-lint (pull_request) Successful in 19s
CI / static-tests (push) Successful in 33s
CI / static-tests (pull_request) Successful in 32s
CI / auto-merge (push) Has been skipped
CI / auto-merge (pull_request) Successful in 4s
Les 6 pages .html du back-office (dashboard, users, catalogue, commandes, cuisine, login) etaient des maquettes statiques de la demo de mai, restees dans le docroot du vhost admin. Apache les servait telles quelles (RewriteCond !-f -> pas de reecriture vers index.php), donc HORS SessionGuard : information disclosure (structure du back-office, libelles, page utilisateurs) accessible sans authentification, en contradiction avec la posture security-by-design. Elles sont superseded par les pages PHP rendues serveur et gardees (P3 : /admin/dashboard, /admin/categories, /admin/products, /admin/profile/pin). Les maquettes ne se liaient qu'entre elles (ilot mort) : aucun lien entrant cote PHP/JS/CSS. La ligne d'exemple de docs/api/conventions.md qui citait login.html est corrigee (assets/ servis tels quels).
This commit is contained in:
parent
ad5203d3fc
commit
92731c8b59
7 changed files with 1 additions and 1577 deletions
|
|
@ -29,7 +29,7 @@ Client (borne / navigateur back-office)
|
|||
-> wakdo-web (Apache, vhost selon le Host)
|
||||
- vhost kiosk : DocumentRoot src/public/borne (statique + futur appel /api)
|
||||
- vhost admin : DocumentRoot src/public/admin
|
||||
- fichier existant (login.html, *.css) : servi tel quel
|
||||
- fichier existant (assets/ : css, js, images) : servi tel quel
|
||||
- sinon RewriteRule -> index.php (front controller)
|
||||
-> wakdo-app (PHP-FPM, via proxy FastCGI sur *.php)
|
||||
front controller -> Router -> Controller -> Response
|
||||
|
|
|
|||
|
|
@ -1,306 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Catalogue — Wakdo Admin</title>
|
||||
<link rel="stylesheet" href="assets/css/admin.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="admin-layout">
|
||||
|
||||
<!-- Topbar -->
|
||||
<header class="topbar">
|
||||
<div class="topbar-logo">
|
||||
<img src="assets/images/logo.png" alt="Wakdo">
|
||||
<div>
|
||||
<span class="topbar-logo-text">Wakdo</span>
|
||||
<span class="topbar-logo-sub">Administration</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topbar-search">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="Rechercher un produit, une categorie...">
|
||||
</div>
|
||||
<div class="topbar-actions">
|
||||
<div class="topbar-user">
|
||||
<button class="topbar-user-btn" id="userMenuBtn" type="button">
|
||||
<div class="topbar-user-avatar">CJ</div>
|
||||
<div>
|
||||
<div class="topbar-user-name">Corentin J.</div>
|
||||
<div class="topbar-user-role">Administrateur</div>
|
||||
</div>
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
|
||||
</button>
|
||||
<div class="dropdown-menu" id="userMenu">
|
||||
<a href="#">Mon profil</a>
|
||||
<a href="#">Parametres</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Se deconnecter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Vue d'ensemble</div>
|
||||
<a href="dashboard.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect></svg>
|
||||
Tableau de bord
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Catalogue</div>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub active">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
|
||||
Categories
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
|
||||
Produits
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"></path><rect x="9" y="3" width="6" height="4" rx="2"></rect></svg>
|
||||
Menus
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Operations</div>
|
||||
<a href="commandes.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>
|
||||
Commandes
|
||||
</a>
|
||||
<a href="cuisine.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
|
||||
Cuisine
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Administration</div>
|
||||
<a href="users.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
||||
Utilisateurs
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
|
||||
Roles
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"></path></svg>
|
||||
Parametres
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<main class="content">
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1 class="page-title">Catalogue</h1>
|
||||
<p class="page-subtitle">Categories, produits et menus disponibles sur la borne</p>
|
||||
</div>
|
||||
<div class="page-actions">
|
||||
<button class="btn btn-secondary" type="button">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="17 8 12 3 7 8"></polyline><line x1="12" y1="3" x2="12" y2="15"></line></svg>
|
||||
Importer
|
||||
</button>
|
||||
<button class="btn btn-primary" type="button">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
|
||||
Nouveau produit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tabs -->
|
||||
<div class="tabs">
|
||||
<button class="tab-btn" id="tabCategories" type="button">Categories (9)</button>
|
||||
<button class="tab-btn active" id="tabProduits" type="button">Produits (53)</button>
|
||||
<button class="tab-btn" id="tabMenus" type="button">Menus (13)</button>
|
||||
</div>
|
||||
|
||||
<!-- Panel: Produits (default) -->
|
||||
<div id="panelProduits" class="tab-panel active">
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-left">
|
||||
<div class="search-field">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="Rechercher un produit..." id="productSearch">
|
||||
</div>
|
||||
<select class="filter-select" id="categoryFilter">
|
||||
<option value="">Toutes les categories</option>
|
||||
<option value="burgers">Burgers</option>
|
||||
<option value="wraps">Wraps</option>
|
||||
<option value="salades">Salades</option>
|
||||
<option value="frites">Frites</option>
|
||||
<option value="boissons">Boissons</option>
|
||||
<option value="sauces">Sauces</option>
|
||||
<option value="desserts">Desserts</option>
|
||||
<option value="encas">Encas</option>
|
||||
</select>
|
||||
<select class="filter-select">
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="active">Disponible</option>
|
||||
<option value="inactive">Indisponible</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-container">
|
||||
<div class="table-wrapper">
|
||||
<table id="productTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:52px;">Image</th>
|
||||
<th class="sortable" data-col="1">Libelle <span class="sort-icon">↕</span></th>
|
||||
<th class="sortable" data-col="2">Categorie <span class="sort-icon">↕</span></th>
|
||||
<th class="sortable" data-col="3" style="text-align:right;">Prix <span class="sort-icon">↕</span></th>
|
||||
<th>Stock</th>
|
||||
<th style="width:50px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">Big Mac</td>
|
||||
<td class="muted">Burgers</td>
|
||||
<td class="text-right fw-600">6,00 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">Royal Bacon</td>
|
||||
<td class="muted">Burgers</td>
|
||||
<td class="text-right fw-600">5,10 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">CBO</td>
|
||||
<td class="muted">Burgers</td>
|
||||
<td class="text-right fw-600">8,90 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">MC Crispy</td>
|
||||
<td class="muted">Burgers</td>
|
||||
<td class="text-right fw-600">5,30 €</td>
|
||||
<td><span class="pill pill-danger">Indisponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Activer</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">Coca Cola</td>
|
||||
<td class="muted">Boissons</td>
|
||||
<td class="text-right fw-600">1,90 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">Moyenne Frite</td>
|
||||
<td class="muted">Frites</td>
|
||||
<td class="text-right fw-600">2,75 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">Ketchup</td>
|
||||
<td class="muted">Sauces</td>
|
||||
<td class="text-right fw-600">0,70 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="thumb-placeholder"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#9CA3AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></div></td>
|
||||
<td class="fw-600">Nuggets x4</td>
|
||||
<td class="muted">Encas</td>
|
||||
<td class="text-right fw-600">4,20 €</td>
|
||||
<td><span class="pill pill-success">Disponible</span></td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button><div class="divider"></div><button class="danger" type="button">Supprimer</button></div></div></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span class="pagination-info">Affichage de 8 sur 53 produits</span>
|
||||
<div class="pagination-controls">
|
||||
<button class="pagination-btn" disabled type="button">«</button>
|
||||
<button class="pagination-btn active" type="button">1</button>
|
||||
<button class="pagination-btn" type="button">2</button>
|
||||
<button class="pagination-btn" type="button">3</button>
|
||||
<button class="pagination-btn" type="button">4</button>
|
||||
<button class="pagination-btn" type="button">»</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Panel: Categories -->
|
||||
<div id="panelCategories" class="tab-panel">
|
||||
<div class="table-container">
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Libelle</th>
|
||||
<th>Produits</th>
|
||||
<th>Ordre affichage</th>
|
||||
<th>Statut</th>
|
||||
<th style="width:50px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td class="fw-600">Menus</td><td class="muted">13</td><td class="muted">1</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Burgers</td><td class="muted">13</td><td class="muted">2</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Wraps</td><td class="muted">4</td><td class="muted">3</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Salades</td><td class="muted">3</td><td class="muted">4</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Frites</td><td class="muted">5</td><td class="muted">5</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Boissons</td><td class="muted">8</td><td class="muted">6</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Desserts</td><td class="muted">9</td><td class="muted">7</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Encas</td><td class="muted">4</td><td class="muted">8</td><td><span class="pill pill-success">Visible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Masquer</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Sauces</td><td class="muted">7</td><td class="muted">9</td><td><span class="pill pill-neutral">Masquee</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Afficher</button></div></div></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Panel: Menus -->
|
||||
<div id="panelMenus" class="tab-panel">
|
||||
<div class="table-container">
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Libelle</th>
|
||||
<th style="text-align:right;">Prix</th>
|
||||
<th>Contenu</th>
|
||||
<th>Statut</th>
|
||||
<th style="width:50px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td class="fw-600">Menu Le 280</td><td class="text-right fw-600">8,80 €</td><td class="muted text-sm">Burger + Frites + Boisson + Sauce</td><td><span class="pill pill-success">Disponible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Menu Big Tasty</td><td class="text-right fw-600">10,60 €</td><td class="muted text-sm">Burger + Frites + Boisson + Sauce</td><td><span class="pill pill-success">Disponible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Menu Big Mac</td><td class="text-right fw-600">8,00 €</td><td class="muted text-sm">Burger + Frites + Boisson + Sauce</td><td><span class="pill pill-success">Disponible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Menu CBO</td><td class="text-right fw-600">10,90 €</td><td class="muted text-sm">Burger + Frites + Boisson + Sauce</td><td><span class="pill pill-success">Disponible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Menu Royal Cheese</td><td class="text-right fw-600">6,40 €</td><td class="muted text-sm">Burger + Frites + Boisson + Sauce</td><td><span class="pill pill-success">Disponible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Desactiver</button></div></div></td></tr>
|
||||
<tr><td class="fw-600">Menu Royal Bacon</td><td class="text-right fw-600">7,05 €</td><td class="muted text-sm">Burger + Frites + Boisson + Sauce</td><td><span class="pill pill-danger">Indisponible</span></td><td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Modifier</a><button type="button">Activer</button></div></div></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,254 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Commandes — Wakdo Admin</title>
|
||||
<link rel="stylesheet" href="assets/css/admin.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="admin-layout">
|
||||
|
||||
<!-- Topbar -->
|
||||
<header class="topbar">
|
||||
<div class="topbar-logo">
|
||||
<img src="assets/images/logo.png" alt="Wakdo">
|
||||
<div>
|
||||
<span class="topbar-logo-text">Wakdo</span>
|
||||
<span class="topbar-logo-sub">Administration</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topbar-search">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="N° commande, statut...">
|
||||
</div>
|
||||
<div class="topbar-actions">
|
||||
<div class="topbar-user">
|
||||
<button class="topbar-user-btn" id="userMenuBtn" type="button">
|
||||
<div class="topbar-user-avatar">CJ</div>
|
||||
<div>
|
||||
<div class="topbar-user-name">Corentin J.</div>
|
||||
<div class="topbar-user-role">Administrateur</div>
|
||||
</div>
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
|
||||
</button>
|
||||
<div class="dropdown-menu" id="userMenu">
|
||||
<a href="#">Mon profil</a>
|
||||
<a href="#">Parametres</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Se deconnecter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Vue d'ensemble</div>
|
||||
<a href="dashboard.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect></svg>
|
||||
Tableau de bord
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Catalogue</div>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
|
||||
Categories
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
|
||||
Produits
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"></path><rect x="9" y="3" width="6" height="4" rx="2"></rect></svg>
|
||||
Menus
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Operations</div>
|
||||
<a href="commandes.html" class="sidebar-item active">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>
|
||||
Commandes
|
||||
</a>
|
||||
<a href="cuisine.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
|
||||
Cuisine
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Administration</div>
|
||||
<a href="users.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
||||
Utilisateurs
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
|
||||
Roles
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"></path></svg>
|
||||
Parametres
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<main class="content">
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1 class="page-title">Commandes</h1>
|
||||
<p class="page-subtitle">Historique et suivi de toutes les commandes</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Filters -->
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-left">
|
||||
<div class="search-field">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="N° commande..." id="cmdSearch">
|
||||
</div>
|
||||
<select class="filter-select" id="statusFilter">
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="pending">En attente</option>
|
||||
<option value="paid">Payee</option>
|
||||
<option value="preparing">En preparation</option>
|
||||
<option value="ready">Prete</option>
|
||||
<option value="delivered">Livree</option>
|
||||
<option value="cancelled">Annulee</option>
|
||||
</select>
|
||||
<select class="filter-select">
|
||||
<option value="">Tous les modes</option>
|
||||
<option value="kiosk">Borne</option>
|
||||
<option value="counter">Comptoir</option>
|
||||
<option value="drive">Drive</option>
|
||||
</select>
|
||||
<select class="filter-select">
|
||||
<option value="today">Aujourd'hui</option>
|
||||
<option value="7d">7 derniers jours</option>
|
||||
<option value="30d">30 derniers jours</option>
|
||||
<option value="custom">Personnalise</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-container">
|
||||
<div class="table-wrapper">
|
||||
<table id="cmdTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sortable" data-col="0">N° <span class="sort-icon">↕</span></th>
|
||||
<th class="sortable" data-col="1">Date / Heure <span class="sort-icon">↕</span></th>
|
||||
<th>Mode</th>
|
||||
<th>Source</th>
|
||||
<th>Statut</th>
|
||||
<th style="text-align:center;">Lignes</th>
|
||||
<th class="sortable" data-col="6" style="text-align:right;">Total <span class="sort-icon">↕</span></th>
|
||||
<th style="width:50px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1087</td>
|
||||
<td class="muted">09/05/2026 13:42</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td class="muted text-sm">Borne</td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td style="text-align:center;" class="muted">3</td>
|
||||
<td class="text-right fw-600">18,70 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1086</td>
|
||||
<td class="muted">09/05/2026 13:38</td>
|
||||
<td><span class="pill pill-neutral">A emporter</span></td>
|
||||
<td class="muted text-sm">Comptoir</td>
|
||||
<td><span class="pill pill-warning">En preparation</span></td>
|
||||
<td style="text-align:center;" class="muted">5</td>
|
||||
<td class="text-right fw-600">24,30 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1085</td>
|
||||
<td class="muted">09/05/2026 13:31</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td class="muted text-sm">Borne</td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td style="text-align:center;" class="muted">2</td>
|
||||
<td class="text-right fw-600">11,40 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1084</td>
|
||||
<td class="muted">09/05/2026 13:27</td>
|
||||
<td><span class="pill pill-neutral">A emporter</span></td>
|
||||
<td class="muted text-sm">Drive</td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td style="text-align:center;" class="muted">2</td>
|
||||
<td class="text-right fw-600">8,80 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1083</td>
|
||||
<td class="muted">09/05/2026 13:19</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td class="muted text-sm">Borne</td>
|
||||
<td><span class="pill pill-neutral">Annulee</span></td>
|
||||
<td style="text-align:center;" class="muted">1</td>
|
||||
<td class="text-right muted">6,40 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1082</td>
|
||||
<td class="muted">09/05/2026 13:14</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td class="muted text-sm">Borne</td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td style="text-align:center;" class="muted">7</td>
|
||||
<td class="text-right fw-600">32,10 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1081</td>
|
||||
<td class="muted">09/05/2026 13:08</td>
|
||||
<td><span class="pill pill-neutral">A emporter</span></td>
|
||||
<td class="muted text-sm">Drive</td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td style="text-align:center;" class="muted">2</td>
|
||||
<td class="text-right fw-600">10,90 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1080</td>
|
||||
<td class="muted">09/05/2026 12:58</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td class="muted text-sm">Comptoir</td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td style="text-align:center;" class="muted">4</td>
|
||||
<td class="text-right fw-600">15,60 €</td>
|
||||
<td><div class="action-menu"><button class="action-menu-btn" type="button"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button><div class="action-menu-dropdown"><a href="#">Voir detail</a><div class="divider"></div><button class="danger" type="button">Annuler</button></div></div></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span class="pagination-info">Affichage de 8 sur 231 commandes</span>
|
||||
<div class="pagination-controls">
|
||||
<button class="pagination-btn" disabled type="button">«</button>
|
||||
<button class="pagination-btn active" type="button">1</button>
|
||||
<button class="pagination-btn" type="button">2</button>
|
||||
<button class="pagination-btn" type="button">3</button>
|
||||
<span style="padding:0 4px;color:var(--color-text-muted);font-size:12px;">...</span>
|
||||
<button class="pagination-btn" type="button">29</button>
|
||||
<button class="pagination-btn" type="button">»</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,253 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Cuisine — Wakdo Admin</title>
|
||||
<link rel="stylesheet" href="assets/css/admin.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="admin-layout">
|
||||
|
||||
<!-- Topbar -->
|
||||
<header class="topbar">
|
||||
<div class="topbar-logo">
|
||||
<img src="assets/images/logo.png" alt="Wakdo">
|
||||
<div>
|
||||
<span class="topbar-logo-text">Wakdo</span>
|
||||
<span class="topbar-logo-sub">Administration</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topbar-search">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="Rechercher une commande...">
|
||||
</div>
|
||||
<div class="topbar-actions">
|
||||
<div class="topbar-user">
|
||||
<button class="topbar-user-btn" id="userMenuBtn" type="button">
|
||||
<div class="topbar-user-avatar">CJ</div>
|
||||
<div>
|
||||
<div class="topbar-user-name">Corentin J.</div>
|
||||
<div class="topbar-user-role">Administrateur</div>
|
||||
</div>
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
|
||||
</button>
|
||||
<div class="dropdown-menu" id="userMenu">
|
||||
<a href="#">Mon profil</a>
|
||||
<a href="#">Parametres</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Se deconnecter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Vue d'ensemble</div>
|
||||
<a href="dashboard.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect></svg>
|
||||
Tableau de bord
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Catalogue</div>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
|
||||
Categories
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
|
||||
Produits
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"></path><rect x="9" y="3" width="6" height="4" rx="2"></rect></svg>
|
||||
Menus
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Operations</div>
|
||||
<a href="commandes.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>
|
||||
Commandes
|
||||
</a>
|
||||
<a href="cuisine.html" class="sidebar-item active">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
|
||||
Cuisine
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Administration</div>
|
||||
<a href="users.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
||||
Utilisateurs
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
|
||||
Roles
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"></path></svg>
|
||||
Parametres
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<main class="content">
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1 class="page-title">Cuisine</h1>
|
||||
<p class="page-subtitle">Commandes en attente de preparation — tries par heure croissante</p>
|
||||
</div>
|
||||
<div class="page-actions">
|
||||
<span class="text-sm text-muted" id="kitchenTime">13:42:17</span>
|
||||
<button class="btn btn-secondary" type="button" id="kitchenRefresh">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
|
||||
Actualiser
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Kitchen cards grid -->
|
||||
<div class="kitchen-grid" id="kitchenGrid">
|
||||
|
||||
<div class="kitchen-card">
|
||||
<div class="kitchen-card-header">
|
||||
<div>
|
||||
<div class="kitchen-order-num">#1086</div>
|
||||
<div class="kitchen-order-time">13:38 — 4 min</div>
|
||||
</div>
|
||||
<span class="pill pill-neutral">A emporter</span>
|
||||
</div>
|
||||
<div class="kitchen-card-body">
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x2</span>Menu Big Mac</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Grande Frite</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x2</span>Coca Cola</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Nuggets x4</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kitchen-card-footer">
|
||||
<span class="text-sm text-muted">24,30 €</span>
|
||||
<button class="btn btn-primary btn-sm" type="button">Marquer prete</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kitchen-card">
|
||||
<div class="kitchen-card-header">
|
||||
<div>
|
||||
<div class="kitchen-order-num">#1088</div>
|
||||
<div class="kitchen-order-time">13:44 — 2 min</div>
|
||||
</div>
|
||||
<span class="pill pill-info">Sur place</span>
|
||||
</div>
|
||||
<div class="kitchen-card-body">
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Menu CBO</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Fanta Orange</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Classic Barbecue</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kitchen-card-footer">
|
||||
<span class="text-sm text-muted">13,50 €</span>
|
||||
<button class="btn btn-primary btn-sm" type="button">Marquer prete</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kitchen-card">
|
||||
<div class="kitchen-card-header">
|
||||
<div>
|
||||
<div class="kitchen-order-num">#1089</div>
|
||||
<div class="kitchen-order-time">13:45 — 1 min</div>
|
||||
</div>
|
||||
<span class="pill pill-neutral">A emporter</span>
|
||||
</div>
|
||||
<div class="kitchen-card-body">
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x3</span>Menu Royal Cheese</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Petite Salade</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x3</span>Eau</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kitchen-card-footer">
|
||||
<span class="text-sm text-muted">25,50 €</span>
|
||||
<button class="btn btn-primary btn-sm" type="button">Marquer prete</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kitchen-card">
|
||||
<div class="kitchen-card-header">
|
||||
<div>
|
||||
<div class="kitchen-order-num">#1090</div>
|
||||
<div class="kitchen-order-time">13:46 — maintenant</div>
|
||||
</div>
|
||||
<span class="pill pill-info">Sur place</span>
|
||||
</div>
|
||||
<div class="kitchen-card-body">
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Big Tasty Bacon</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Grande Frite</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x1</span>Ice Tea Peche</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x2</span>Ketchup</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kitchen-card-footer">
|
||||
<span class="text-sm text-muted">12,60 €</span>
|
||||
<button class="btn btn-primary btn-sm" type="button">Marquer prete</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kitchen-card">
|
||||
<div class="kitchen-card-header">
|
||||
<div>
|
||||
<div class="kitchen-order-num">#1091</div>
|
||||
<div class="kitchen-order-time">13:46 — maintenant</div>
|
||||
</div>
|
||||
<span class="pill pill-neutral">A emporter</span>
|
||||
</div>
|
||||
<div class="kitchen-card-body">
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x4</span>Cheeseburger</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x2</span>Moyenne Frite</span>
|
||||
</div>
|
||||
<div class="kitchen-line">
|
||||
<span><span class="kitchen-qty">x4</span>Coca Cola</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kitchen-card-footer">
|
||||
<span class="text-sm text-muted">22,10 €</span>
|
||||
<button class="btn btn-primary btn-sm" type="button">Marquer prete</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,411 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Tableau de bord — Wakdo Admin</title>
|
||||
<link rel="stylesheet" href="assets/css/admin.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="admin-layout">
|
||||
|
||||
<!-- Topbar -->
|
||||
<header class="topbar">
|
||||
<div class="topbar-logo">
|
||||
<img src="assets/images/logo.png" alt="Wakdo">
|
||||
<div>
|
||||
<span class="topbar-logo-text">Wakdo</span>
|
||||
<span class="topbar-logo-sub">Administration</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="topbar-search">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="11" cy="11" r="8"></circle>
|
||||
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
||||
</svg>
|
||||
<input type="text" placeholder="Rechercher une commande, un produit...">
|
||||
</div>
|
||||
|
||||
<div class="topbar-actions">
|
||||
<div class="topbar-user">
|
||||
<button class="topbar-user-btn" id="userMenuBtn" type="button" aria-haspopup="true" aria-expanded="false">
|
||||
<div class="topbar-user-avatar">CJ</div>
|
||||
<div>
|
||||
<div class="topbar-user-name">Corentin J.</div>
|
||||
<div class="topbar-user-role">Administrateur</div>
|
||||
</div>
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="6 9 12 15 18 9"></polyline>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="dropdown-menu" id="userMenu">
|
||||
<a href="#">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"></circle><path d="M4 20c0-4 3.6-7 8-7s8 3 8 7"></path></svg>
|
||||
Mon profil
|
||||
</a>
|
||||
<a href="#">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"></path></svg>
|
||||
Parametres
|
||||
</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" y1="12" x2="9" y2="12"></line></svg>
|
||||
Se deconnecter
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Vue d'ensemble</div>
|
||||
<a href="dashboard.html" class="sidebar-item active">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect></svg>
|
||||
Tableau de bord
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Catalogue</div>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
|
||||
Categories
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
|
||||
Produits
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"></path><rect x="9" y="3" width="6" height="4" rx="2"></rect></svg>
|
||||
Menus
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Operations</div>
|
||||
<a href="commandes.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>
|
||||
Commandes
|
||||
</a>
|
||||
<a href="cuisine.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
|
||||
Cuisine
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Administration</div>
|
||||
<a href="users.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
||||
Utilisateurs
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
|
||||
Roles
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"></path></svg>
|
||||
Parametres
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<main class="content">
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1 class="page-title">Tableau de bord</h1>
|
||||
<p class="page-subtitle">Samedi 9 mai 2026 — Service en cours</p>
|
||||
</div>
|
||||
<div class="page-actions">
|
||||
<select class="filter-select" id="periodFilter">
|
||||
<option value="today" selected>Aujourd'hui</option>
|
||||
<option value="7d">7 derniers jours</option>
|
||||
<option value="30d">30 derniers jours</option>
|
||||
<option value="custom">Personnalise</option>
|
||||
</select>
|
||||
<button class="btn btn-secondary" type="button" id="refreshBtn">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
|
||||
Actualiser
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- KPI Cards -->
|
||||
<div class="kpi-grid">
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Ventes du jour</div>
|
||||
<div class="kpi-value">2 847,50 €</div>
|
||||
<div>
|
||||
<span class="kpi-delta up">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"></polyline></svg>
|
||||
+12,4 %
|
||||
</span>
|
||||
<span class="kpi-delta-sub">vs hier</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Commandes du jour</div>
|
||||
<div class="kpi-value">231</div>
|
||||
<div>
|
||||
<span class="kpi-delta up">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"></polyline></svg>
|
||||
+8,2 %
|
||||
</span>
|
||||
<span class="kpi-delta-sub">vs hier</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Panier moyen</div>
|
||||
<div class="kpi-value">12,33 €</div>
|
||||
<div>
|
||||
<span class="kpi-delta down">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
|
||||
-1,8 %
|
||||
</span>
|
||||
<span class="kpi-delta-sub">vs hier</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Produits actifs</div>
|
||||
<div class="kpi-value">53</div>
|
||||
<div>
|
||||
<span class="kpi-delta neutral">
|
||||
—
|
||||
</span>
|
||||
<span class="kpi-delta-sub">inchange</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Recent Orders -->
|
||||
<div class="section-block">
|
||||
<div class="card-header">
|
||||
<span class="card-title">Dernieres commandes</span>
|
||||
<a href="commandes.html" class="btn btn-ghost btn-sm">
|
||||
Voir tout
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="toolbar" style="padding: 12px 16px 0; margin-bottom: 0;">
|
||||
<div class="toolbar-left">
|
||||
<div class="search-field">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="N° de commande..." id="orderSearch">
|
||||
</div>
|
||||
<select class="filter-select">
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="pending">En attente</option>
|
||||
<option value="preparing">En preparation</option>
|
||||
<option value="ready">Prete</option>
|
||||
<option value="delivered">Livree</option>
|
||||
<option value="cancelled">Annulee</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-wrapper">
|
||||
<table id="ordersTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sortable" data-col="0">N° <span class="sort-icon">↕</span></th>
|
||||
<th class="sortable" data-col="1">Heure <span class="sort-icon">↕</span></th>
|
||||
<th>Mode</th>
|
||||
<th>Statut</th>
|
||||
<th class="sortable" data-col="4">Total <span class="sort-icon">↕</span></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1087</td>
|
||||
<td class="muted">13:42</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td class="fw-600">18,70 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
|
||||
Voir detail
|
||||
</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6"></path><path d="M14 11v6"></path></svg>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1086</td>
|
||||
<td class="muted">13:38</td>
|
||||
<td><span class="pill pill-neutral">A emporter</span></td>
|
||||
<td><span class="pill pill-warning">En preparation</span></td>
|
||||
<td class="fw-600">24,30 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
|
||||
Voir detail
|
||||
</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6"></path><path d="M14 11v6"></path></svg>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1085</td>
|
||||
<td class="muted">13:31</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td class="fw-600">11,40 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>Voir detail</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path></svg>Annuler</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1084</td>
|
||||
<td class="muted">13:27</td>
|
||||
<td><span class="pill pill-neutral">A emporter</span></td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td class="fw-600">8,80 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>Voir detail</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path></svg>Annuler</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1083</td>
|
||||
<td class="muted">13:19</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td><span class="pill pill-neutral">Annulee</span></td>
|
||||
<td class="fw-600 text-muted">6,40 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>Voir detail</a>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1082</td>
|
||||
<td class="muted">13:14</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td class="fw-600">32,10 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>Voir detail</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path></svg>Annuler</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1081</td>
|
||||
<td class="muted">13:08</td>
|
||||
<td><span class="pill pill-neutral">A emporter</span></td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td class="fw-600">10,90 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>Voir detail</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path></svg>Annuler</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono fw-600">#1080</td>
|
||||
<td class="muted">12:58</td>
|
||||
<td><span class="pill pill-info">Sur place</span></td>
|
||||
<td><span class="pill pill-success">Livree</span></td>
|
||||
<td class="fw-600">15,60 €</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button" aria-label="Actions">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>Voir detail</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path></svg>Annuler</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="pagination">
|
||||
<span class="pagination-info">Affichage de 8 sur 231 commandes</span>
|
||||
<div class="pagination-controls">
|
||||
<button class="pagination-btn" disabled type="button">«</button>
|
||||
<button class="pagination-btn active" type="button">1</button>
|
||||
<button class="pagination-btn" type="button">2</button>
|
||||
<button class="pagination-btn" type="button">3</button>
|
||||
<span style="padding: 0 4px; color: var(--color-text-muted); font-size: 12px;">...</span>
|
||||
<button class="pagination-btn" type="button">29</button>
|
||||
<button class="pagination-btn" type="button">»</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Connexion — Wakdo Admin</title>
|
||||
<link rel="stylesheet" href="assets/css/admin.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="login-page">
|
||||
<div class="login-card">
|
||||
<div class="login-logo">
|
||||
<img src="assets/images/logo.png" alt="Wakdo">
|
||||
<span class="login-logo-title">Wakdo Admin</span>
|
||||
<span class="login-logo-sub">Back-office de gestion</span>
|
||||
</div>
|
||||
|
||||
<form action="dashboard.html" method="get">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="email">Adresse e-mail</label>
|
||||
<input
|
||||
class="form-input"
|
||||
type="email"
|
||||
id="email"
|
||||
name="email"
|
||||
placeholder="prenom.nom@wakdo.fr"
|
||||
autocomplete="email"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="password">Mot de passe</label>
|
||||
<input
|
||||
class="form-input"
|
||||
type="password"
|
||||
id="password"
|
||||
name="password"
|
||||
placeholder="Votre mot de passe"
|
||||
autocomplete="current-password"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary" style="width:100%;height:40px;justify-content:center;font-size:14px;font-weight:600;margin-top:4px;">
|
||||
Se connecter
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="login-footer">
|
||||
<a href="#">Mot de passe oublie ?</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,296 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Utilisateurs — Wakdo Admin</title>
|
||||
<link rel="stylesheet" href="assets/css/admin.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="admin-layout">
|
||||
|
||||
<!-- Topbar -->
|
||||
<header class="topbar">
|
||||
<div class="topbar-logo">
|
||||
<img src="assets/images/logo.png" alt="Wakdo">
|
||||
<div>
|
||||
<span class="topbar-logo-text">Wakdo</span>
|
||||
<span class="topbar-logo-sub">Administration</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topbar-search">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="Rechercher un utilisateur...">
|
||||
</div>
|
||||
<div class="topbar-actions">
|
||||
<div class="topbar-user">
|
||||
<button class="topbar-user-btn" id="userMenuBtn" type="button">
|
||||
<div class="topbar-user-avatar">CJ</div>
|
||||
<div>
|
||||
<div class="topbar-user-name">Corentin J.</div>
|
||||
<div class="topbar-user-role">Administrateur</div>
|
||||
</div>
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
|
||||
</button>
|
||||
<div class="dropdown-menu" id="userMenu">
|
||||
<a href="#">Mon profil</a>
|
||||
<a href="#">Parametres</a>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Se deconnecter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Vue d'ensemble</div>
|
||||
<a href="dashboard.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect></svg>
|
||||
Tableau de bord
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Catalogue</div>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
|
||||
Categories
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
|
||||
Produits
|
||||
</a>
|
||||
<a href="catalogue.html" class="sidebar-item sidebar-item-sub">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"></path><rect x="9" y="3" width="6" height="4" rx="2"></rect></svg>
|
||||
Menus
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Operations</div>
|
||||
<a href="commandes.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>
|
||||
Commandes
|
||||
</a>
|
||||
<a href="cuisine.html" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
|
||||
Cuisine
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Administration</div>
|
||||
<a href="users.html" class="sidebar-item active">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
||||
Utilisateurs
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
|
||||
Roles
|
||||
</a>
|
||||
<a href="#" class="sidebar-item">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"></path></svg>
|
||||
Parametres
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<main class="content">
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1 class="page-title">Utilisateurs</h1>
|
||||
<p class="page-subtitle">Comptes et droits d'acces au back-office</p>
|
||||
</div>
|
||||
<div class="page-actions">
|
||||
<button class="btn btn-primary" type="button">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
|
||||
Nouvel utilisateur
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-left">
|
||||
<div class="search-field">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
|
||||
<input type="text" placeholder="Nom, email..." id="userSearch">
|
||||
</div>
|
||||
<select class="filter-select">
|
||||
<option value="">Tous les roles</option>
|
||||
<option value="admin">Administrateur</option>
|
||||
<option value="manager">Manager</option>
|
||||
<option value="preparation">Preparation</option>
|
||||
<option value="accueil">Accueil</option>
|
||||
</select>
|
||||
<select class="filter-select">
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="active">Actif</option>
|
||||
<option value="inactive">Inactif</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-container">
|
||||
<div class="table-wrapper">
|
||||
<table id="userTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sortable" data-col="0">Nom / Email <span class="sort-icon">↕</span></th>
|
||||
<th class="sortable" data-col="1">Role <span class="sort-icon">↕</span></th>
|
||||
<th>Statut</th>
|
||||
<th class="sortable" data-col="3">Derniere connexion <span class="sort-icon">↕</span></th>
|
||||
<th style="width:50px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-center gap-8">
|
||||
<div class="topbar-user-avatar" style="width:30px;height:30px;font-size:12px;">CJ</div>
|
||||
<div>
|
||||
<div class="fw-600">Corentin Jog</div>
|
||||
<div class="text-sm text-muted">corentin@wakdo.fr</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="pill pill-info">Administrateur</span></td>
|
||||
<td><span class="pill pill-success">Actif</span></td>
|
||||
<td class="muted">09/05/2026 13:42</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">Modifier</a>
|
||||
<button type="button">Reinitialiser mdp</button>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Desactiver</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-center gap-8">
|
||||
<div class="topbar-user-avatar" style="width:30px;height:30px;font-size:12px;background:#E5E7EB;color:#4A4A4A;">ML</div>
|
||||
<div>
|
||||
<div class="fw-600">Marie Laurent</div>
|
||||
<div class="text-sm text-muted">marie.laurent@wakdo.fr</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="pill pill-warning">Manager</span></td>
|
||||
<td><span class="pill pill-success">Actif</span></td>
|
||||
<td class="muted">09/05/2026 10:15</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">Modifier</a>
|
||||
<button type="button">Reinitialiser mdp</button>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Desactiver</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-center gap-8">
|
||||
<div class="topbar-user-avatar" style="width:30px;height:30px;font-size:12px;background:#E5E7EB;color:#4A4A4A;">AD</div>
|
||||
<div>
|
||||
<div class="fw-600">Ahmed Diallo</div>
|
||||
<div class="text-sm text-muted">ahmed.diallo@wakdo.fr</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="pill pill-neutral">Preparation</span></td>
|
||||
<td><span class="pill pill-success">Actif</span></td>
|
||||
<td class="muted">09/05/2026 11:00</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">Modifier</a>
|
||||
<button type="button">Reinitialiser mdp</button>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Desactiver</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-center gap-8">
|
||||
<div class="topbar-user-avatar" style="width:30px;height:30px;font-size:12px;background:#E5E7EB;color:#4A4A4A;">SP</div>
|
||||
<div>
|
||||
<div class="fw-600">Sophie Petit</div>
|
||||
<div class="text-sm text-muted">sophie.petit@wakdo.fr</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="pill pill-neutral">Accueil</span></td>
|
||||
<td><span class="pill pill-success">Actif</span></td>
|
||||
<td class="muted">09/05/2026 09:58</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">Modifier</a>
|
||||
<button type="button">Reinitialiser mdp</button>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Desactiver</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-center gap-8">
|
||||
<div class="topbar-user-avatar" style="width:30px;height:30px;font-size:12px;background:#F3F4F6;color:#9CA3AF;">TM</div>
|
||||
<div>
|
||||
<div class="fw-600" style="color:var(--color-text-muted);">Thomas Martin</div>
|
||||
<div class="text-sm text-muted">thomas.martin@wakdo.fr</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="pill pill-neutral">Preparation</span></td>
|
||||
<td><span class="pill pill-neutral">Inactif</span></td>
|
||||
<td class="muted">02/04/2026 17:30</td>
|
||||
<td>
|
||||
<div class="action-menu">
|
||||
<button class="action-menu-btn" type="button">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
|
||||
</button>
|
||||
<div class="action-menu-dropdown">
|
||||
<a href="#">Modifier</a>
|
||||
<button type="button">Reactiver</button>
|
||||
<div class="divider"></div>
|
||||
<button class="danger" type="button">Supprimer</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span class="pagination-info">5 utilisateurs</span>
|
||||
<div class="pagination-controls">
|
||||
<button class="pagination-btn active" type="button">1</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Reference in a new issue