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 7fed737
Show file tree
Hide file tree
Showing 11 changed files with 136 additions and 7 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 %}
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
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 7fed737

Please sign in to comment.