141 lines
5.2 KiB
HTML
141 lines
5.2 KiB
HTML
<!doctype html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Ma Collection Jeux Video</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link rel="stylesheet" href="styles.css" />
|
|
</head>
|
|
<body>
|
|
<button id="toolsToggleBtn" type="button" class="tools-toggle-btn">Outils</button>
|
|
<aside id="toolsDrawer" class="tools-drawer" aria-label="Menu outils">
|
|
<div class="tools-header">
|
|
<h2>Outils</h2>
|
|
<button id="toolsCloseBtn" type="button" class="btn-secondary tools-close-btn">Fermer</button>
|
|
</div>
|
|
<p class="tools-subtitle">Sauvegarde, restauration et migration.</p>
|
|
<p id="storageState" class="storage-state">Etat: detection...</p>
|
|
<button id="migrateBtn" type="button" class="btn-secondary hidden">
|
|
Migrer localStorage vers DB
|
|
</button>
|
|
<div id="backupControls" class="backup-controls hidden">
|
|
<button id="backupBtn" type="button" class="btn-secondary">Sauvegarder JSON</button>
|
|
<button id="restoreMergeBtn" type="button" class="btn-secondary">Restaurer (fusion)</button>
|
|
<button id="restoreReplaceBtn" type="button" class="btn-secondary">Restaurer (remplacement)</button>
|
|
<input id="restoreFileInput" type="file" accept="application/json" class="hidden" />
|
|
</div>
|
|
</aside>
|
|
|
|
<main class="app-shell">
|
|
<header class="hero">
|
|
<div>
|
|
<p class="eyebrow">Catalogue perso</p>
|
|
<h1>Collection Jeux Video</h1>
|
|
<p class="subtitle">
|
|
Organise tes jeux par plateforme/console. Ajoute des sections librement
|
|
et garde une base propre pour la gestion des prêts et de la cote.
|
|
</p>
|
|
</div>
|
|
</header>
|
|
|
|
<section class="panel platform-panel">
|
|
<div class="panel-header">
|
|
<h2>Plateformes et consoles</h2>
|
|
</div>
|
|
|
|
<form id="platformForm" class="grid-form">
|
|
<label>
|
|
Marque (ex: SONY)
|
|
<input id="brandInput" required placeholder="SONY" />
|
|
</label>
|
|
<label>
|
|
Console (ex: PlayStation 5)
|
|
<input id="consoleInput" required placeholder="PlayStation 5" />
|
|
</label>
|
|
<button type="submit">Ajouter section</button>
|
|
</form>
|
|
|
|
<div id="brandTabs" class="tabs" aria-label="Onglets marques"></div>
|
|
<div id="consoleTabs" class="tabs secondary" aria-label="Onglets consoles"></div>
|
|
</section>
|
|
|
|
<section class="panel games-panel">
|
|
<div class="panel-header">
|
|
<h2 id="gameSectionTitle">Jeux</h2>
|
|
<p id="dataModeInfo" class="data-mode"></p>
|
|
</div>
|
|
|
|
<form id="gameForm" class="grid-form game-form">
|
|
<label>
|
|
Titre
|
|
<input id="titleInput" required placeholder="Final Fantasy X" />
|
|
</label>
|
|
<label>
|
|
Version
|
|
<input id="versionInput" placeholder="Origine / Platinium / Complet..." />
|
|
</label>
|
|
<label>
|
|
Genre
|
|
<input id="genreInput" placeholder="RPG" />
|
|
</label>
|
|
<label>
|
|
Éditeur
|
|
<input id="publisherInput" placeholder="Square Enix" />
|
|
</label>
|
|
<label>
|
|
Année
|
|
<input id="yearInput" type="number" min="1970" max="2100" placeholder="2001" />
|
|
</label>
|
|
<label>
|
|
Cote estimée (€)
|
|
<input id="valueInput" type="number" min="0" step="0.01" placeholder="45" />
|
|
</label>
|
|
<label>
|
|
Prix d'achat (€)
|
|
<input id="purchasePriceInput" type="number" min="0" step="0.01" placeholder="12.5" />
|
|
</label>
|
|
<label>
|
|
Etat (0-10)
|
|
<input id="conditionInput" type="number" min="0" max="10" step="0.1" placeholder="5" />
|
|
</label>
|
|
<label class="checkbox-row">
|
|
<input id="isDuplicateInput" type="checkbox" />
|
|
Jeu en double
|
|
</label>
|
|
<label>
|
|
Prêté à
|
|
<input id="loanedToInput" placeholder="Nom (laisser vide si chez toi)" />
|
|
</label>
|
|
<button id="gameSubmitBtn" type="submit">Ajouter le jeu</button>
|
|
<button id="cancelEditBtn" type="button" class="btn-secondary hidden">Annuler edition</button>
|
|
</form>
|
|
|
|
<div id="gamesList" class="games-list"></div>
|
|
</section>
|
|
</main>
|
|
|
|
<template id="gameCardTemplate">
|
|
<article class="game-card">
|
|
<div class="game-main">
|
|
<h3 class="game-title"></h3>
|
|
<p class="game-meta"></p>
|
|
<p class="game-loan"></p>
|
|
</div>
|
|
<div class="game-actions">
|
|
<button class="btn-inline" data-action="edit">Editer</button>
|
|
<button class="btn-inline" data-action="toggle-loan"></button>
|
|
<button class="btn-inline danger" data-action="delete">Supprimer</button>
|
|
</div>
|
|
</article>
|
|
</template>
|
|
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|