src/Widgets/QuickAction.php line 28

Open in your IDE?
  1. <?php
  2. /**
  3.  * This file is part of the pdAdmin package.
  4.  *
  5.  * @package     pd-admin
  6.  * @license     LICENSE
  7.  * @author      Ramazan APAYDIN <apaydin541@gmail.com>
  8.  * @link        https://github.com/appaydin/pd-admin
  9.  */
  10. namespace App\Widgets;
  11. use Pd\WidgetBundle\Builder\Item;
  12. use Pd\WidgetBundle\Event\WidgetEvent;
  13. use Symfony\Component\HttpFoundation\Request;
  14. /**
  15.  * Quick Action Widget.
  16.  *
  17.  * @author Ramazan APAYDIN <apaydin541@gmail.com>
  18.  */
  19. class QuickAction
  20. {
  21.     /**
  22.      * Build Widgets.
  23.      */
  24.     public function builder(WidgetEvent $event): void
  25.     {
  26.         // Get Widget Container
  27.         $widgets $event->getWidgetContainer();
  28.         // Action Button
  29.         $items = [
  30.             'action_account' => [
  31.                 'name' => 'widget.quick_action.account',
  32.                 'description' => 'widget.quick_action.account_desc',
  33.                 'route' => 'admin.account_list',
  34.                 'icons' => 'user-shield',
  35.                 'linkClass' => 'btn btn-lg btn-primary',
  36.             ],
  37.             'action_group' => [
  38.                 'name' => 'widget.quick_action.group',
  39.                 'description' => 'widget.quick_action.group_desc',
  40.                 'route' => 'admin.group_list',
  41.                 'icons' => 'users-cog',
  42.                 'linkClass' => 'btn btn-lg btn-primary',
  43.             ],
  44.             'action_settings' => [
  45.                 'name' => 'widget.quick_action.general',
  46.                 'description' => 'widget.quick_action.general_desc',
  47.                 'route' => 'admin.config_general',
  48.                 'icons' => 'cogs',
  49.                 'linkClass' => 'btn btn-lg btn-secondary',
  50.             ],
  51.         ];
  52.         // Add Widgets
  53.         $widgets
  54.             ->addWidget(
  55.                 (new Item('quick_action'))
  56.                     ->setGroup('admin')
  57.                     ->setName('widget.quick_action.name')
  58.                     ->setDescription('widget.quick_action.description')
  59.                     ->setTemplate('admin/widgets/quickAction.html.twig')
  60.                     ->setRole(['ROLE_WIDGET_QUICKACTION'])
  61.                     ->setConfigProcess(static function (Request $request) use ($items) {
  62.                         if (($id $request->get('id')) && isset($items[$id])) {
  63.                             return [$id => $items[$id]];
  64.                         }
  65.                         return false;
  66.                     })
  67.                     ->setData(static function ($config) use ($items) {
  68.                         return ['items' => $items];
  69.                     })
  70.                     ->setOrder(0)
  71.             );
  72.     }
  73. }