Commit Graph

340 Commits

Author SHA1 Message Date
Valentin Lab
64af20e10a chg: reduce spacing between article thumbnails on small screens (< 430px) 2026-03-27 13:55:37 +01:00
Valentin Lab
2184f1e83c chg: reduce article label font size under thumbnails on small screens (< 430px) 2026-03-27 13:54:58 +01:00
Valentin Lab
8d94c038ad chg: reduce discover button size and hide suffix on small screens (< 430px) 2026-03-27 13:36:36 +01:00
Valentin Lab
f27a7ef8e6 chg: reduce shelve title font size on small screens (< 430px) 2026-03-27 13:12:14 +01:00
Valentin Lab
6e46485d53 fix: show article description on merchandise product pages 2026-03-27 13:12:04 +01:00
Valentin Lab
31815cd618 fix: replace hardcoded nature keys with dynamic foreach in article add-to-basket 2026-03-27 13:11:56 +01:00
Valentin Lab
93f027f815 new: add filtered articles link from category edit form 2026-03-27 13:11:32 +01:00
Valentin Lab
493743307a new: add visibility badge for articles in offer form select 2026-03-16 16:44:48 +01:00
Valentin Lab
d8f95c667c new: add warning icon for tariffs without price list in offer form select 2026-03-16 16:41:17 +01:00
Valentin Lab
2563398df2 new: add colored status badges for tariffs in list and offer form select 2026-03-16 16:35:24 +01:00
Valentin Lab
39572c9ea2 new: show active/inactive status toggle on offer edit form 2026-03-16 16:24:44 +01:00
Valentin Lab
55051334ef new: add quick edit links for article, package and tariff on offer form 2026-03-16 16:23:43 +01:00
Valentin Lab
63673117b3 fix: enforce stock limits on basket quantities
No stock validation existed in the ordering flow, allowing customers
to order more items than available.

Cap quantity to ``stock_current`` in ``Baskets::getBasketData()`` when
adding to cart. Add ``min=1`` and ``max=stock`` attributes on the
basket quantity input, with JS clamping in the change handler.
Verify stock again in ``Shop\OrderController::store()`` before saving
the order as a race-condition safeguard.
2026-02-20 13:05:31 +01:00
Valentin Lab
701e424185 chg: reorder checkout sections to show delivery address before billing
Move the delivery mode and delivery address sections before the
billing address in ``registered.blade.php``. The new order is:
Mode de livraison → Adresse de livraison → Adresse de facturation →
Paiement, which better matches the natural checkout flow.
2026-02-13 06:46:12 +01:00
Valentin Lab
cd5d72e272 fix: make drag-and-drop on category tree persist correctly
Two issues prevented the shelf tree reordering from working:

- The JS used ``onDragStop`` (only fires for drags outside the
  tree) instead of the ``tree.move`` event to send the AJAX
  request. Moved the POST into the ``tree.move`` handler.
- The ``inside`` case used ``appendNode`` (last child), but
  jqTree sends ``inside`` when dropping before the first child.
  Switched to ``prependNode`` so the node lands first.
- Added missing ``before`` case with ``insertBeforeNode``.
2026-02-13 06:46:12 +01:00
Valentin Lab
7a246a189a new: add password visibility toggle on all password fields
Reusable ``password_toggle.blade.php`` partial that wraps every
``input[type=password]`` with an eye icon button. Clicking it
toggles between hidden and visible text. Handles Bootstrap modals
via ``shown.bs.modal`` event. Applied on login, register, password
change (shop + admin), password reset, and first login pages.
2026-02-13 06:46:12 +01:00
Valentin Lab
9903579b98 fix: correct form ID mismatch preventing admin content saving
The edit view used ``id='content-form'`` while the shared
``form.blade.php`` calls ``initSaveForm('#homepage-form')``.
The jQuery selector never found the form, so clicking Save
did nothing. Aligned the edit form ID to ``homepage-form``.
2026-02-13 04:07:37 +01:00
Valentin Lab
552b823b8b fix: prevent error 500 on admin dashboard when order has no customer
The ``latestOrders`` partial accessed ``$order->customer->id``
without checking for null.  Orders whose customer has been deleted
caused the admin dashboard to crash on load.
2026-02-13 03:54:40 +01:00
Valentin Lab
f6eb686fcd fix: display « tarif appliqué » on checkout page
The ``basketTotal`` partial expects ``$sale_channel`` as a top-level
view variable.  The cart page passed it correctly, but the checkout
page and the AJAX basket refresh only passed it nested inside
``$basket``.
2026-02-09 10:00:39 +01:00
Valentin Lab
2771a09a90 chg: use rich address partial in checkout with add/delete support
Replaces the simple address radio list in the checkout page with the
richer ``Shop.Customers.partials.addresses`` partial already used on
the profile edit page.  Customers can now choose among existing
addresses, add a new one on-the-fly, or delete an address directly
from the checkout flow.
2026-02-09 09:51:39 +01:00
Valentin Lab
bf8e948ff3 new: display dynamic password rules checklist on registration and profile edit
Each rule (length, lowercase, uppercase, number, special character)
shows a live check/cross icon as the user types.  Also aligns
``handlePasswordChange`` server-side validation with the boilerplate
``Password`` rule (was only enforcing min 8 chars).
2026-02-09 09:29:29 +01:00
Valentin Lab
3d4496b253 fix: make phone number mandatory on registration and profile edit 2026-02-09 09:16:37 +01:00
Valentin Lab
ed3909782b fix: implement password change for shop customers
The password change form on the profile page (``Mes coordonnées``)
was scaffolded but never wired to any backend logic. The fields
``current-password``, ``new-password`` and ``new-password_confirmation``
were silently ignored by ``Customers::storeFull()``.

