219 lines
8.6 KiB
PHP
219 lines
8.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Dto\DiscountDto;
|
|
use App\Dto\PageDto;
|
|
use App\Dto\PickupExceptionDto;
|
|
use App\Dto\ProductDto;
|
|
use App\Dto\RangeDto;
|
|
use App\Dto\ShopDto;
|
|
use App\Dto\SlideDto;
|
|
use App\Models\Discount;
|
|
use App\Models\Faq;
|
|
use App\Models\Page;
|
|
use App\Models\PickupException;
|
|
use App\Models\Product;
|
|
use App\Models\Range;
|
|
use App\Models\Shop;
|
|
use App\Models\Slide;
|
|
use App\Models\Tag;
|
|
use Diglactic\Breadcrumbs\Breadcrumbs;
|
|
use Diglactic\Breadcrumbs\Generator;
|
|
use Illuminate\Support\Str;
|
|
|
|
$creationLabel = Str::ucfirst(trans('crud.actions.create'));
|
|
$editionLabel = Str::ucfirst(trans('crud.actions.edit'));
|
|
$viewLabel = Str::ucfirst(trans('crud.actions.view'));
|
|
|
|
// * Root
|
|
Breadcrumbs::for('bo.dashboard', function (Generator $trail): void {
|
|
$trail->push(trans('Dashboard'), route('bo.dashboard'));
|
|
});
|
|
|
|
// * Slides
|
|
Breadcrumbs::for('bo.slides.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.slides', \INF)), route('bo.slides.index'));
|
|
});
|
|
Breadcrumbs::for('bo.slides.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.slides.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.slides.edit', function (Generator $trail, Slide | SlideDto $slide) use ($editionLabel): void {
|
|
$trail->parent('bo.slides.index');
|
|
$trail->push($editionLabel, route('bo.slides.edit', $slide));
|
|
});
|
|
|
|
// * Tags
|
|
Breadcrumbs::for('bo.tags.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.tags', \INF)), route('bo.tags.index'));
|
|
});
|
|
Breadcrumbs::for('bo.tags.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.tags.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.tags.edit', function (Generator $trail, Tag $tag) use ($editionLabel): void {
|
|
$trail->parent('bo.tags.index');
|
|
$trail->push($editionLabel, route('bo.tags.edit', $tag));
|
|
});
|
|
|
|
// * Ranges
|
|
Breadcrumbs::for('bo.ranges.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.ranges', \INF)), route('bo.ranges.index'));
|
|
});
|
|
Breadcrumbs::for('bo.ranges.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.ranges.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.ranges.edit', function (Generator $trail, Range | RangeDto $range) use ($editionLabel): void {
|
|
$trail->parent('bo.ranges.index');
|
|
$trail->push($editionLabel, route('bo.ranges.edit', $range));
|
|
});
|
|
|
|
// * Static Pages
|
|
Breadcrumbs::for('bo.pages.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.pages', \INF)));
|
|
});
|
|
Breadcrumbs::for('bo.pages.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.pages.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.pages.edit', function (Generator $trail, Page | PageDto $page) use ($editionLabel): void {
|
|
$trail->parent('bo.pages.index');
|
|
$trail->push("{$editionLabel} {$page->slug->label()}", route('bo.pages.edit', $page->slug->value()));
|
|
});
|
|
|
|
// * Faqs
|
|
Breadcrumbs::for('bo.faqs.index', function (Generator $trail): void {
|
|
$trail->parent('bo.pages.index');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.faqs', \INF)), route('bo.faqs.index'));
|
|
});
|
|
Breadcrumbs::for('bo.faqs.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.faqs.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.faqs.edit', function (Generator $trail, Faq $faq) use ($editionLabel): void {
|
|
$trail->parent('bo.faqs.index');
|
|
$trail->push($editionLabel, route('bo.faqs.edit', $faq));
|
|
});
|
|
|
|
// * Products
|
|
Breadcrumbs::for('bo.products.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.products', \INF)), route('bo.products.index'));
|
|
});
|
|
Breadcrumbs::for('bo.products.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.products.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.products.edit', function (Generator $trail, Product | ProductDto $product) use ($editionLabel): void {
|
|
$trail->parent('bo.products.index');
|
|
$trail->push($editionLabel, route('bo.products.edit', $product));
|
|
});
|
|
|
|
// * Product Incos
|
|
Breadcrumbs::for('bo.products.incos.create', function (Generator $trail, Product | ProductDto $product) use ($creationLabel): void {
|
|
$trail->parent('bo.products.edit', $product);
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.product_incos', 1)));
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.products.incos.edit', function (Generator $trail, Product | ProductDto $product) use ($editionLabel): void {
|
|
$trail->parent('bo.products.edit', $product);
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.product_incos', 1)));
|
|
$trail->push($editionLabel);
|
|
});
|
|
|
|
// * Merchandising
|
|
Breadcrumbs::for('bo.merch', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(trans('Merchandising'));
|
|
});
|
|
Breadcrumbs::for('bo.merch.starred', function (Generator $trail): void {
|
|
$trail->parent('bo.merch');
|
|
$trail->push(trans('crud.helpers.starred'), route('bo.merch.starred'));
|
|
});
|
|
|
|
Breadcrumbs::for('bo.discounts.index', function (Generator $trail): void {
|
|
$trail->parent('bo.merch');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.discounts', \INF)), route('bo.discounts.index'));
|
|
});
|
|
Breadcrumbs::for('bo.discounts.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.discounts.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.discounts.edit', function (Generator $trail, Discount | DiscountDto $discount) use ($editionLabel): void {
|
|
$trail->parent('bo.discounts.index');
|
|
$trail->push($editionLabel, route('bo.discounts.edit', $discount));
|
|
});
|
|
|
|
// * Pickup points
|
|
Breadcrumbs::for('bo.shops.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(Str::ucfirst(trans_choice('models.classes.shops', \INF)), route('bo.shops.index'));
|
|
});
|
|
Breadcrumbs::for('bo.shops.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.shops.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for('bo.shops.edit', function (Generator $trail, Shop | ShopDto $shop) use ($editionLabel): void {
|
|
$trail->parent('bo.shops.index');
|
|
$trail->push($editionLabel, route('bo.shops.edit', $shop));
|
|
});
|
|
Breadcrumbs::for('bo.shops.pickup-exceptions.edit', function (Generator $trail, Shop | ShopDto $shop): void {
|
|
$trail->parent('bo.shops.edit', $shop);
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.pickup-exceptions', \INF)),
|
|
route('bo.pickup-exceptions.index')
|
|
);
|
|
});
|
|
|
|
// * Pickup exceptions
|
|
Breadcrumbs::for('bo.pickup-exceptions.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.pickup-exceptions', \INF)),
|
|
route('bo.pickup-exceptions.index')
|
|
);
|
|
});
|
|
Breadcrumbs::for('bo.pickup-exceptions.create', function (Generator $trail) use ($creationLabel): void {
|
|
$trail->parent('bo.shops.index');
|
|
$trail->push($creationLabel);
|
|
});
|
|
Breadcrumbs::for(
|
|
'bo.pickup-exceptions.edit',
|
|
function (Generator $trail, PickupException | PickupExceptionDto $pickupException) use ($editionLabel): void {
|
|
$trail->parent('bo.pickup-exceptions.index');
|
|
$trail->push($editionLabel, route('bo.pickup-exceptions.edit', $pickupException));
|
|
}
|
|
);
|
|
|
|
// * Orders
|
|
Breadcrumbs::for('bo.orders.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.orders', \INF)),
|
|
route('bo.orders.index')
|
|
);
|
|
});
|
|
Breadcrumbs::for('bo.orders.today', function (Generator $trail): void {
|
|
$trail->parent('bo.orders.index');
|
|
$trail->push(trans('Today\'s Orders'));
|
|
});
|
|
Breadcrumbs::for('bo.orders.show', function (Generator $trail) use ($viewLabel): void {
|
|
$trail->parent('bo.orders.index');
|
|
$trail->push($viewLabel);
|
|
});
|
|
|
|
// * Settings
|
|
Breadcrumbs::for('bo.settings.index', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(trans('Settings'));
|
|
});
|
|
Breadcrumbs::for('bo.settings.edit', function (Generator $trail): void {
|
|
$trail->parent('bo.dashboard');
|
|
$trail->push(__('Employee sites'), route('bo.settings.edit'));
|
|
});
|