Fixes on Bo

This commit is contained in:
Jérémy Munsch 2023-11-24 09:52:56 +01:00
parent d208854fb0
commit b79b7dc151
No known key found for this signature in database
GPG key ID: 18361AF3BFEC0FEC
16 changed files with 90 additions and 78 deletions

View file

@ -8,18 +8,16 @@ enum StaticPageType: int
{
use BaseEnum;
case contact = 1;
case legals = 2;
case rules = 3;
case confidentiality = 4;
case legals = 1;
case rules = 2;
case confidentiality = 3;
/**
* Optionnal labels definition.
*/
private const LABELS = [
self::contact->name => 'Contact',
self::legals->name => 'Mentions légales',
self::rules->name => 'Règlement',
self::confidentiality->name => 'Charte de confidentialité',
self::confidentiality->name => 'Charte de confidentialité'
];
}

View file

@ -40,7 +40,7 @@ class LoginController extends Controller
*/
public function showLoginForm(): View
{
return view('bo.auth.login');
return view('back::auth.login');
}
/**

View file

@ -36,7 +36,7 @@ class GainViewController extends Controller
$searchFields = \sprintf(
'%s, %s ...',
trans('validation.attributes.name'),
trans('validation.attributes.file_name'),
trans('validation.custom.file_name'),
);
/** Sort columns with a query */

View file

@ -22,7 +22,7 @@ class PrizesController extends Controller
public function index(Request $request): \Illuminate\Contracts\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $prizeModels */
$prizeModels = Prize::query();
$prizeModels = Prize::query()->with('gainView');
/** @var string $search Search field */
$search = $request->search;
@ -37,8 +37,8 @@ class PrizesController extends Controller
}
$searchFields = \sprintf(
'%s, %s ...',
Str::ucfirst(__('validation.attributes.label_one')),
__('validation.attributes.label_many'),
Str::ucfirst(__('validation.custom.label_one')),
__('validation.custom.label_many'),
);
/** Sort columns with a query */

View file

@ -39,8 +39,8 @@ class ProductsController extends Controller
$searchFields = \sprintf(
'%s, %s, %s ...',
Str::ucfirst(__('validation.attributes.name')),
__('validation.attributes.no_art'),
__('validation.attributes.ean_code'),
__('validation.custom.no_art'),
__('validation.custom.ean_code'),
);
/** Sort columns with a query */

View file

