Skip to content

Commit

Permalink
Init dashboard page
Browse files Browse the repository at this point in the history
  • Loading branch information
loic425 committed Oct 3, 2024
1 parent dbe8f4f commit e2957a0
Show file tree
Hide file tree
Showing 15 changed files with 146 additions and 9 deletions.
4 changes: 3 additions & 1 deletion app/Menu/AdminMenuBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ public function createMenu(array $options): ItemInterface
$menu = $this->menuBuilder->createMenu($options);

$menu
->addChild('dashboard')
->addChild('dashboard', [
'route' => 'sylius_admin_ui_dashboard',
])
->setLabel('sylius.ui.dashboard')
->setLabelAttribute('icon', 'dashboard')
;
Expand Down
12 changes: 11 additions & 1 deletion src/AdminUi/config/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

use Symfony\Bundle\FrameworkBundle\Controller\TemplateController;
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;

return function (RoutingConfigurator $routes): void {
Expand All @@ -21,6 +22,15 @@
;

$routes->add('sylius_admin_ui_login_check', '/login_check');

$routes->add('sylius_admin_ui_logout', '/logout')
->methods(['GET']);
->methods(['GET'])
;

$routes->add('sylius_admin_ui_dashboard', '/')
->controller(TemplateController::class)
->defaults([
'template' => '@SyliusAdminUi/dashboard/index.html.twig',
])
;
};
9 changes: 9 additions & 0 deletions src/AdminUi/templates/dashboard/index.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% extends '@SyliusAdminUi/base.html.twig' %}

{% block title %}
{{ 'sylius.ui.dashboard'|trans }} {{ parent() }}
{% endblock %}

{% block body %}
{% hook ['sylius_admin.dashboard.index', 'sylius_admin.common.index'] %}
{% endblock %}
3 changes: 1 addition & 2 deletions src/BootstrapAdminUi/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
},
"autoload-dev": {
"psr-4": {
"Sylius\\TwigHooks\\": "../TwigHooks/src/",
"TestApplication\\Sylius\\BootstrapAdminUi\\": "tests/Functional/.application/src/",
"Tests\\Sylius\\BootstrapAdminUi\\": "tests/"
}
Expand All @@ -47,7 +46,7 @@
"repositories": [
{
"type": "path",
"url": "../*/*"
"url": "../**"
}
],
"extra": {
Expand Down
63 changes: 63 additions & 0 deletions src/BootstrapAdminUi/config/app/twig_hooks/dashboard/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

/*
* This file is part of the Sylius package.
*
* (c) Sylius Sp. z o.o.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

declare(strict_types=1);

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container): void {
$container->extension('sylius_twig_hooks', [
'hooks' => [
'sylius_admin.dashboard.index' => [
'sidebar' => [
'template' => '@SyliusBootstrapAdminUi/shared/crud/common/sidebar.html.twig',
],
'navbar' => [
'template' => '@SyliusBootstrapAdminUi/shared/crud/common/navbar.html.twig',
],
'content' => [
'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content.html.twig',
],
],

'sylius_admin.dashboard.index.content' => [
'header' => [
'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header.html.twig',
],
'grid' => [
'enabled' => false,
],
],

'sylius_admin.dashboard.index.content.header' => [
'breadcrumbs' => [
'enabled' => false,
],
'title_block' => [
'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header/title_block.html.twig',
],
],

'sylius_admin.dashboard.index.content.header.title_block' => [
'title' => [
'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header/title_block/title.html.twig',
'configuration' => [
'title' => 'sylius.ui.dashboard',
'sylius_test_html_attribute' => 'dashboard-header',
],
],
'actions' => [
'enabled' => false,
],
],
],
]);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<header class="navbar d-print-none">
<div class="container-xl d-flex">
{% hook 'sylius_admin.common.component.navbar' with { _prefixes: [] } %}
</div>
</header>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default('/admin') %}
{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default(path('sylius_admin_ui_dashboard')) %}

<h1 class="navbar-brand">
<a href="{{ dashboard_path }}">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
)
%}

{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default('/admin') %}
{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default(path('sylius_admin_ui_dashboard')) %}

{{ breadcrumbs([
{ name: 'sylius.ui.dashboard', url: dashboard_path, active: false },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{% set title = hookable_metadata.configuration.title %}
{% endif %}

{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default('/admin') %}
{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default(path('sylius_admin_ui_dashboard')) %}

{{ breadcrumbs([
{ 'name': 'sylius.ui.dashboard', 'url': dashboard_path, 'active': false },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
{% set resource_show = { name: resource_show_name, active: true} %}
{% endif %}

{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default('/admin') %}
{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default(path('sylius_admin_ui_dashboard')) %}

{{ breadcrumbs([
{ name: 'sylius.ui.dashboard', url: dashboard_path, active: false },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
{% set resource_edit = { name: resource_edit_name, active: true} %}
{% endif %}

{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default('/admin') %}
{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default(path('sylius_admin_ui_dashboard')) %}

{{ breadcrumbs([
{ name: 'sylius.ui.dashboard', url: dashboard_path, active: false },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true],
Sylius\AdminUi\Symfony\SyliusAdminUiBundle::class => ['all' => true],
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
security:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
sylius_admin_ui:
resource: '@SyliusAdminUiBundle/config/routes.php'
#resource: '../../../../../../AdminUi/config/routes.php'
prefix: /admin
40 changes: 40 additions & 0 deletions tests/Functional/DashboardTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

declare(strict_types=1);

namespace Functional;

use App\Factory\UserFactory;
use Symfony\Bundle\FrameworkBundle\KernelBrowser;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Zenstruck\Foundry\Test\Factories;
use Zenstruck\Foundry\Test\ResetDatabase;

final class DashboardTest extends WebTestCase
{
Use Factories;
use ResetDatabase;

private KernelBrowser $client;

protected function setUp(): void
{
$this->client = self::createClient();

$user = UserFactory::new()
->admin()
->create()
;

$this->client->loginUser($user->_real());
}

public function testDashboard(): void
{
$this->client->request('GET', '/admin/');

self::assertResponseIsSuccessful();

self::assertSelectorTextContains('h1.page-title', 'Dashboard');
}
}

0 comments on commit e2957a0

Please sign in to comment.