From 6f306beb4bbf5ee5307704a4269ad65cab01f4c9 Mon Sep 17 00:00:00 2001 From: Stepan Date: Wed, 2 Jul 2025 22:32:15 +0200 Subject: [PATCH 1/2] Added favorite button functional --- assets/js/single.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/assets/js/single.js b/assets/js/single.js index 9b1c9fd..fd96f5b 100644 --- a/assets/js/single.js +++ b/assets/js/single.js @@ -1,3 +1,4 @@ +const recipeId = document.getElementById('recipe-id').textContent; const toggleBtn = document.getElementById('day-select'); const dropdown = document.getElementById('custom-select-dropdown'); @@ -68,4 +69,44 @@ document.addEventListener('click', (e) =>{ qrPopup.classList.add("hidden"); overlay.classList.add("hidden"); } +}); + +const favoriteBtn = document.getElementById('favorite-btn'); +const favoriteIcon = favoriteBtn.querySelector('i'); + + +favoriteBtn.addEventListener('click', async (e) => { + const isFavorite = favoriteBtn.classList.contains('active'); + const type = isFavorite ? 'remove' : 'add'; + + const formData = new FormData(); + formData.append('action', 'favorites'); + formData.append('recipe_id', recipeId); + formData.append('type', type); + + favoriteBtn.disabled = true; + const response = await fetch('/ajax', { + method: 'POST', + body: formData + }); + favoriteBtn.disabled = false; + + const json = await response.json(); + + if(!response.ok) { + const message = json.error; + showToastify(message, 'error'); + return; + } + favoriteBtn.classList.toggle('active'); + + if(type == 'add') { + favoriteIcon.classList.remove('fa-regular'); + favoriteIcon.classList.add('fa-solid'); + } else { + favoriteIcon.classList.add('fa-regular'); + favoriteIcon.classList.remove('fa-solid'); + } + + showToastify(json.success, 'success'); }); \ No newline at end of file -- 2.34.1 From f0ed2f0712da18950213ae07fd167650d7433b2a Mon Sep 17 00:00:00 2001 From: Stepan Date: Wed, 2 Jul 2025 22:33:45 +0200 Subject: [PATCH 2/2] added files --- apps/Recipes/Templates/single.php | 6 ++++-- assets/css/style.css | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/apps/Recipes/Templates/single.php b/apps/Recipes/Templates/single.php index 3b55acd..0cd22ae 100644 --- a/apps/Recipes/Templates/single.php +++ b/apps/Recipes/Templates/single.php @@ -11,6 +11,8 @@ the_header( ); ?> + +
@@ -72,8 +74,8 @@ the_header(
-