@ -17,13 +17,13 @@ class StaticPageSeeder extends Seeder
{
StaticPage::query()->updateOrCreate(
[
'type' => StaticPageType::contact,
'type' => StaticPageType::confidentiality,
],
[
'seo_title' => 'Seo title pour la page contactez nous',
'seo_description' => 'Seo description pour la page contactez nous',
'title' => 'Contactez-nous',
'type' => StaticPageType::contact,
'seo_title' => 'Seo title pour la page de confidentialité',
'seo_description' => 'Seo description pour la page de confidentialité',
'title' => 'Page de confidentialitée',
'type' => StaticPageType::confidentiality,
'content' => \clean(\fake()->randomHtml(6, 7)),
]
);

View file

@ -214,6 +214,7 @@ return [
'username' => 'nom d\'utilisateur',
'year' => 'année',
],
'ean' => 'Le champ :attribute doit être un code EAN valide (7, 8 ou 13 chiffres)',
'custom' => [
'of_the' => [
'male' => 'du ',

View file

@ -9,36 +9,45 @@
@superadmin
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownGame" data-bs-toggle="dropdown" href="#" role="button"
aria-haspopup="true" aria-expanded="false">
<a class="nav-link @if (request()->routeIs('bo.instant-win') ||
request()->routeIs('bo.winners-list') ||
request()->routeIs('bo.bannedips.*') ||
request()->routeIs('bo.codes')) active @endif dropdown-toggle" id="navbarDropdownGame" data-bs-toggle="dropdown"
href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{ __('Gestion du jeu') }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownGame">
<li>
<a class="dropdown-item" href="{{ route('bo.instant-win') }}">{{ __('Instant gagnants') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.instant-win')) active @endif"
href="{{ route('bo.instant-win') }}">{{ __('Instant gagnants') }}</a>
</li>
<li>
<a class="dropdown-item" href="{{ route('bo.winners-list') }}">{{ __('Liste des gagnants') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.winners-list')) active @endif"
href="{{ route('bo.winners-list') }}">{{ __('Liste des gagnants') }}</a>
</li>
<li>
<a class="dropdown-item" href="{{ route('bo.bannedips.index') }}">{{ __('IP Bannies') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.bannedips.*')) active @endif"
href="{{ route('bo.bannedips.index') }}">{{ __('IP Bannies') }}</a>
</li>
<li>
<a class="dropdown-item" href="{{ route('bo.codes') }}">{{ __('Codes uniques') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.codes')) active @endif"
href="{{ route('bo.codes') }}">{{ __('Codes uniques') }}</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownPrizes" data-bs-toggle="dropdown" href="#" role="button"
aria-haspopup="true" aria-expanded="false">
<a class="nav-link @if (request()->routeIs('bo.prizes.*') || request()->routeIs('bo.gain-views.*')) active @endif dropdown-toggle" id="navbarDropdownPrizes"
data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{ __('Lots') }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownPrizes">
<li>
<a class="dropdown-item" href="{{ route('bo.prizes.index') }}">{{ __('Gérer les lots') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.prizes.*')) active @endif"
href="{{ route('bo.prizes.index') }}">{{ __('Gérer les lots') }}</a>
</li>
<li>
<a class="dropdown-item" href="{{ route('bo.gain-views.index') }}">{{ __('Gérer les vues des lots') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.gain-views.*')) active @endif"
href="{{ route('bo.gain-views.index') }}">{{ __('Gérer les vues des lots') }}</a>
</li>
</ul>
</li>
@ -46,52 +55,56 @@
@admin
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownProducts" data-bs-toggle="dropdown" href="#" role="button"
aria-haspopup="true" aria-expanded="false">
<a class="nav-link @if (request()->routeIs('bo.ranges.*') || request()->routeIs('bo.products.*')) active @endif dropdown-toggle" id="navbarDropdownProducts"
data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{ __('Produits') }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownProducts">
<li>
<a class="dropdown-item" href="{{ route('bo.ranges.index') }}">{{ __('Gammes') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.ranges.*')) active @endif"
href="{{ route('bo.ranges.index') }}">{{ __('Gammes') }}</a>
</li>
<li>
<a class="dropdown-item" href="{{ route('bo.products.index') }}">{{ __('Produits porteurs') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.fproducts.*')) active @endif"
href="{{ route('bo.products.index') }}">{{ __('Produits porteurs') }}</a>
</li>
</ul>
</li>
@endadmin
@superadmin
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownContents" data-bs-toggle="dropdown" href="#" role="button"
aria-haspopup="true" aria-expanded="false">
<a class="nav-link @if (request()->routeIs('bo.static_pages.*')) ) active @endif dropdown-toggle" id="navbarDropdownContents"
data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{ __('Contenus') }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownContents">
<li>
<a class="dropdown-item"
<a class="dropdown-item @if (optional(request()->route()->parameter('static_page'))->type == \App\Enums\StaticPageType::legals) active @endif"
href="{{ route('bo.static_pages.edit', \App\Enums\StaticPageType::legals) }}">{{ __('Mentions légales') }}</a>
</li>
<li>
<a class="dropdown-item"
<a class="dropdown-item @if (optional(request()->route()->parameter('static_page'))->type == \App\Enums\StaticPageType::confidentiality) active @endif"
href="{{ route('bo.static_pages.edit', \App\Enums\StaticPageType::confidentiality) }}">{{ __('Charte') }}</a>
</li>
<li>
<a class="dropdown-item"
<a class="dropdown-item @if (optional(request()->route()->parameter('static_page'))->type == \App\Enums\StaticPageType::rules) active @endif"
href="{{ route('bo.static_pages.edit', \App\Enums\StaticPageType::rules) }}">{{ __('Règlement') }}</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownFaq" data-bs-toggle="dropdown" href="#" role="button"
aria-haspopup="true" aria-expanded="false">
<a class="nav-link @if (request()->routeIs('bo.faq-themes.*') || request()->routeIs('bo.faq-questions.*')) ) active @endif dropdown-toggle" id="navbarDropdownFaq"
data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{ __('FAQ') }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownFaq">
<li>
<a class="dropdown-item" href="{{ route('bo.faq-themes.index') }}">{{ __('Thèmes') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.faq-themes.*')) active @endif"
href="{{ route('bo.faq-themes.index') }}">{{ __('Thèmes') }}</a>
</li>
<li>
<a class="dropdown-item" href="{{ route('bo.faq-questions.index') }}">{{ __('Questions') }}</a>
<a class="dropdown-item @if (request()->routeIs('bo.faq-questions.*')) active @endif"
href="{{ route('bo.faq-questions.index') }}">{{ __('Questions') }}</a>
</li>
</ul>
</li>
@ -100,7 +113,7 @@
@canAny(['isConceptor', 'viewAny'], \App\Models\User::class)
<li class="nav-item">
<div class="dropdown">
<a class="nav-link @if (request()->routeIs('bo.users.*') || request()->routeIs('bo.activity_logs.*')) active @endif dropdown-toggle" data-bs-toggle="dropdown" type="button"
<a class="nav-link @if (request()->routeIs('bo.users.*') || request()->routeIs('bo.activity_logs.*') || request()->routeIs('bo.settings.*')) ) active @endif dropdown-toggle" data-bs-toggle="dropdown" type="button"
aria-expanded="false">
{{ __('Avancé') }}
</a>
@ -116,8 +129,8 @@
@endcan
@can('isConceptor')
<li class="nav-item">
<a class="nav-link @if (request()->routeIs('bo.settings.*')) active @endif" data-bs-toggle="tooltip"
<li>
<a class="dropdown-item @if (request()->routeIs('bo.settings.*')) active @endif" data-bs-toggle="tooltip"
href="{{ route('bo.settings.edit', \App\Models\Settings::first()) }}"
title="{{ __('models.classes.settings') }}">
{{ __('models.classes.settings') }}

View file

@ -32,13 +32,13 @@
{{-- FILE_NAME --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.file_name')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.file_name')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.varchar', [
'id' => 'gainViewFileName',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.file_name')),
'field' => Str::ucfirst(__('validation.custom.file_name')),
]),
'hasWordCounter' => true,
'name' => 'file_name',
@ -46,13 +46,13 @@
'model' => $gainViewModel ?? null,
'helper' => __('validation.between.string', [
'attribute' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.file_name')),
'field' => Str::ucfirst(__('validation.custom.file_name')),
]),
'min' => 3,
'max' => 255,
]),
'placeholder' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.file_name')),
'field' => Str::ucfirst(__('validation.custom.file_name')),
]),
])
</div>

View file

@ -18,7 +18,7 @@
@include('back::modules.table-col-sorter', [
'cols' => [
'name' => Str::ucfirst(__('validation.attributes.name')),
'file_name' => Str::ucfirst(__('validation.attributes.file_name')),
'file_name' => Str::ucfirst(__('validation.custom.file_name')),
],
])
</thead>

View file

@ -2,13 +2,13 @@
{{-- LABEL_ONE --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.label_one')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.label_one')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.varchar', [
'id' => 'prizeLabelOne',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.label_one')),
'field' => Str::ucfirst(__('validation.custom.label_one')),
]),
'hasWordCounter' => true,
'name' => 'label_one',
@ -22,7 +22,7 @@
'max' => 255,
]),
'placeholder' => __(':field du :model', [
'field' => Str::ucfirst(__('validation.attributes.label_one')),
'field' => Str::ucfirst(__('validation.custom.label_one')),
'model' => Str::singular(__('models.classes.prizes')),
]),
])
@ -33,13 +33,13 @@
{{-- LABEL_MANY --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.label_many')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.label_many')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.varchar', [
'id' => 'prizeLabelMany',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.label_many')),
'field' => Str::ucfirst(__('validation.custom.label_many')),
]),
'hasWordCounter' => true,
'name' => 'label_many',
@ -53,7 +53,7 @@
'max' => 255,
]),
'placeholder' => __(':field du :model', [
'field' => Str::ucfirst(__('validation.attributes.label_many')),
'field' => Str::ucfirst(__('validation.custom.label_many')),
'model' => Str::singular(__('models.classes.prizes')),
]),
])
@ -64,7 +64,7 @@
{{-- ARG --}}
<div class="col-12 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.arg')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.arg')) }}</legend>
<div class="row">
{{-- ARG_TITLE --}}
<div class="col-12 col-md-6 mb-3">
@ -95,7 +95,7 @@
@include('back::partials.inputs.varchar', [
'id' => 'prizeArgSubtitle',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.subtitle')),
'field' => Str::ucfirst(__('validation.custom.subtitle')),
]),
'hasWordCounter' => true,
'name' => 'arg_subtitle',
@ -103,13 +103,13 @@
'model' => $prizeModel ?? null,
'helper' => __('validation.between.string', [
'attribute' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.subtitle')),
'field' => Str::ucfirst(__('validation.custom.subtitle')),
]),
'min' => 3,
'max' => 255,
]),
'placeholder' => __(':field du :model', [
'field' => Str::ucfirst(__('validation.attributes.subtitle')),
'field' => Str::ucfirst(__('validation.custom.subtitle')),
'model' => Str::singular(__('models.classes.prizes')),
]),
])
@ -161,20 +161,20 @@
{{-- PDF_WINNING_PROOF --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.pdf_winning_proof')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.pdf_winning_proof')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.varchar-file', [
'id' => 'prizePdfWinningProof',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.pdf_winning_proof')),
'field' => Str::ucfirst(__('validation.custom.pdf_winning_proof')),
]),
'name' => 'pdf_winning_proof',
'required' => false,
'model' => $prizeModel ?? null,
'helper' => __('validation.mimes', [
'attribute' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.pdf_winning_proof')),
'field' => Str::ucfirst(__('validation.custom.pdf_winning_proof')),
]),
'values' => 'pdf',
]),
@ -187,20 +187,20 @@
{{-- NEED_PROOF --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.need_proof')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.need_proof')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.tinyint-boolean', [
'id' => 'prizeNeedProof',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.need_proof')),
'field' => Str::ucfirst(__('validation.custom.need_proof')),
]),
'name' => 'need_proof',
'required' => true,
'model' => $prizeModel ?? null,
'helper' => __('validation.boolean', [
'attribute' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.need_proof')),
'field' => Str::ucfirst(__('validation.custom.need_proof')),
]),
]),
])