- Add ``handlePasswordChange()`` in ``CustomerController`` that
  validates current password, confirmation match, and 8-char minimum
  before hashing and saving.
- Remove ``required`` attribute from password fields so the form can
  submit for profile-only updates without filling password fields.
- Strip password fields from request data before passing to
  ``storeFull()`` to avoid Eloquent mass-assignment noise.
2026-02-09 08:36:29 +01:00
Valentin Lab
9c1f3dfed2 new: show payment-specific confirmation for check/wire orders
Display a tailored confirmation message when the customer pays by
check or wire transfer, including a warning about the 30-day
cancellation policy. The payment type is passed as a query parameter
so the message survives page reloads.

- Add ``getOrderConfirmedByCheckContent()`` and
  ``getOrderConfirmedByWireContent()`` to ``Contents`` repository
- Flash ``payment_type`` through redirect query parameter
- Add migration inserting content rows (id 10, 11)
- Update confirmed view with green checkmark and warning icon
2026-02-09 06:47:18 +01:00
Valentin Lab
66c035ef9a new: add `duplicate` button for articles 2025-12-14 21:25:42 +01:00
Valentin Lab
fefd6209ac new: add tooltip to the existing links towards "offre" and "tarif" 2025-12-13 22:26:40 +01:00
Valentin Lab
f5ec254c0e new: add a direct link toward article's admin edit form from the public article page 2025-12-13 22:18:42 +01:00
Valentin Lab
a43e82f3d9 new: remove the "previsualisation" side pane from the "offre" admin edit form 2025-12-13 22:07:16 +01:00
Valentin Lab
65460fd9f1 new: add a link to public article page from article and offres admin edit form 2025-12-13 22:04:56 +01:00
Valentin Lab
2fc091d754 chg: make the herited info pane closed by default in admin edit form for articles 2025-12-13 21:46:45 +01:00
Valentin Lab
7887e2d532 new: make all forms have a cancel/save button on the top also 2025-12-13 21:43:40 +01:00
Valentin Lab
6bb910bb54 fix: make 'Rayons' title adaptable to screen width 2025-12-13 21:43:40 +01:00
Valentin Lab
1db3725fb2 new: make the menu visible on mobile 2025-12-13 21:43:40 +01:00
Valentin Lab
22ebcb102f fix: prevent error message about missing css 2025-12-13 20:09:56 +01:00
Valentin Lab
cc3d4d3e32 chg: put article description after variety description on product public page 2025-12-13 18:21:37 +01:00
Valentin Lab
abb32e32b9 fix: add "Bientôt disponible" box on public product page without prices 2025-11-03 11:27:47 +01:00
Valentin Lab
8c29459489 new: make the debug info available to all backoffice users with helpful links 2025-11-03 11:23:58 +01:00
Valentin Lab
a10f0b35d9 fix: focus invalid field on error in article form 2025-10-15 14:49:41 +02:00
Valentin Lab
b7e3eefed6 new: allow to delete seuil lines in price-list's pice modal 2025-10-15 13:17:54 +02:00
Valentin Lab
29f46b7287 fix: enable saving in price-list's price edit modal 2025-10-15 11:57:38 +02:00
Valentin Lab
d502882052 fix: add delivery cost on load if delivery is selected 2025-10-05 12:38:19 +02:00
Valentin Lab
a5b2196b32 fix: make the selected channel apply changes to product each time 2025-10-05 12:33:08 +02:00
Valentin Lab
cc8dfa29b4 fix: display only delivery types that have a price and auto-select first 2025-10-05 10:09:03 +02:00
Valentin Lab
62bce92d6d fix: make delivery option on checkout stick to the current sale channel 2025-10-05 09:56:33 +02:00
Valentin Lab
8d130b9741 new: add channel management 2025-10-05 09:39:27 +02:00
Valentin Lab
2d7436a12b fix: make sale channel description field editable 2025-10-05 05:26:20 +02:00
Valentin Lab
f25a62ed26 new: make admin delivery edition can toggle off public and active states 2025-10-05 03:32:08 +02:00
Valentin Lab
e37cad6699 new: make the eye icon work to see an invoice in admin customer view 2025-10-04 15:37:28 +02:00
Valentin Lab
9c081574c8 new: make click in choices of search box load the page of the product 2025-10-04 13:54:21 +02:00
Valentin Lab
5cc43bc889 fix: make the button to add an address unusable when the address form is open 2025-10-04 12:19:24 +02:00