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 474799c commit 42a3649
Show file tree
Hide file tree
Showing 19 changed files with 192 additions and 20 deletions.
19 changes: 18 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ jobs:
- name: Run PHPUnit (Admin Ui)
run: (cd src/AdminUi/ && vendor/bin/phpunit)

- name: Clean package (Admin Ui)
run: (cd src/AdminUi/ && rm -rf vendor)

- name: "Restrict packages' versions (Bootstrap Admin Ui)"
run: |
(cd src/BootstrapAdminUi/ && composer global config --no-plugins allow-plugins.symfony/flex true)
Expand All @@ -115,6 +118,9 @@ jobs:
- name: Run PHPUnit (Bootstrap Admin Ui)
run: (cd src/BootstrapAdminUi/ && vendor/bin/phpunit)

- name: Clean package (Bootstrap Admin Ui)
run: (cd src/BootstrapAdminUi/ && rm -rf vendor)

- name: "Restrict packages' versions (Twig Hooks)"
run: |
(cd src/TwigHooks/ && composer global config --no-plugins allow-plugins.symfony/flex true)
Expand All @@ -128,6 +134,9 @@ jobs:
- name: Run PHPUnit (Twig Hooks)
run: (cd src/TwigHooks/ && vendor/bin/phpunit)

- name: Clean package (Twig Hooks)
run: (cd src/TwigHooks/ && rm -rf vendor)

- name: "Restrict packages' versions (Twig Extra)"
run: |
(cd src/TwigExtra/ && composer global config --no-plugins allow-plugins.symfony/flex true)
Expand All @@ -139,7 +148,12 @@ jobs:
run: (cd src/TwigExtra/ && composer update --no-interaction --no-scripts)

- name: Run PHPUnit (Twig Extra)
run: (cd src/TwigExtra/ && vendor/bin/phpunit)
run: |
(cd src/TwigExtra/ && vendor/bin/phpunit)
(cd src/TwigExtra/ && rm -rf vendor)
- name: Clean package (Twig TwigExtra)
run: (cd src/TwigExtra/ && rm -rf vendor)

- name: "Restrict packages' versions (Ui Translations)"
run: |
Expand All @@ -154,3 +168,6 @@ jobs:
- name: Run PHPUnit (Ui Translations)
run: (cd src/UiTranslations/ && vendor/bin/phpunit)

- name: Clean package (Ui Translations)
run: (cd src/UiTranslations/ && rm -rf vendor)

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
17 changes: 10 additions & 7 deletions src/AdminUi/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"require": {
"php": "^8.1",
"knplabs/knp-menu-bundle": "^3.0",
"sylius/twig-hooks": "^0.3 || dev-main",
"sylius/twig-hooks": "^0.4",
"symfony/http-kernel": "^6.4 || ^7.0",
"symfony/security-bundle": "^6.4 || ^7.0",
"symfony/security-http": "^6.4 || ^7.0",
Expand Down Expand Up @@ -39,20 +39,23 @@
"repositories": [
{
"type": "path",
"url": "../*/*"
"url": "../*"
}
],
"extra": {
"symfony": {
"require": "7.0.*"
}
},
"config": {
"allow-plugins": {
"symfony/runtime": true
},
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-main": "0.4.x-dev"
},
"symfony": {
"require": "7.1.*"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
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 %}
13 changes: 8 additions & 5 deletions src/BootstrapAdminUi/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
"require": {
"php": "^8.1",
"pagerfanta/twig": "^4.6",
"sylius/admin-ui": "dev-main",
"sylius/admin-ui": "^0.4",
"sylius/grid-bundle": "^1.13@alpha",
"sylius/resource-bundle": "^1.11 || ^1.12@alpha",
"sylius/twig-extra": "dev-main",
"sylius/twig-hooks": "^0.3 || dev-main",
"sylius/twig-extra": "^0.4",
"sylius/twig-hooks": "^0.4",
"symfony/asset": "^6.4 || ^7.0",
"symfony/http-kernel": "^6.4 || ^7.0",
"symfony/ux-autocomplete": "^2.17",
Expand All @@ -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,10 +46,14 @@
"repositories": [
{
"type": "path",
"url": "../*/*"
"url": "../*",
"canonical": true
}
],
"extra": {
"branch-alias": {
"dev-main": "0.4.x-dev"
},
"symfony": {
"require": "7.1.*"
}
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
8 changes: 8 additions & 0 deletions src/TwigExtra/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,13 @@
"symfony/runtime": true
},
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-main": "0.4.x-dev"
},
"symfony": {
"require": "7.1.*"
}
}
}
3 changes: 3 additions & 0 deletions src/TwigHooks/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-main": "0.4.x-dev"
},
"symfony": {
"require": "7.1.*"
}
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 42a3649

Please sign in to comment.