Ajout de HelloFresh
This commit is contained in:
56
Views/HelloFresh/Cuisine.cshtml
Normal file
56
Views/HelloFresh/Cuisine.cshtml
Normal file
@@ -0,0 +1,56 @@
|
||||
@{
|
||||
ViewData["Title"] = "Cuisine";
|
||||
}
|
||||
<head>
|
||||
<title>@ViewData["Title"]</title>
|
||||
<link rel="stylesheet" href="~/css/HelloFresh/cuisine.css" asp-append-version="true" />
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/dist/tippy.css" />
|
||||
|
||||
<!-- Custom fonts for this template-->
|
||||
<link href="~/lib/fontawesome-free/css/all.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<section id="cuisineApp" class="cui-root">
|
||||
<!-- Side panel (repliable) -->
|
||||
<aside id="cuiSide" class="cui-side">
|
||||
<header class="cui-side-head">
|
||||
<h2>Recettes</h2>
|
||||
<button id="toggleSide" class="ghost" aria-expanded="true" title="Replier/ouvrir">⟨</button>
|
||||
</header>
|
||||
<div id="recipeScroller" class="cui-cards"></div>
|
||||
</aside>
|
||||
|
||||
<!-- Main PDF area -->
|
||||
<main class="cui-main">
|
||||
<div class="cui-toolbar">
|
||||
<div class="cui-title">
|
||||
<span id="currentName">Sélectionnez une recette</span>
|
||||
</div>
|
||||
<div class="cui-actions">
|
||||
<button id="openPdf" class="primary" disabled>Ouvrir le PDF</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cui-view">
|
||||
<!-- Aperçu non plein écran -->
|
||||
<iframe id="pdfPreview" class="cui-iframe" title="Aperçu PDF"></iframe>
|
||||
<div id="pdfPlaceholder" class="cui-placeholder">
|
||||
Choisissez une recette pour afficher son PDF.
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<!-- Overlay plein écran -->
|
||||
<div id="viewerOverlay" class="viewer hidden" aria-hidden="true">
|
||||
<div class="viewer-top">
|
||||
<button id="closeViewer" class="ghost" aria-label="Fermer">✕</button>
|
||||
<div id="viewerTitle" class="viewer-title">PDF</div>
|
||||
</div>
|
||||
<iframe id="pdfFrameFull" class="viewer-iframe" title="Lecteur PDF"></iframe>
|
||||
</div>
|
||||
|
||||
<script src="~/js/HelloFresh/cuisine.js" asp-append-version="true"></script>
|
||||
32
Views/HelloFresh/Historique.cshtml
Normal file
32
Views/HelloFresh/Historique.cshtml
Normal file
@@ -0,0 +1,32 @@
|
||||
@{
|
||||
ViewData["Title"] = "Historique";
|
||||
}
|
||||
<head>
|
||||
<title>@ViewData["Title"]</title>
|
||||
<link rel="stylesheet" href="~/css/HelloFresh/historique.css" asp-append-version="true" />
|
||||
<link href="~/lib/fontawesome-free/css/all.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito:400,700,800" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<section id="historiqueBoard" class="hf-ingredients">
|
||||
<div class="hf-head">
|
||||
<h2>Historique des recettes</h2>
|
||||
<div class="hf-qty" style="gap:12px">
|
||||
<label for="historyScope">Portée :</label>
|
||||
<select id="historyScope">
|
||||
<option value="mine" selected>Mes archives</option>
|
||||
<option value="all">Tous les utilisateurs</option>
|
||||
</select>
|
||||
|
||||
<!-- 🔎 Recherche -->
|
||||
<input id="historySearch" type="search"
|
||||
placeholder="Rechercher une recette…"
|
||||
style="padding:6px 10px;border:1px solid #cfcfcf;border-radius:8px;min-width:240px">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="historyContainer" class="history-sections"></div>
|
||||
</section>
|
||||
|
||||
|
||||
<script src="~/js/HelloFresh/historique.js" asp-append-version="true"></script>
|
||||
135
Views/HelloFresh/Index.cshtml
Normal file
135
Views/HelloFresh/Index.cshtml
Normal file
@@ -0,0 +1,135 @@
|
||||
@{
|
||||
ViewData["Title"] = "Home Page";
|
||||
}
|
||||
<head>
|
||||
<title>@ViewData["Title"] - Hello Fresh</title>
|
||||
<link rel="stylesheet" href="~/css/HelloFresh/index.css" asp-append-version="true" />
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/dist/tippy.css" />
|
||||
|
||||
<!-- Custom fonts for this template-->
|
||||
<link href="~/lib/fontawesome-free/css/all.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<!-- juste sous la topbar, au début de .content -->
|
||||
<div class="sticky-search">
|
||||
<form class="form-inline w-100 navbar-search">
|
||||
|
||||
|
||||
|
||||
<!-- ANCRE + CARD flottante -->
|
||||
<div id="filterAnchor" class="filter-anchor">
|
||||
<button id="filterOpenBtn" class="hf-icon-btn" type="button" title="Filtres">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 5h18v2l-7 7v4l-4 2v-6L3 7V5z" /></svg>
|
||||
<span id="activeFilterBadge" class="hf-badge" style="display:none;"></span>
|
||||
</button>
|
||||
|
||||
<!-- CARD flottante -->
|
||||
<div id="filtersCard" class="hf-filter-card is-floating" hidden>
|
||||
<div class="hf-filter-header">
|
||||
<div class="title">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 5h18v2l-7 7v4l-4 2v-6L3 7V5z" /></svg>
|
||||
<span>Filtres</span>
|
||||
</div>
|
||||
<span id="activeFilterBadgeClone" class="hf-badge" style="display:none;"></span>
|
||||
</div>
|
||||
|
||||
<div class="hf-filter-body">
|
||||
<!-- Ingrédients -->
|
||||
<section class="hf-field">
|
||||
<label class="hf-section-title">Ingrédients</label>
|
||||
<div id="chipIngredients" class="hf-chip-cloud"></div>
|
||||
<select id="filterIngredients" multiple style="width:100%"></select>
|
||||
</section>
|
||||
|
||||
<!-- Tags -->
|
||||
<section class="hf-field">
|
||||
<label class="hf-section-title">Tags</label>
|
||||
<div id="chipTags" class="hf-chip-cloud"></div>
|
||||
<select id="filterTags" multiple style="width:100%"></select>
|
||||
</section>
|
||||
|
||||
<!-- Temps -->
|
||||
<section class="hf-field">
|
||||
<label class="hf-section-title">Temps (minutes)</label>
|
||||
<div class="hf-time-row">
|
||||
<input id="filterTimeMin" type="number" min="0" inputmode="numeric" placeholder="Min" class="hf-input">
|
||||
<span class="hf-sep">–</span>
|
||||
<input id="filterTimeMax" type="number" min="0" inputmode="numeric" placeholder="Max" class="hf-input">
|
||||
</div>
|
||||
<div class="hf-chips">
|
||||
<button class="hf-chip" type="button" data-tmax="15">≤ 15</button>
|
||||
<button class="hf-chip" type="button" data-tmax="30">≤ 30</button>
|
||||
<button class="hf-chip" type="button" data-tmax="45">≤ 45</button>
|
||||
<button class="hf-chip" type="button" data-tmax="60">≤ 60</button>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="hf-filter-footer">
|
||||
<button id="clearFilters" class="hf-btn ghost" type="button">Tout effacer</button>
|
||||
<button id="applyFilters" class="hf-btn primary" type="button">Appliquer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group" id="divSearch">
|
||||
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..."
|
||||
aria-label="Search" aria-describedby="basic-addon2">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary" type="button">
|
||||
<i class="fas fa-search fa-sm"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button id="archiveAllBtn" class="btn btn-secondary">
|
||||
<i class="bi bi-tag"></i>
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="section-toggle" id="ownedSection">
|
||||
<hr class="section-hr" />
|
||||
<button class="section-chip" type="button">
|
||||
<span class="collapse-text">Afficher recettes choisies</span>
|
||||
<span id="ownedCount" class="owned-count">(0/14)</span>
|
||||
<span class="collapse-icon">▼</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="recipeOwnedWrap" class="collapse-wrap" aria-hidden="true">
|
||||
<div id="recipeGridOwned" class="grid"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Grille principale -->
|
||||
<div id="recipeGrid" class="grid"></div>
|
||||
|
||||
|
||||
|
||||
<div id="paginationControls" class="pagination-modern">
|
||||
<button id="prevPage" class="pagination-btn" title="Page précédente">⬅</button>
|
||||
<span id="pageInfo">1/1</span>
|
||||
<button id="nextPage" class="pagination-btn" title="Page suivante">➡</button>
|
||||
</div>
|
||||
|
||||
<!-- Modal PDF -->
|
||||
<div class="modal fade" id="pdfModal" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-xl" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body p-0" style="height:80vh;">
|
||||
<iframe id="pdfFrame" src="" width="100%" height="100%" style="border:0;"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script src="~/js/HelloFresh/index.js" asp-append-version="true"></script>
|
||||
<script src="~/js/HelloFresh/tagsColor.js" asp-append-version="true"></script>
|
||||
42
Views/HelloFresh/Ingredients.cshtml
Normal file
42
Views/HelloFresh/Ingredients.cshtml
Normal file
@@ -0,0 +1,42 @@
|
||||
@{
|
||||
ViewData["Title"] = "Home Page";
|
||||
}
|
||||
<head>
|
||||
<title>@ViewData["Title"]</title>
|
||||
<link rel="stylesheet" href="~/css/HelloFresh/ingredients.css" asp-append-version="true" />
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/dist/tippy.css" />
|
||||
|
||||
<!-- Custom fonts for this template-->
|
||||
<link href="~/lib/fontawesome-free/css/all.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<section id="recipesAll" class="recipes-section">
|
||||
<div id="recipeStrip" class="hscroll grid"></div>
|
||||
</section>
|
||||
|
||||
<section id="ingredientsBoard" class="hf-ingredients">
|
||||
<div id="titleAndSearch">
|
||||
<div class="hf-head">
|
||||
<h2>Ingrédients</h2>
|
||||
</div>
|
||||
<div class="hf-search">
|
||||
<input id="hfSearch" type="search" class="form-control" placeholder="Rechercher un ingrédient..." />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- liste principale -->
|
||||
<ul id="ingredientsList" class="hf-grid"></ul>
|
||||
|
||||
<!-- séparation -->
|
||||
<hr class="hf-sep" />
|
||||
|
||||
<!-- “à avoir chez soi” -->
|
||||
<h3 class="hf-subtitle">Ingrédients à avoir chez soi</h3>
|
||||
<ul id="neededIngredients" class="hf-grid"></ul>
|
||||
</section>
|
||||
|
||||
<script src="~/js/HelloFresh/ingredients.js" asp-append-version="true"></script>
|
||||
Reference in New Issue
Block a user