Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .github/workflows/analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,11 @@ jobs:
fail-fast: false
matrix:
php:
- 7.4
- 8.0
- 8.1
- 8.2
- 8.5
symfony:
- '5.4.*'
- '6.1.*'
- '6.4.*'
- '7.4.*'
env:
APP_ENV: test
steps:
Expand Down
49 changes: 14 additions & 35 deletions .github/workflows/sylius.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,45 +16,24 @@ jobs:
fail-fast: false
matrix:
php:
- 7.4
- 8.0
- 8.1
- 8.2
- 8.5
sylius:
- 1.9.0
- 1.10.0
- 1.11.0
- 1.12.0
- 2.0.0
- 2.1.0
- 2.2.0
symfony:
- 5.4
- 6.1
- 6.4
- 7.4
node:
- 14.x
- 24.x
exclude:
-
sylius: 1.9.0
php: 8.0
-
sylius: 1.9.0
php: 8.1
-
sylius: 1.11.0
php: 7.4
symfony: 5.4
-
sylius: 1.9.0
symfony: 6.1
-
sylius: 1.10.0
symfony: 6.1
-
sylius: 1.11.0
symfony: 6.1
-
sylius: 1.12.0
php: 7.4
-
php: '8.0'
symfony: 6.1
- php: "8.5"
symfony: "6.4"
- sylius: "2.0.0"
php: "8.5"
- sylius: "2.0.0"
symfony: "7.4"
env:
APP_ENV: test
package-name: synolia/sylius-admin-notification-plugin
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ CONSOLE=cd tests/Application && php bin/console -e test
COMPOSER=cd tests/Application && composer
YARN=cd tests/Application && yarn

SYLIUS_VERSION=1.12.0
SYMFONY_VERSION=6.1
PHP_VERSION=8.1
SYLIUS_VERSION=2.0.0
SYMFONY_VERSION=7.4
PHP_VERSION=8.2
PLUGIN_NAME=synolia/sylius-admin-notification-plugin

###
Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

<p align="center">
<a href="https://sylius.com" target="_blank">
<img src="https://demo.sylius.com/assets/shop/img/logo.png" />
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://media.sylius.com/sylius-logo-800-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://media.sylius.com/sylius-logo-800.png">
<img alt="Sylius Logo." src="https://media.sylius.com/sylius-logo-800.png">
</picture>
</a>
</p>

Expand All @@ -16,10 +20,10 @@

## Requirements

| | Version |
|:-------|:-----------|
| PHP | ^7.4, ^8.0 |
| Sylius | ^1.9 |
| | Version |
|:-------|:--------|
| PHP | ^8.2 |
| Sylius | ^2.0 |

## Installation

