diff --git a/assets/modes.js b/assets/modes.js index 01fae83..909348f 100644 --- a/assets/modes.js +++ b/assets/modes.js @@ -2,15 +2,15 @@ function initBonkersMode() { // Check if we're in bonkers mode const currentMode = document.documentElement.getAttribute('data-website-mode'); - + if (currentMode === 'bonkers') { // Apply bonkers mode immediately document.body.classList.add('bonkers-mode'); - + // Start the fabulous effects createExtraSparkles(); createSlayEffects(); - + console.log('๐โจ Bonkers mode activated! โจ๐'); } else { // Remove bonkers mode if it was active @@ -22,16 +22,15 @@ function initBonkersMode() { function createExtraSparkles() { const currentMode = document.documentElement.getAttribute('data-website-mode'); if (currentMode !== 'bonkers') return; - + const extraEmojis = [ - '๐ซ', 'โญ', '๐', '๐', '๐ช', '๐ญ', '๐จ', '๐', '๐', '๐ฅ', 'โก', '๐', '๐บ', '๐ต', '๐ถ', '๐ค', - '๐', '๐ฆ', '๐', '๐', '๐ ', '๐', '๐ฅต', '๐ณ', '๐คค', '๐', '๐ฅด', '๐คฏ', '๐', '๐', '๐', '๐', - '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐ถ๏ธ', '๐', '๐ฅ', '๐', - '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฅญ', '๐', '๐', '๐', '๐ง', '๐ฆ', '๐จ', '๐', '๐', - '๐', '๐', '๐ฅฐ', '๐', '๐', '๐', '๐ฅณ', '๐', '๐ซ', '๐ฉ', '๐ฅบ', '๐ข', '๐ก', '๐คฌ', '๐คฏ', '๐ณ', - '๐ฅต', '๐ฅด', '๐ค', '๐', '๐', '๐', '๐', 'โค๏ธ', '๐งก', '๐', '๐', '๐ค', '๐', 'โฃ๏ธ', '๐', '๐', - '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', - '๐', '๐', '๐' + '๐', '๐บ', + '๐', '๐ฆ', '๐', '๐', '๐ ', '๐', '๐ฅต', '๐ณ', '๐คค', '๐', '๐ฅด', + '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', + '๐', '๐ฅ', '๐', '๐ฆ', '๐', '๐', '๐', '๐', '๐ฅฐ', '๐', + '๐', '๐', '๐', '๐ซ', '๐ฉ', '๐ฅบ', '๐ฅต', '๐ฅด', + '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', + '๐', '๐', '๐' ]; const sparkle = document.createElement('div'); sparkle.className = 'emoji-footprint'; @@ -45,7 +44,7 @@ function createExtraSparkles() { sparkle.remove(); } }, 3000); - + // Continue creating extra sparkles while in bonkers mode const newMode = document.documentElement.getAttribute('data-website-mode'); if (newMode === 'bonkers') { @@ -57,7 +56,7 @@ function createExtraSparkles() { function createSlayEffects() { const currentMode = document.documentElement.getAttribute('data-website-mode'); if (currentMode !== 'bonkers') return; - + // Create floating "SLAY" text effects const slayWords = [ 'SLAY', 'QUEEN', 'FABULOUS', 'ICONIC', 'LEGENDARY', 'STUNNING', 'GORGEOUS', 'FLAWLESS', @@ -75,7 +74,7 @@ function createSlayEffects() { slayElement.remove(); } }, 3000); - + // Continue creating slay effects while in bonkers mode const newMode = document.documentElement.getAttribute('data-website-mode'); if (newMode === 'bonkers') { @@ -90,14 +89,14 @@ function watchModeChanges() { mutations.forEach(function(mutation) { if (mutation.type === 'attributes' && mutation.attributeName === 'data-website-mode') { const newMode = document.documentElement.getAttribute('data-website-mode'); - + if (newMode === 'bonkers') { document.body.classList.add('bonkers-mode'); - + // Start the fabulous effects createExtraSparkles(); createSlayEffects(); - + console.log('๐โจ Switched to bonkers mode! โจ๐'); } else { document.body.classList.remove('bonkers-mode'); @@ -106,7 +105,7 @@ function watchModeChanges() { } }); }); - + // Start observing observer.observe(document.documentElement, { attributes: true, diff --git a/src/Controller/DrinkTypeBulkController.php b/src/Controller/DrinkTypeBulkController.php index f512b4a..0dc896b 100644 --- a/src/Controller/DrinkTypeBulkController.php +++ b/src/Controller/DrinkTypeBulkController.php @@ -57,6 +57,7 @@ final class DrinkTypeBulkController extends AbstractController EntityManagerInterface $entityManager ): Response { $drinkTypes = $drinkTypeRepository->findAll(); + $fromOrder = $request->query->get('from_order') === 'true'; $form = $this->createForm(BulkEditDrinkTypeWantedStockForm::class, [ 'drinkTypes' => $drinkTypes, @@ -75,12 +76,22 @@ final class DrinkTypeBulkController extends AbstractController $this->addFlash('success', 'Wanted stock levels updated successfully!'); + if ($fromOrder) { + return $this->redirectToRoute('app_order_new'); + } + return $this->redirectToRoute('app_drink_type_bulk_edit_wanted_stock'); } + // Handle skip button + if ($request->query->has('skip') && $fromOrder) { + return $this->redirectToRoute('app_order_new'); + } + return $this->render('drink_type/bulk_edit_wanted_stock.html.twig', [ 'form' => $form->createView(), 'drinkTypes' => $drinkTypes, + 'from_order' => $fromOrder, ]); } } diff --git a/src/Controller/Index.php b/src/Controller/Index.php index c0207b4..baed02a 100644 --- a/src/Controller/Index.php +++ b/src/Controller/Index.php @@ -23,7 +23,7 @@ final class Index extends AbstractController $lowStock = $filterLowStockDrinks($wanted); $orders = $orderService->getActiveOrders(); return $this->render('index.html.twig', [ - 'drinkTypes' => $lowStock, + 'drinkTypes' => $wanted, 'lowStock' => $lowStock, 'orders' => $orders, ]); diff --git a/src/Entity/Order.php b/src/Entity/Order.php index 18e8880..c0023e4 100644 --- a/src/Entity/Order.php +++ b/src/Entity/Order.php @@ -44,7 +44,6 @@ class Order $this->createdAt = new DateTimeImmutable(); $this->updatedAt = new DateTimeImmutable(); $this->orderItems = new ArrayCollection(); - $this->status = OrderStatus::NEW; } public function getId(): null|int diff --git a/src/Form/OrderForm.php b/src/Form/OrderForm.php index 8a80286..53a2624 100644 --- a/src/Form/OrderForm.php +++ b/src/Form/OrderForm.php @@ -17,10 +17,14 @@ class OrderForm extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $builder - ->add('status', EnumType::class, ['class' => OrderStatus::class]) + ->add('status', EnumType::class, [ + 'class' => OrderStatus::class, + ]) ->add('orderItems', CollectionType::class, [ 'entry_type' => OrderItemType::class, - 'entry_options' => ['label' => false], + 'entry_options' => [ + 'label' => false, + ], 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false, diff --git a/templates/drink_type/bulk_edit_wanted_stock.html.twig b/templates/drink_type/bulk_edit_wanted_stock.html.twig index 01454f9..2a6fd1d 100644 --- a/templates/drink_type/bulk_edit_wanted_stock.html.twig +++ b/templates/drink_type/bulk_edit_wanted_stock.html.twig @@ -1,10 +1,15 @@ {% extends 'base.html.twig' %} -{% block title %}Bulk Edit Drink Type Wanted Stock{% endblock %} +{% block title %}{% if from_order is defined and from_order %}Update Wanted Stock Before Order{% else %}Bulk Edit Drink Type Wanted Stock{% endif %}{% endblock %} {% block body %}
You can update the wanted stock levels before creating a new order, or skip this step.
+ {% else %} +There are already orders planned:
+