View file

@ -17,9 +17,9 @@
<thead>
@include('back::modules.table-col-sorter', [
'cols' => [
'label_one' => Str::ucfirst(__('validation.attributes.label_one')),
'label_one' => Str::ucfirst(__('validation.custom.label_one')),
'quantity' => Str::ucfirst(__('validation.custom.quantity')),
'need_proof' => Str::ucfirst(__('validation.attributes.need_proof')),
'need_proof' => Str::ucfirst(__('validation.custom.need_proof')),
'gain_view_id' => Str::ucfirst(trans_choice('models.classes.gain-views', 1)),
],
])

View file

@ -33,20 +33,20 @@
{{-- NO_ART --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.no_art')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.no_art')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.int-number', [
'id' => 'productNoArt',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.no_art')),
'field' => Str::ucfirst(__('validation.custom.no_art')),
]),
'name' => 'no_art',
'required' => false,
'model' => $productModel ?? null,
'helper' => __('validation.min.numeric', [
'attribute' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.no_art')),
'field' => Str::ucfirst(__('validation.custom.no_art')),
]),
'min' => 0,
]),
@ -59,7 +59,7 @@
{{-- PICTURE --}}
<div class="col-12 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.picture')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.picture')) }}</legend>
<div class="row">
<div class="col-12">
<div class="row">
@ -86,20 +86,20 @@
{{-- CODE_EAN --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.ean_code')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.ean_code')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.int-number', [
'id' => 'productEANCode',
'label' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.ean_code')),
'field' => Str::ucfirst(__('validation.custom.ean_code')),
]),
'name' => 'code_ean',
'required' => true,
'model' => $productModel ?? null,
'helper' => __('validation.ean', [
'attribute' => __(':field', [
'field' => Str::ucfirst(__('validation.attributes.ean_code')),
'field' => Str::ucfirst(__('validation.custom.ean_code')),
]),
]),
// Unsigned between 7 and 13 digits

