Manage homepage by article, modify article template, enhance basket (add selector)

This commit is contained in:
Ludovic CANDELLIER
2022-03-24 00:48:26 +01:00
parent ddc5f2664c
commit c65056531c
13 changed files with 277 additions and 148 deletions

View File

@@ -1,79 +1,6 @@
<div class="row mt-3">
<div class="col-12">
<div class="card card-primary card-outline card-outline-tabs">
<div class="card-header p-0 border-bottom-0">
<ul class="card-title nav nav-tabs ml-auto" role="tablist">
<li class="nav-item">
<a href="#characteristics" class="nav-link active" data-toggle="tab" aria-expanded="true">
Caractéristiques
</a>
</li>
<!--
<li class="nav-item">
<a href="#offers" class="nav-link" data-toggle="tab" aria-expanded="true">
{{ __('shop.offers.title') }}
@if(isset($offers_count))<span class="badge">{{ $offers_count }}</span>@endif
</a>
</li>
<li class="nav-item">
<a href="#shipping" class="nav-link" data-toggle="tab" aria-expanded="true">
Livraison
@if(isset($shipping_count))<span class="badge">{{ $shipping_count }}</span>@endif
</a>
</li>
<li class="nav-item">
<a href="#stock" class="nav-link" data-toggle="tab" aria-expanded="true">
Stock
@if(isset($stock_count))<span class="badge">{{ $stock_count }}</span>@endif
</a>
</li>
<li class="nav-item">
<a href="#seo" class="nav-link" data-toggle="tab" aria-expanded="true">
Référencement
</a>
</li>
-->
</ul>
<div class="card-tools">
@include('components.form.toggle', [
'name' => 'visible',
'value' => ($article['visible'] ?? null),
'on' => __('visible'),
'off' => __('invisible'),
'meta' => 'data-id=' . ($article['id'] ?? null),
'size' => 'sm',
])
</div>
</div>
<div class="card-body">
<div class="tab-content">
<div class="tab-pane active" id="characteristics">
@include('Admin.Shop.Articles.partials.characteristics')
</div>
<div class="tab-pane" id="offers">
</div>
<div class="tab-pane" id="shipping">
@include('Admin.Shop.Articles.partials.shipping')
</div>
<div class="tab-pane" id="stock">
@include('Admin.Shop.Articles.partials.stock')
</div>
<div class="tab-pane" id="seo">
@include('Admin.Shop.Articles.partials.seo')
</div>
</div>
</div>
</div>
@include('Admin.Shop.Articles.partials.characteristics')
</div>
</div>

View File

@@ -6,7 +6,12 @@
@section('content')
@component('components.card')
@include('components.datatable', ['route' => route('Admin.Shop.Articles.index'), 'model' => 'articles', 'with_filters' => true])
@include('components.datatable', [
'route' => route('Admin.Shop.Articles.index'),
'model' => 'articles',
'with_filters' => true,
'callback' => 'handleArticle()',
])
@component('components.layout.modal', ['title' => 'Filtres', 'id' => 'modal-articles-filters'])
@include('Admin.Shop.Articles.partials.filters', ['model' => 'articles'])
@endcomponent
@@ -14,3 +19,17 @@
@endsection
@include('load.form.select2')
@include('load.form.toggle')
@push('js')
<script>
function handleArticle() {
initToggle("{{ route('Admin.Shop.Articles.toggleVisible') }}", '.visible');
initToggle("{{ route('Admin.Shop.Articles.toggleHomepage') }}", '.homepage');
}
$(document).ready(function () {
initSelect2();
});
</script>
@endpush

View File

@@ -1,6 +1,5 @@
<div class="row">
<div class="col-lg-8">
<div class="row mb-3">
<div class="col-3">
{{ Form::label('model', 'Familles de produit') }}<br>
@@ -28,10 +27,32 @@
</div>
<div class="row mb-3">
<div class="col-12">
<div class="col-8">
{{ Form::label('categories', __('shop.shelves.title')) }}<br>
@include('components.form.select', ['name' => 'categories[]', 'list' => $categories_options, 'values' => $article['categories'] ?? null, 'class' => 'select2', 'multiple' => true])
</div>
<div class="col-2">
{{ Form::label('visible', 'Visible') }}<br>
@include('components.form.toggle', [
'name' => 'visible',
'value' => ($article['visible'] ?? null),
'on' => __('oui'),
'off' => __('non'),
'meta' => 'data-id=' . ($article['id'] ?? null),
'size' => 'sm',
])
</div>
<div class="col-2">
{{ Form::label('homepage', __('Accueil')) }}<br>
@include('components.form.toggle', [
'name' => 'homepage',
'value' => ($article['homepage'] ?? null),
'on' => __('oui'),
'off' => __('non'),
'meta' => 'data-id=' . ($article['id'] ?? null),
'size' => 'sm',
])
</div>
</div>
<div class="row mb-3">

