forked from Somnia/SomniaRooms
52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Controller\Admin;
|
|
|
|
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\{TextField};
|
|
|
|
use App\Entity\RoomCategory;
|
|
use App\Service\AdminUtils;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
|
|
|
|
class RoomPriceCrudController extends AbstractCrudController
|
|
{
|
|
public static function getEntityFqcn(): string
|
|
{
|
|
//Room Prices are configured by RoomCategory.
|
|
return RoomCategory::class;
|
|
}
|
|
|
|
public function configureCrud(Crud $crud): Crud
|
|
{
|
|
return $crud
|
|
->setPageTitle(Crud::PAGE_INDEX, "Room Prices")
|
|
->setHelp(Crud::PAGE_INDEX, "Edit prices for a RoomCategory.")
|
|
->showEntityActionsInlined();
|
|
}
|
|
|
|
public function configureFields(string $pageName): iterable
|
|
{
|
|
yield TextField::new('name');
|
|
yield TextField::new('description');
|
|
}
|
|
|
|
public function configureActions(Actions $actions): Actions
|
|
{
|
|
$actions->disable(Action::NEW, Action::DETAIL, Action::EDIT, Action::DELETE);
|
|
|
|
$viewAvailabilityAction = Action::new('priceList', 'Prices')
|
|
->linkToRoute(
|
|
AdminUtils::GetAdminRoute(RoomPriceAdminController::ROUTE_INDEX),
|
|
function (RoomCategory $categoryItem): array {
|
|
return ['categoryId' => $categoryItem->getId()];
|
|
}
|
|
);
|
|
|
|
return $actions
|
|
->add(Crud::PAGE_INDEX, $viewAvailabilityAction);
|
|
}
|
|
}
|