View file

@ -18,8 +18,8 @@
@include('back::modules.table-col-sorter', [
'cols' => [
'name' => Str::ucfirst(__('validation.attributes.name')),
'no_art' => Str::ucfirst(__('validation.attributes.no_art')),
'code_ean' => Str::ucfirst(__('validation.attributes.ean_code')),
'no_art' => Str::ucfirst(__('validation.custom.no_art')),
'code_ean' => Str::ucfirst(__('validation.custom.ean_code')),
'range_id' => Str::ucfirst(__('models.classes.ranges')),
],
])

View file

@ -33,7 +33,7 @@
{{-- PICTURE --}}
<div class="col-12">
<fieldset class="h-100 border p-3">
<legend>{{ Str::ucfirst(__('validation.attributes.picture')) }}</legend>
<legend>{{ Str::ucfirst(__('validation.custom.picture')) }}</legend>
<div class="row">
<div class="col-12">
@include('back::partials.inputs.varchar-picture', [

View file

@ -128,5 +128,5 @@ Breadcrumbs::for('bo.codes', function (Generator $trail) {
});
Breadcrumbs::for('bo.codes.search', function (Generator $trail) {
$trail->parent('bo.codes');
$trail->push(__('crud.actions.show'), route('bo.codes'));
$trail->push(__('crud.actions.view'), route('bo.codes'));
});