Files
SomniaRooms/src/Controller/Admin/RoomAvailabilityCrudController.php
T
Daniel-Garmig 2adaffeba9 Admin Panel Improvements:
- Updated custom admin controllers to EasyAdmin AdminRoutes.
- Added Admin error page.
- Various fixes and improvements.
2025-12-08 20:57:27 +01:00

63 lines
2.1 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 RoomAvailabilityCrudController extends AbstractCrudController
{
public static function getEntityFqcn(): string
{
//Availability is configured by RoomCategory.
return RoomCategory::class;
}
public function configureCrud(Crud $crud): Crud
{
return $crud
->setPageTitle(Crud::PAGE_INDEX, "Room Category Availability")
->setHelp(Crud::PAGE_INDEX, "Edit Availability for a RoomCategory.")
->showEntityActionsInlined();
}
public function configureFields(string $pageName): iterable
{
//$catRepo = $this->entityManager->getRepository(SomeEntity::class);
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('viewAvailability', 'View Availability')
->linkToRoute(
AdminUtils::GetAdminRoute(RoomAvailabilityAdminController::ROUTE_INDEX),
function (RoomCategory $categoryItem): array {
return ['categoryId' => $categoryItem->getId()];
}
);
$updatePeriodAction = Action::new("updatePeriod", "Update Period")
->linkToRoute(
AdminUtils::GetAdminRoute(RoomAvailabilityAdminController::ROUTE_BULKEDIT),
function (RoomCategory $categoryItem): array {
return ['categoryId' => $categoryItem->getId()];
}
);
return $actions
->add(Crud::PAGE_INDEX, $viewAvailabilityAction)
->add(Crud::PAGE_INDEX, $updatePeriodAction);
}
}