diff --git a/src/Bundle/ChillCalendarBundle/Controller/CancelReasonController.php b/src/Bundle/ChillCalendarBundle/Controller/CancelReasonController.php new file mode 100644 index 000000000..3be2a8f93 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Controller/CancelReasonController.php @@ -0,0 +1,26 @@ +addOrderBy('e.id', 'ASC'); + + return parent::orderQuery($action, $query, $request, $paginator); + } +} diff --git a/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php b/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php index d0a5c3d94..5c4b6918a 100644 --- a/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php +++ b/src/Bundle/ChillCalendarBundle/DependencyInjection/ChillCalendarExtension.php @@ -11,6 +11,7 @@ declare(strict_types=1); namespace Chill\CalendarBundle\DependencyInjection; +use Chill\CalendarBundle\Entity\CancelReason; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; @@ -47,6 +48,29 @@ class ChillCalendarExtension extends Extension implements PrependExtensionInterf protected function prependCruds(ContainerBuilder $container) { $container->prependExtensionConfig('chill_main', [ + 'cruds' => [ + [ + 'class' => \Chill\CalendarBundle\Entity\CancelReason::class, + 'name' => 'calendar_cancel-reason', + 'base_path' => '/admin/calendar/cancel-reason', + 'form_class' => \Chill\CalendarBundle\Form\CancelReasonType::class, + 'controller' => \Chill\CalendarBundle\Controller\CancelReasonController::class, + 'actions' => [ + 'index' => [ + 'role' => 'ROLE_ADMIN', + 'template' => '@ChillCalendar/CancelReason/index.html.twig', + ], + 'new' => [ + 'role' => 'ROLE_ADMIN', + 'template' => '@ChillCalendar/CancelReason/new.html.twig', + ], + 'edit' => [ + 'role' => 'ROLE_ADMIN', + 'template' => '@ChillCalendar/CancelReason/edit.html.twig', + ], + ], + ], + ], 'apis' => [ [ 'controller' => \Chill\CalendarBundle\Controller\CalendarRangeAPIController::class, diff --git a/src/Bundle/ChillCalendarBundle/Form/CancelReasonType.php b/src/Bundle/ChillCalendarBundle/Form/CancelReasonType.php new file mode 100644 index 000000000..be1b4e809 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Form/CancelReasonType.php @@ -0,0 +1,39 @@ +add('name', TranslatableStringFormType::class) + ->add('active', CheckboxType::class, [ + 'required' => false, + ]) + ->add('canceledBy', TextType::class); + } + + public function configureOptions(OptionsResolver $resolver) + { + $resolver + ->setDefault('class', CancelReason::class); + } +} diff --git a/src/Bundle/ChillCalendarBundle/Menu/AdminMenuBuilder.php b/src/Bundle/ChillCalendarBundle/Menu/AdminMenuBuilder.php new file mode 100644 index 000000000..972f92ed6 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Menu/AdminMenuBuilder.php @@ -0,0 +1,49 @@ +authorizationChecker = $authorizationChecker; + } + + public function buildMenu($menuId, MenuItem $menu, array $parameters) + { + if (!$this->authorizationChecker->isGranted('ROLE_ADMIN')) { + return; + } + + $menu->addChild('Calendar') + ->setAttribute('class', 'list-group-item-header') + ->setExtras(['order' => 6000, 'header' => true]); + + $menu->addChild('Cancel reason', [ + 'route' => 'chill_crud_calendar_cancel-reason_index', + ])->setExtras(['order' => 6010]); + } + + public static function getMenuIds(): array + { + return ['admin_section']; + } +} diff --git a/src/Bundle/ChillCalendarBundle/Resources/views/CancelReason/edit.html.twig b/src/Bundle/ChillCalendarBundle/Resources/views/CancelReason/edit.html.twig new file mode 100644 index 000000000..28678bf6d --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/views/CancelReason/edit.html.twig @@ -0,0 +1,11 @@ +{% extends '@ChillMain/CRUD/Admin/index.html.twig' %} + +{% block title %} + {% include('@ChillMain/CRUD/_edit_title.html.twig') %} +{% endblock %} + +{% block admin_content %} + {% embed '@ChillMain/CRUD/_edit_content.html.twig' %} + {% block content_form_actions_save_and_show %}{% endblock %} + {% endembed %} +{% endblock admin_content %} \ No newline at end of file diff --git a/src/Bundle/ChillCalendarBundle/Resources/views/CancelReason/index.html.twig b/src/Bundle/ChillCalendarBundle/Resources/views/CancelReason/index.html.twig new file mode 100644 index 000000000..0668d8db5 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/views/CancelReason/index.html.twig @@ -0,0 +1,43 @@ +{% extends '@ChillMain/CRUD/Admin/index.html.twig' %} + +{% block admin_content %} + {% embed '@ChillMain/CRUD/_index.html.twig' %} + {% block table_entities_thead_tr %} +