Expand Down
45 changes: 23 additions & 22 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,39 +9,40 @@
"description": "Admin notifications for Sylius.",
"license": "EUPL-1.2",
"require": {
"php": "^7.4 || ^8.0",
"php": "^8.2",
"ext-json": "*",
"sylius/sylius": "^1.9",
"symfony/cache": "^5.4|^6.0",
"sylius/sylius": "^2.0",
"symfony/cache": "^6.4 || ^7.3 || ^8.0",
"symfony/monolog-bundle": "^3.0",
"symfony/notifier": "^5.4|^6.0"
"symfony/notifier": "^6.4 || ^7.3"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "3.9.5",
"php-parallel-lint/php-parallel-lint": "1.3.2",
"phpmd/phpmd": "2.12.0",
"phpro/grumphp": "1.13.0",
"phpstan/extension-installer": "1.1.0",
"phpstan/phpstan": "1.8.2",
"phpstan/phpstan-doctrine": "1.3.11",
"phpstan/phpstan-strict-rules": "1.3.0",
"phpstan/phpstan-webmozart-assert": "1.2.0",
"phpunit/phpunit": "9.5.21",
"povils/phpmnd": "3.0.0",
"sebastian/phpcpd": "6.0.3",
"squizlabs/php_codesniffer": "3.7.1",
"symfony/browser-kit": "5.4.3",
"symfony/debug-bundle": "5.4.3",
"symfony/dotenv": "5.4.5",
"symfony/web-profiler-bundle": "5.4.10"
"friendsofphp/php-cs-fixer": "^3.9",
"php-parallel-lint/php-parallel-lint": "^1.3",
"phpmd/phpmd": "^2.12",
"phpro/grumphp": "^2.5",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^2.0",
"phpstan/phpstan-doctrine": "^2.0",
"phpstan/phpstan-strict-rules": "^2.0",
"phpstan/phpstan-webmozart-assert": "^2.0",
"phpunit/phpunit": "^9.5",
"povils/phpmnd": "^3.0",
"sebastian/phpcpd": "^6.0",
"squizlabs/php_codesniffer": "^3.7",
"symfony/browser-kit": "^6.4 || ^7.3",
"symfony/debug-bundle": "^6.4 || ^7.3",
"symfony/dotenv": "^6.4 || ^7.3",
"symfony/web-profiler-bundle": "^6.4 || ^7.3"
},
"config": {
"sort-packages": true,
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true,
"symfony/thanks": true,
"phpstan/extension-installer": true,
"phpro/grumphp": true
"phpro/grumphp": true,
"php-http/discovery": true
}
},
"autoload": {
Expand Down
30 changes: 12 additions & 18 deletions config/packages/app.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
sylius_ui:
events:
sylius.admin.layout.topbar_right:
blocks:
admin_notifications:
template: '@SynoliaSyliusAdminNotificationPlugin/Notifications/top_bar.html.twig'
priority: 11

framework:
notifier:
Expand Down Expand Up @@ -49,17 +42,21 @@ sylius_grid:
sortable: true
enabled: false
filters:
channel:
type: string
label: sylius.ui.channel
enabled: true
default_value: ~
levelName:
type: criticality
type: select
enabled: true
label: sylius.ui.channel
label: synolia_sylius_admin_notification.ui.level_name
form_options:
choices:
synolia_sylius_admin_notification.ui.levels.debug: DEBUG
synolia_sylius_admin_notification.ui.levels.info: INFO
synolia_sylius_admin_notification.ui.levels.notice: NOTICE
synolia_sylius_admin_notification.ui.levels.warning: WARNING
synolia_sylius_admin_notification.ui.levels.error: ERROR
synolia_sylius_admin_notification.ui.levels.critical: CRITICAL
synolia_sylius_admin_notification.ui.levels.alert: ALERT
synolia_sylius_admin_notification.ui.levels.emergency: EMERGENCY
default_value: ~

message:
type: string
label: synolia_sylius_admin_notification.ui.message
Expand All @@ -83,6 +80,3 @@ sylius_grid:
enabled: true
position: 100
options: { }
templates:
filter:
criticality: '@SynoliaSyliusAdminNotificationPlugin/Grid/Filter/criticality.html.twig'
12 changes: 3 additions & 9 deletions config/routes/admin_routing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,11 @@ synolia_sylius_admin_notification:
alias: synolia_sylius_admin_notification.notification
section: admin
redirect: index
templates: '@SyliusAdmin/Crud'
templates: '@SyliusAdmin/shared/crud'
grid: synolia_sylius_admin_notification
permission: true
except: ['show', 'create', 'update']
except: ['create', 'update']
vars:
all:
subheader: synolia_sylius_admin_notification.ui.admin.subheader
index:
icon: balance scale
hook_prefix: 'synolia.admin.notification'
type: sylius.resource

synolia_sylius_admin_notification_admin_notification_show:
path: /notifications/{id}/show
controller: Synolia\SyliusAdminNotificationPlugin\Controller\ShowAction
6 changes: 6 additions & 0 deletions config/twig_hooks/admin/layout/navbar.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
sylius_twig_hooks:
hooks:
'sylius_admin.common.component.navbar.items':
admin_notifications:
template: '@SynoliaSyliusAdminNotificationPlugin/Notifications/top_bar.html.twig'
priority: 11
5 changes: 5 additions & 0 deletions config/twig_hooks/admin/notification/show.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
sylius_twig_hooks:
hooks:
'synolia.admin.notification.show.content':
content:
template: '@SynoliaSyliusAdminNotificationPlugin/show.html.twig'
2 changes: 0 additions & 2 deletions dev/phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
parameters:
level: max
reportUnmatchedIgnoredErrors: false
checkMissingIterableValueType: false
checkGenericClassInNonGenericObjectType: false
bootstrapFiles:
- ../vendor/autoload.php
excludePaths:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ final class SynoliaSyliusAdminNotificationExtension extends AbstractResourceExte

public function load(array $configs, ContainerBuilder $container): void
{
/** @var array{driver: string, resources: array<string, mixed>} $config */
$config = $this->processConfiguration(new Configuration(), $configs);
$this->registerResources(
'synolia_sylius_admin_notification',
Expand All @@ -35,13 +36,16 @@ public function prepend(ContainerBuilder $container): void
{
$container->setParameter('synolia_sylius_admin_notification.model.admin_notification.class', AdminNotification::class);

/** @var iterable $config */
$config = Yaml::parseFile(\dirname(__DIR__, 2) . '/config/packages/app.yaml');
$configPath = \dirname(__DIR__, 2) . '/config';
/** @var array<string, array<string, mixed>> $config */
$config = Yaml::parseFile($configPath . '/packages/app.yaml');

foreach ($config as $packageName => $packageConfig) {
$container->prependExtensionConfig($packageName, $packageConfig);
}

$this->prependTwigHooks($container, $configPath . '/twig_hooks');

$this->prependDoctrineMigrations($container);
}

Expand All @@ -55,8 +59,36 @@ protected function getMigrationsDirectory(): string
return '@SynoliaSyliusAdminNotificationPlugin/migrations';
}

/**
* @return array<string>
*/
protected function getNamespacesOfMigrationsExecutedBefore(): array
{
return [];
}

private function prependTwigHooks(ContainerBuilder $container, string $configPath): void
{
if (!is_dir($configPath)) {
return;
}

$files = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($configPath, \RecursiveDirectoryIterator::SKIP_DOTS),
\RecursiveIteratorIterator::LEAVES_ONLY
);

/** @var \SplFileInfo $file */
foreach ($files as $file) {
if ('yaml' === $file->getExtension()) {
/** @var array<string, mixed> $config */
$config = Yaml::parseFile($file->getPathname());
if (isset($config['sylius_twig_hooks']) && \is_array($config['sylius_twig_hooks'])) {
/** @var array<string, mixed> $hooks */
$hooks = $config['sylius_twig_hooks'];
$container->prependExtensionConfig('sylius_twig_hooks', $hooks);
}
}
}
}
}
7 changes: 7 additions & 0 deletions src/Entity/AdminNotification.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class AdminNotification implements AdminNotificationInterface

protected string $message = '';

/** @var array<string, mixed> */
protected array $context = [];

public function getId(): ?int
Expand Down Expand Up @@ -61,11 +62,17 @@ public function setLevelName(string $levelName): self
return $this;
}

/**
* @return array<string, mixed>
*/
public function getContext(): array
{
return $this->context;
}

/**
* @param array<string, mixed> $context
*/
public function setContext(array $context): self
{
$this->context = $context;
Expand Down
6 changes: 6 additions & 0 deletions src/Entity/AdminNotificationInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,13 @@ public function getLevelName(): string;

public function setLevelName(string $levelName): self;

/**
* @return array<string, mixed>
*/
public function getContext(): array;

/**
* @param array<string, mixed> $context
*/
public function setContext(array $context): self;
}
Loading
Loading