View File

@@ -0,0 +1,49 @@
@extends('Shop.layout.layout', [
'title' => __('Panier'),
])
@section('content')
@if ($basket)
<div class="row">
<div class="col-8">
<div class="row mb-3">
<div class="col-4">
<h1>Panier</h1>
</div>
<div class="col-8">
Livraison à domicile ...<br>
Commande en ligne et livraison par voie postale. Attention certains produits ne sont pas disponibles en livraison.
Les sachets disponibles en lignes sont disponibles à la livraison et uniquement quelques plants.
</div>
</div>
@foreach ($basket as $nature => $items)
<div class="row mb-3 p-2" style="background-color: #ccc;">
<div class="col-12">
<h2 style="font-size: 1.6em;">{{ ucfirst($nature) }}</h2>
@foreach ($items as $item)
@include('Shop.Baskets.partials.article')
@endforeach
</div>
@endforeach
</div>
<div class="col-4">
@component('components.card')
Tarif appliqué :
@endcomponent
</div>
</div>
@endif
@endsection
@push('js')
<script>
$('.basket-quantity').change(function() {
var offer_id = $(this).parent('row');
console.log(offer_id);
});
$('.basket-delete').change(function() {
var offer_id = $(this).data('id');
console.log(offer_id);
});
</script>
@endpush

View File

@@ -0,0 +1,27 @@
<div class="row mb-3" id="basket_offer-{{ $item['id'] }}">
<div class="col-2 text-center">
<img src="{{ $item['image'] }}" class="img-fluid">
</div>
<div class="col-10">
<h3 style="font-size: 1.4em;">{{ $item['name'] }}</h3>
{{ $item['variation'] }}<br/>
<div class="row">
<div class="col-6">
{{ $item['price'] }} / unité
</div>
<div class="col-2">
@include('components.form.inputs.number', [
'name' => 'quantity',
'value' => $item['quantity'],
'class' => 'basket-quantity',
])
</div>
<div class="col-2 text-right" style="font-size: 2em;" id="basket_total-{{ $item['id'] }}">
{{ $item['quantity'] * $item['price'] }}
</div>
<div class="col-2" style="font-size: 2em;">
<i class="fa fa-fw fa-trash basket-delete" data-id={{ $item['id'] }}></i>
</div>
</div>
</div>
</div>

View File

@@ -1,31 +1,33 @@
<div class="mb-3 bg-light">
<div class="row">
<div class="col-6">
<h1 style="font-size: 2em;">{{ $shelve['name'] }}</h1>
@if ($shelve['articles'])
<div class="mb-3 bg-light">
<div class="row">
<div class="col-6">
<h1 style="font-size: 2em;">{{ $shelve['name'] }}</h1>
</div>
<div class="col-6 text-right">
<a href="">Découvrir la sélection</a>
<a href="">Tout voir</a>
</div>
</div>
<div class="col-6 text-right">
<a href="">Découvrir la sélection</a>
<a href="">Tout voir</a>
<div class="row shelve_slider_{{ $shelve['id'] }}">
@foreach ($shelve['articles'] as $name => $article)
<div class="text-center pr-2 pl-2">
<a href="{{ route('Shop.Articles.show', ['id' => $article['id']]) }}">
<img data-lazy="{{ App\Repositories\Shop\Articles::getPreviewSrc($article['image'] ?? false) }}" class="d-block w-100" alt="{{ $name }}"/>
{{ $name }}
</a>
</div>
@endforeach
</div>
</div>
<div class="row shelve_slider_{{ $shelve['id'] }}">
@foreach ($shelve['articles'] as $name => $article)
<div class="text-center pr-2 pl-2">
<a href="{{ route('Shop.Articles.show', ['id' => $article['id']]) }}">
<img data-lazy="{{ App\Repositories\Shop\Articles::getPreviewSrc($article['image'] ?? false) }}" class="d-block w-100" alt="{{ $name }}"/>
{{ $name }}
</a>
</div>
@endforeach
</div>
</div>
@push('js')
<script>
$('.shelve_slider_{{ $shelve['id'] }}').slick({
lazyLoad: 'ondemand',
slidesToShow: 6,
slidesToScroll: 1
});
</script>
@endpush
@push('js')
<script>
$('.shelve_slider_{{ $shelve['id'] }}').slick({
lazyLoad: 'ondemand',
slidesToShow: 6,
slidesToScroll: 1
});
</script>
@endpush
@endif