first migrate
This commit is contained in:
parent
75caff77f1
commit
a65ecc8d47
@ -10,3 +10,7 @@ symfony-init: ## init Symfony
|
||||
$(EXECUTE_IN_APPLICATION_CONTAINER) php "/application/src/new/bin/console" importmap:install;
|
||||
$(EXECUTE_IN_APPLICATION_CONTAINER) php "/application/src/new/bin/console" asset-map:compile;
|
||||
$(EXECUTE_IN_APPLICATION_CONTAINER) php "/application/src/new/bin/console" assets:install;
|
||||
|
||||
.PHONY: symfony
|
||||
symfony: ## init Symfony
|
||||
$(EXECUTE_IN_APPLICATION_CONTAINER) php "/application/src/new/bin/console" ;
|
||||
|
||||
@ -25,11 +25,10 @@
|
||||
"cocur/slugify": "v3.1",
|
||||
"composer/package-versions-deprecated": "^1.8",
|
||||
"ddeboer/imap": "1.21.*",
|
||||
"doctrine/annotations": "^2",
|
||||
"doctrine/cache": "^2",
|
||||
"doctrine/doctrine-bundle": "^2",
|
||||
"doctrine/doctrine-bundle": "^3",
|
||||
"doctrine/mongodb-odm-bundle": "^5",
|
||||
"doctrine/orm": "^2.7",
|
||||
"doctrine/orm": "^3",
|
||||
"gabrielbull/ups-api": "dev-master",
|
||||
"gesdinet/jwt-refresh-token-bundle": "^1.5",
|
||||
"gregwar/captcha-bundle": "^2.2",
|
||||
@ -37,12 +36,12 @@
|
||||
"horstoeko/zugferd": "^1.0",
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
"jms/serializer-bundle": "5.*",
|
||||
"knplabs/knp-gaufrette-bundle": "0.7.*",
|
||||
"knplabs/knp-gaufrette-bundle": "0.9.*",
|
||||
"knplabs/knp-menu-bundle": "^3",
|
||||
"knplabs/knp-paginator-bundle": "5.9.*",
|
||||
"lexik/form-filter-bundle": "^7",
|
||||
"knplabs/knp-paginator-bundle": "6.10.*",
|
||||
"spiriitlabs/form-filter-bundle": "12.0.1",
|
||||
"lexik/jwt-authentication-bundle": "^3",
|
||||
"liip/imagine-bundle": "2.9.*",
|
||||
"liip/imagine-bundle": "2.16.*",
|
||||
"mistic100/randomcolor": "^1.1",
|
||||
"mobiledetect/mobiledetectlib": "^2.8",
|
||||
"mpdf/mpdf": "dev-qrcode",
|
||||
@ -50,10 +49,9 @@
|
||||
"nelmio/api-doc-bundle": "^4",
|
||||
"nelmio/cors-bundle": "^2.2",
|
||||
"nicolab/php-ftp-client": "^1.4",
|
||||
"oneup/uploader-bundle": "^3",
|
||||
"oneup/uploader-bundle": "^5",
|
||||
"oyejorge/less.php": "~1.5",
|
||||
"paypal/paypal-checkout-sdk": "dev-master",
|
||||
"paypal/rest-api-sdk-php": "dev-master",
|
||||
"paypal/paypal-server-sdk": "^2",
|
||||
"phenx/php-font-lib": "^1.0",
|
||||
"phpoffice/phpspreadsheet": "^1.28",
|
||||
"phpseclib/phpseclib": "~3.0",
|
||||
@ -65,26 +63,25 @@
|
||||
"ramsey/uuid": "4.5.1",
|
||||
"sauladam/shipment-tracker": "dev-master",
|
||||
"scssphp/scssphp": "v1.11.1",
|
||||
"sensio/framework-extra-bundle": "^6.1",
|
||||
"sofort/sofortlib-php": "3.3.2",
|
||||
"spatie/array-to-xml": "^3.4",
|
||||
"symfony/asset": "*",
|
||||
"symfony/asset-mapper": "6.4.*",
|
||||
"symfony/asset-mapper": "7.4.*",
|
||||
"symfony/console": "*",
|
||||
"symfony/dotenv": "*",
|
||||
"symfony/expression-language": "*",
|
||||
"symfony/flex": "^1.3.1",
|
||||
"symfony/flex": "^2",
|
||||
"symfony/form": "*",
|
||||
"symfony/framework-bundle": "*",
|
||||
"symfony/http-client": "*",
|
||||
"symfony/intl": "*",
|
||||
"symfony/lock": "6.4.*",
|
||||
"symfony/lock": "7.4.*",
|
||||
"symfony/mailer": "*",
|
||||
"symfony/mime": "*",
|
||||
"symfony/monolog-bundle": "^3.8",
|
||||
"symfony/monolog-bundle": "^4",
|
||||
"symfony/notifier": "*",
|
||||
"symfony/process": "*",
|
||||
"symfony/property-access": "6.4.4",
|
||||
"symfony/property-access": "7.4.*",
|
||||
"symfony/property-info": "*",
|
||||
"symfony/proxy-manager-bridge": "*",
|
||||
"symfony/runtime": "*",
|
||||
@ -199,7 +196,7 @@
|
||||
"extra": {
|
||||
"symfony": {
|
||||
"allow-contrib": false,
|
||||
"require": "6.4.*"
|
||||
"require": "7.4.*"
|
||||
},
|
||||
"public-dir": "web/"
|
||||
}
|
||||
|
||||
5109
src/new/composer.lock
generated
5109
src/new/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -7,13 +7,11 @@ return [
|
||||
Knp\Bundle\GaufretteBundle\KnpGaufretteBundle::class => ['all' => true],
|
||||
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
|
||||
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true],
|
||||
Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle::class => ['all' => true],
|
||||
Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true],
|
||||
Oneup\UploaderBundle\OneupUploaderBundle::class => ['all' => true],
|
||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
|
||||
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
|
||||
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
|
||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
||||
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
|
||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
||||
@ -63,4 +61,5 @@ return [
|
||||
Symfonycasts\TailwindBundle\SymfonycastsTailwindBundle::class => ['all' => true],
|
||||
Symfonycasts\SassBundle\SymfonycastsSassBundle::class => ['all' => true],
|
||||
Symfony\UX\Vue\VueBundle::class => ['all' => true],
|
||||
Spiriit\Bundle\FormFilterBundle\SpiriitFormFilterBundle::class => ['all' => true],
|
||||
];
|
||||
|
||||
@ -6,23 +6,20 @@ use PSC\Libraries\DoctrineBundle\ORM\Query\AST\Functions\SimpleFunction;
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
|
||||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$containerConfigurator->extension(
|
||||
'doctrine',
|
||||
[
|
||||
$containerConfigurator->extension('doctrine', [
|
||||
'dbal' => [
|
||||
'url' => '%env(resolve:DATABASE_URL)%',
|
||||
'charset' => 'utf8mb4',
|
||||
'default_table_options' => ['collate' => 'utf8mb4_unicode_ci']],
|
||||
'default_table_options' => ['collate' => 'utf8mb4_unicode_ci'],
|
||||
],
|
||||
'orm' => [
|
||||
'auto_generate_proxy_classes' => true,
|
||||
'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware',
|
||||
'auto_mapping' => true,
|
||||
'dql' => [
|
||||
'numeric_functions' => [
|
||||
'month' => SimpleFunction::class
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
);
|
||||
'month' => SimpleFunction::class,
|
||||
],
|
||||
],
|
||||
],
|
||||
]);
|
||||
};
|
||||
|
||||
@ -5,11 +5,56 @@ declare(strict_types=1);
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
|
||||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$containerConfigurator->extension('psc_shop_media', ['default_context' => 'default', 'contexts' => ['default' => ['providers' => ['psc.shop.media.provider.image', 'psc.shop.media.provider.file'], 'formats' => ['small' => ['width' => 100, 'quality' => 70], 'big' => ['width' => 500, 'quality' => 70]]]], 'providers' => ['image' => ['thumbnail' => 'psc.shop.media.thumbnail.liip_imagine', 'allowed_extensions' => ['jpg', 'png', 'gif', 'jpeg'], 'allowed_mime_types' => ['image/pjpeg', 'image/jpeg', 'image/png', 'image/x-png', 'image/gif']]], 'cdn' => ['server' => ['path' => '/uploads/media']], 'filesystem' => ['local' => ['directory' => '%kernel.project_dir%/web/uploads/media', 'create' => false]]]);
|
||||
$containerConfigurator->extension('psc_shop_media', [
|
||||
'default_context' => 'default',
|
||||
'contexts' => ['default' => [
|
||||
'providers' => ['psc.shop.media.provider.image', 'psc.shop.media.provider.file'],
|
||||
'formats' => ['small' => ['width' => 100, 'quality' => 70], 'big' => ['width' => 500, 'quality' => 70]],
|
||||
]],
|
||||
'providers' => ['image' => [
|
||||
'thumbnail' => 'psc.shop.media.thumbnail.liip_imagine',
|
||||
'allowed_extensions' => ['jpg', 'png', 'gif', 'jpeg'],
|
||||
'allowed_mime_types' => ['image/pjpeg', 'image/jpeg', 'image/png', 'image/x-png', 'image/gif'],
|
||||
]],
|
||||
'cdn' => ['server' => ['path' => '/uploads/media']],
|
||||
'filesystem' => ['local' => ['directory' => '%kernel.project_dir%/web/uploads/media', 'create' => false]],
|
||||
]);
|
||||
|
||||
$containerConfigurator->extension('knp_gaufrette', ['stream_wrapper' => null, 'adapters' => ['backend_articles' => ['safe_local' => ['directory' => '%kernel.project_dir%/web/uploads/backend_articles', 'create' => true]], 'steplayouter_motiv_guest' => ['local' => ['directory' => '%kernel.project_dir%/web/uploads/steplayouter_motiv_guest', 'create' => true]], 'steplayouter_motiv' => ['local' => ['directory' => '%kernel.project_dir%/web/market/motive/', 'create' => true]]], 'filesystems' => ['backend_articles' => ['adapter' => 'backend_articles', 'alias' => 'backend_articles_filesystem'], 'steplayouter_motiv_guest' => ['adapter' => 'steplayouter_motiv_guest'], 'steplayouter_motiv' => ['adapter' => 'steplayouter_motiv']]]);
|
||||
$containerConfigurator->extension('knp_gaufrette', [
|
||||
'stream_wrapper' => null,
|
||||
'adapters' => [
|
||||
'backend_articles' => ['safe_local' => [
|
||||
'directory' => '%kernel.project_dir%/web/uploads/backend_articles',
|
||||
'create' => true,
|
||||
]],
|
||||
'steplayouter_motiv_guest' => ['local' => [
|
||||
'directory' => '%kernel.project_dir%/web/uploads/steplayouter_motiv_guest',
|
||||
'create' => true,
|
||||
]],
|
||||
'steplayouter_motiv' => ['local' => [
|
||||
'directory' => '%kernel.project_dir%/web/market/motive/',
|
||||
'create' => true,
|
||||
]],
|
||||
],
|
||||
'filesystems' => [
|
||||
'backend_articles' => ['adapter' => 'backend_articles', 'alias' => 'backend_articles_filesystem'],
|
||||
'steplayouter_motiv_guest' => ['adapter' => 'steplayouter_motiv_guest'],
|
||||
'steplayouter_motiv' => ['adapter' => 'steplayouter_motiv'],
|
||||
],
|
||||
]);
|
||||
|
||||
$containerConfigurator->extension('knp_paginator', ['page_range' => 5, 'default_options' => ['page_name' => 'page', 'sort_field_name' => 'sort', 'sort_direction_name' => 'direction', 'distinct' => true], 'template' => ['pagination' => '@PSCBackendDashboard/pagination/bootstrap4.html.twig']]);
|
||||
$containerConfigurator->extension('knp_paginator', [
|
||||
'page_range' => 5,
|
||||
'default_options' => [
|
||||
'page_name' => 'page',
|
||||
'sort_field_name' => 'sort',
|
||||
'sort_direction_name' => 'direction',
|
||||
'distinct' => true,
|
||||
],
|
||||
'template' => ['pagination' => '@PSCBackendDashboard/pagination/bootstrap4.html.twig'],
|
||||
]);
|
||||
|
||||
$containerConfigurator->extension('lexik_form_filter', ['listeners' => ['doctrine_orm' => true, 'doctrine_dbal' => true, 'doctrine_mongodb' => true]]);
|
||||
$containerConfigurator->extension('spiriit_form_filter', ['listeners' => [
|
||||
'doctrine_orm' => true,
|
||||
]]);
|
||||
};
|
||||
|
||||
@ -4,6 +4,4 @@ declare(strict_types=1);
|
||||
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
|
||||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$containerConfigurator->extension('sensio_framework_extra', ['router' => ['annotations' => false], 'request' => ['converters' => true, 'disable' => ['doctrine.orm', 'datetime']]]);
|
||||
};
|
||||
return static function (ContainerConfigurator $containerConfigurator): void {};
|
||||
|
||||
2873
src/new/config/reference.php
Normal file
2873
src/new/config/reference.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,5 +5,5 @@ declare(strict_types=1);
|
||||
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
|
||||
|
||||
return static function (RoutingConfigurator $routingConfigurator): void {
|
||||
$routingConfigurator->import('../../src/PSC/Kernel.php', 'annotation');
|
||||
$routingConfigurator->import('../../src/PSC/Kernel.php', 'attribute');
|
||||
};
|
||||
|
||||
@ -20,11 +20,11 @@ return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
|
||||
$services = $containerConfigurator->services();
|
||||
|
||||
$services->defaults()
|
||||
->autowire()
|
||||
->autoconfigure();
|
||||
$services->defaults()->autowire()->autoconfigure();
|
||||
|
||||
$services->set('liip_imagine.data.loader.stream.steplayouter_motiv_guest', StreamLoader::class)
|
||||
->args([service('liip_imagine'), 'gaufrette://steplayouter_motiv_guest/'])
|
||||
->tag('liip_imagine.data.loader', ['loader' => 'stream.steplayouter_motiv_guest']);
|
||||
/* $services
|
||||
* ->set('liip_imagine.data.loader.stream.steplayouter_motiv_guest', StreamLoader::class)
|
||||
* ->args([service('liip_imagine'), 'gaufrette://steplayouter_motiv_guest/'])->tag('liip_imagine.data.loader', [
|
||||
* 'loader' => 'stream.steplayouter_motiv_guest',
|
||||
* ]);*/
|
||||
};
|
||||
|
||||
@ -11,17 +11,17 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class IconButtonExtension extends AbstractTypeExtension
|
||||
{
|
||||
public function buildView(FormView $view, FormInterface $form, array $options)
|
||||
public function buildView(FormView $view, FormInterface $form, array $options): void
|
||||
{
|
||||
$view->vars['icon_before'] = $options['icon_before'] ? $options['icon_before'] : '';
|
||||
$view->vars['icon_after'] = $options['icon_after'] ? $options['icon_after'] : '';
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'icon_before' => null,
|
||||
'icon_after' => null
|
||||
'icon_after' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_backend_dashboard:
|
||||
resource: "@PSCBackendDashboardBundle/Controller/"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend
|
||||
@ -1,4 +1,4 @@
|
||||
psc_backend_domain:
|
||||
resource: "@PSCBackendDomainBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/domain
|
||||
@ -1,6 +1,6 @@
|
||||
psc_backend_tools:
|
||||
resource: "@PSCBackendToolsBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/tools
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_component_api_system:
|
||||
resource: "@PSCComponentApiBundle/Api"
|
||||
prefix: /api
|
||||
type: annotation
|
||||
type: attribute
|
||||
|
||||
@ -21,28 +21,14 @@ class PrintPdfCommand extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('component:steplayouter:pdf:print')
|
||||
$this->setName('component:steplayouter:pdf:print')
|
||||
->setDescription('Create Print PDF')
|
||||
->addArgument(
|
||||
'outputDir',
|
||||
InputArgument::REQUIRED,
|
||||
'Layouter Id'
|
||||
)
|
||||
->addArgument(
|
||||
'layouterUid',
|
||||
InputArgument::REQUIRED,
|
||||
'Layouter Id'
|
||||
)
|
||||
->addArgument(
|
||||
'aliasUid',
|
||||
InputArgument::REQUIRED,
|
||||
'Alias Id'
|
||||
)
|
||||
;
|
||||
->addArgument('outputDir', InputArgument::REQUIRED, 'Layouter Id')
|
||||
->addArgument('layouterUid', InputArgument::REQUIRED, 'Layouter Id')
|
||||
->addArgument('aliasUid', InputArgument::REQUIRED, 'Alias Id');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$layouter_uuid = $input->getArgument('layouterUid');
|
||||
$outfilename = $input->getArgument('outputDir');
|
||||
@ -52,5 +38,7 @@ class PrintPdfCommand extends Command
|
||||
$pdfService = $this->getContainer()->get('psc.component.steplayouter.pdf');
|
||||
|
||||
$pdfService->create($outfilename, $layouter_uuid, $aliasUid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class PSCLibrariesAutoRegistryBundle extends Bundle
|
||||
{
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
parent::build($container);
|
||||
$container->addCompilerPass(new AutoRegistryCompilerPass());
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
psc_shop_account_backend:
|
||||
resource: "@PSCShopAccountBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/account
|
||||
|
||||
psc_shop_account_api:
|
||||
resource: "@PSCShopAccountBundle/Api"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /api/account
|
||||
@ -1,4 +1,4 @@
|
||||
psc_shop_basket_api:
|
||||
resource: "@PSCShopBasketBundle/Api"
|
||||
prefix: /api/basket
|
||||
type: annotation
|
||||
type: attribute
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
|
||||
psc_shop_cms_backend:
|
||||
resource: "@PSCShopCmsBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/cms
|
||||
|
||||
psc_shop_cms_frontend:
|
||||
resource: "@PSCShopCmsBundle/Controller/Frontend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /{_locale}/cms
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
psc_shop_communication_backend:
|
||||
resource: "@PSCShopCommunicationBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/communication
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
psc_shop_contact_backend:
|
||||
resource: "@PSCShopContactBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/contact
|
||||
|
||||
psc_shop_contact_api:
|
||||
resource: "@PSCShopContactBundle/Api"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /api/contact
|
||||
@ -9,7 +9,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-8">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z" />
|
||||
</svg>
|
||||
{{ 'customers'|trans }}
|
||||
{{ 'customers'|trans }} <span class="text-gray-500">{{ 'List'|trans }}</span>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="flex flex-wrap items-center gap-4 justify-end shrink-0 ml-auto">
|
||||
@ -93,9 +93,9 @@
|
||||
<td class="px-2 py-3">{{ contact.city }}</td>
|
||||
<td class="px-2 py-3">
|
||||
{% if contact.virtual == 1 %}
|
||||
<span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-red-100 text-red-800">{{ 'yes'|trans }}</span>
|
||||
<div class="badge-yes">{{ 'yes'|trans }}</div>
|
||||
{% else %}
|
||||
<span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-800">{{ 'no'|trans }}</span>
|
||||
<div class="badge-no">{{ 'no'|trans }}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-2 py-3">
|
||||
@ -106,7 +106,7 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-800">{{ 'no'|trans }}</span>
|
||||
<div class="badge-no">{{ 'no'|trans }}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-2 py-3 text-right">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
psc_shop_create_backend:
|
||||
resource: "@PSCShopCreateBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/shop/create
|
||||
|
||||
|
||||
|
||||
@ -13,9 +13,9 @@
|
||||
|
||||
namespace PSC\Shop\EntityBundle\Document;
|
||||
|
||||
use Doctrine\ODM\MongoDB\Mapping\Annotations\Document;
|
||||
use Doctrine\ODM\MongoDB\Mapping\Annotations\Field;
|
||||
use Doctrine\ODM\MongoDB\Mapping\Annotations\Id;
|
||||
use Doctrine\ODM\MongoDB\Mapping\Annotations\Document;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
#[Document]
|
||||
@ -54,43 +54,43 @@ class Instance implements UserInterface
|
||||
protected $smtpUsername;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $numberPattern;
|
||||
protected null|string $numberPattern;
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $numberStart;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $offerNumberPattern;
|
||||
protected null|string $offerNumberPattern;
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $offerNumberStart;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $invoiceNumberPattern = "";
|
||||
protected null|string $invoiceNumberPattern = '';
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $invoiceNumberStart = 0;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $cancelationNumberPattern = "";
|
||||
protected null|string $cancelationNumberPattern = '';
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $cancelationNumberStart = 0;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $creditNumberPattern = "";
|
||||
protected null|string $creditNumberPattern = '';
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $creditNumberStart = 0;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $parcelInvoiceNumberPattern = "";
|
||||
protected null|string $parcelInvoiceNumberPattern = '';
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $parcelInvoiceNumberStart = 0;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected ?string $parcelCancelationNumberPattern = "";
|
||||
protected null|string $parcelCancelationNumberPattern = '';
|
||||
|
||||
#[Field(type: 'int')]
|
||||
protected $parcelCancelationNumberStart = 0;
|
||||
@ -140,6 +140,7 @@ class Instance implements UserInterface
|
||||
*/
|
||||
#[Field(type: 'bool')]
|
||||
protected $supportlogin;
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
@ -383,7 +384,7 @@ class Instance implements UserInterface
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getOfferNumberPattern(): ?string
|
||||
public function getOfferNumberPattern(): null|string
|
||||
{
|
||||
return $this->offerNumberPattern;
|
||||
}
|
||||
@ -391,7 +392,7 @@ class Instance implements UserInterface
|
||||
/**
|
||||
* @param string $offerNumberPattern
|
||||
*/
|
||||
public function setOfferNumberPattern(?string $offerNumberPattern): void
|
||||
public function setOfferNumberPattern(null|string $offerNumberPattern): void
|
||||
{
|
||||
$this->offerNumberPattern = $offerNumberPattern;
|
||||
}
|
||||
@ -478,8 +479,8 @@ class Instance implements UserInterface
|
||||
|
||||
public function getFormatedSupportUrl()
|
||||
{
|
||||
if ($this->supporturl == "") {
|
||||
return "";
|
||||
if ($this->supporturl == '') {
|
||||
return '';
|
||||
}
|
||||
$url = parse_url($this->supporturl);
|
||||
return $url['scheme'] . '://' . $url['host'];
|
||||
@ -512,7 +513,7 @@ class Instance implements UserInterface
|
||||
/**
|
||||
* @param string $maintenanceText
|
||||
*/
|
||||
public function setMaintenanceText(?string $maintenanceText): void
|
||||
public function setMaintenanceText(null|string $maintenanceText): void
|
||||
{
|
||||
$this->maintenanceText = $maintenanceText;
|
||||
}
|
||||
@ -528,17 +529,17 @@ class Instance implements UserInterface
|
||||
/**
|
||||
* @param string $maintenanceTitle
|
||||
*/
|
||||
public function setMaintenanceTitle(?string $maintenanceTitle): void
|
||||
public function setMaintenanceTitle(null|string $maintenanceTitle): void
|
||||
{
|
||||
$this->maintenanceTitle = $maintenanceTitle;
|
||||
}
|
||||
|
||||
public function getInvoiceNumberPattern(): ?string
|
||||
public function getInvoiceNumberPattern(): null|string
|
||||
{
|
||||
return $this->invoiceNumberPattern;
|
||||
}
|
||||
|
||||
public function setInvoiceNumberPattern(?string $invoiceNumberPattern): void
|
||||
public function setInvoiceNumberPattern(null|string $invoiceNumberPattern): void
|
||||
{
|
||||
$this->invoiceNumberPattern = $invoiceNumberPattern;
|
||||
}
|
||||
@ -553,12 +554,12 @@ class Instance implements UserInterface
|
||||
$this->invoiceNumberStart = $invoiceNumberStart;
|
||||
}
|
||||
|
||||
public function getCancelationNumberPattern(): ?string
|
||||
public function getCancelationNumberPattern(): null|string
|
||||
{
|
||||
return $this->cancelationNumberPattern;
|
||||
}
|
||||
|
||||
public function setCancelationNumberPattern(?string $cancelationNumberPattern): void
|
||||
public function setCancelationNumberPattern(null|string $cancelationNumberPattern): void
|
||||
{
|
||||
$this->cancelationNumberPattern = $cancelationNumberPattern;
|
||||
}
|
||||
@ -573,12 +574,12 @@ class Instance implements UserInterface
|
||||
$this->cancelationNumberStart = $cancelationNumberStart;
|
||||
}
|
||||
|
||||
public function getCreditNumberPattern(): ?string
|
||||
public function getCreditNumberPattern(): null|string
|
||||
{
|
||||
return $this->creditNumberPattern;
|
||||
}
|
||||
|
||||
public function setCreditNumberPattern(?string $creditNumberPattern): void
|
||||
public function setCreditNumberPattern(null|string $creditNumberPattern): void
|
||||
{
|
||||
$this->creditNumberPattern = $creditNumberPattern;
|
||||
}
|
||||
@ -593,12 +594,12 @@ class Instance implements UserInterface
|
||||
$this->creditNumberStart = $creditNumberStart;
|
||||
}
|
||||
|
||||
public function getParcelInvoiceNumberPattern(): ?string
|
||||
public function getParcelInvoiceNumberPattern(): null|string
|
||||
{
|
||||
return $this->parcelInvoiceNumberPattern;
|
||||
}
|
||||
|
||||
public function setParcelInvoiceNumberPattern(?string $parcelInvoiceNumberPattern): void
|
||||
public function setParcelInvoiceNumberPattern(null|string $parcelInvoiceNumberPattern): void
|
||||
{
|
||||
$this->parcelInvoiceNumberPattern = $parcelInvoiceNumberPattern;
|
||||
}
|
||||
@ -613,12 +614,12 @@ class Instance implements UserInterface
|
||||
$this->parcelInvoiceNumberStart = $parcelInvoiceNumberStart;
|
||||
}
|
||||
|
||||
public function getParcelCancelationNumberPattern(): ?string
|
||||
public function getParcelCancelationNumberPattern(): null|string
|
||||
{
|
||||
return $this->parcelCancelationNumberPattern;
|
||||
}
|
||||
|
||||
public function setParcelCancelationNumberPattern(?string $parcelCancelationNumberPattern): void
|
||||
public function setParcelCancelationNumberPattern(null|string $parcelCancelationNumberPattern): void
|
||||
{
|
||||
$this->parcelCancelationNumberPattern = $parcelCancelationNumberPattern;
|
||||
}
|
||||
@ -632,18 +633,18 @@ class Instance implements UserInterface
|
||||
{
|
||||
$this->parcelCancelationNumberStart = $parcelCancelationNumberStart;
|
||||
}
|
||||
|
||||
public function getRoles(): array
|
||||
{
|
||||
return ['ROLE_API'];
|
||||
}
|
||||
public function eraseCredentials()
|
||||
|
||||
public function eraseCredentials(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function getUserIdentifier(): string
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -328,7 +328,7 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function eraseCredentials()
|
||||
public function eraseCredentials(): void
|
||||
{
|
||||
//$this->setPassword("");
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
namespace PSC\Shop\EntityBundle\Generator;
|
||||
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\ORM\Id\AbstractIdGenerator;
|
||||
|
||||
/**
|
||||
@ -21,4 +22,9 @@ class UuidGenerator extends AbstractIdGenerator
|
||||
{
|
||||
return \Ramsey\Uuid\Uuid::uuid4();
|
||||
}
|
||||
|
||||
public function generateId(EntityManagerInterface $em, null|object $entity): mixed
|
||||
{
|
||||
return \Ramsey\Uuid\Uuid::uuid4();
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ class IdToMediaTransformer implements DataTransformerInterface
|
||||
* @throws UnexpectedTypeException when the argument is not an object
|
||||
* @throws \InvalidArgumentException when the parameter is a collection
|
||||
*/
|
||||
public function transform($entity)
|
||||
public function transform(mixed $entity): mixed
|
||||
{
|
||||
if (empty($entity)) {
|
||||
return '';
|
||||
@ -50,7 +50,7 @@ class IdToMediaTransformer implements DataTransformerInterface
|
||||
|
||||
if (strlen($entity) > 30) {
|
||||
return [
|
||||
'id' => $entity
|
||||
'id' => $entity,
|
||||
];
|
||||
}
|
||||
|
||||
@ -63,32 +63,24 @@ class IdToMediaTransformer implements DataTransformerInterface
|
||||
if ($entity) {
|
||||
return [
|
||||
'ent' => $entity,
|
||||
'id' => $entity->getId()
|
||||
'id' => $entity->getId(),
|
||||
];
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
*
|
||||
* @return Media
|
||||
*
|
||||
* @throws UnexpectedTypeException when the parameter is not numeric
|
||||
* @throws TransformationFailedException when the media item cannot be loaded/found
|
||||
*/
|
||||
public function reverseTransform($key)
|
||||
public function reverseTransform(mixed $key): mixed
|
||||
{
|
||||
if (empty($key)) {
|
||||
return null;
|
||||
}
|
||||
/*if (!is_numeric($key)) {
|
||||
throw new UnexpectedTypeException($key, 'numeric');
|
||||
}*/
|
||||
* throw new UnexpectedTypeException($key, 'numeric');
|
||||
* }*/
|
||||
/*if (!($entity = $this->objectManager->getRepository('KunstmaanMediaBundle:Media')->find($key))) {
|
||||
throw new TransformationFailedException(sprintf('The entity with key "%s" could not be found', $key));
|
||||
}*/
|
||||
* throw new TransformationFailedException(sprintf('The entity with key "%s" could not be found', $key));
|
||||
* }*/
|
||||
//$this->currentValueContainer->setCurrentValue($entity);
|
||||
|
||||
//return $entity;
|
||||
|
||||
@ -4,9 +4,9 @@ namespace PSC\Shop\MediaBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
/**
|
||||
@ -14,44 +14,31 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
*/
|
||||
class ImageType extends HiddenType
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
parent::buildForm($builder, $options);
|
||||
}
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
public function buildView(FormView $view, FormInterface $form, array $options)
|
||||
{
|
||||
parent::buildView($view, $form, $options);
|
||||
}
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
{
|
||||
parent::configureOptions($resolver);
|
||||
}
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
public function getParent()
|
||||
{
|
||||
return HiddenType::class;
|
||||
}
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->getBlockPrefix();
|
||||
}
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
public function getBlockPrefix(): string
|
||||
{
|
||||
return 'media_image';
|
||||
|
||||
@ -28,7 +28,7 @@ class PSCShopMediaBundle extends Bundle
|
||||
/**
|
||||
* @param ContainerBuilder $container A ContainerBuilder instance
|
||||
*/
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
parent::build($container);
|
||||
$container->addCompilerPass(new MediaHandlerCompilerPass());
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
psc_shop_media_backend:
|
||||
resource: "@PSCShopMediaBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/media
|
||||
|
||||
psc_shop_media_api:
|
||||
resource: "@PSCShopMediaBundle/Api"
|
||||
prefix: /api/media
|
||||
type: annotation
|
||||
type: attribute
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_shop_news_backend:
|
||||
resource: "@PSCShopNewsBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/news
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
|
||||
namespace PSC\Shop\OrderBundle\Normalizer;
|
||||
|
||||
|
||||
use BadMethodCallException;
|
||||
use PSC\Shop\OrderBundle\Model\Order\Position\IProductTypeObject;
|
||||
use PSC\System\PluginBundle\Service\ProductType;
|
||||
@ -12,7 +11,6 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
|
||||
|
||||
class SpecialProductDenormalizer implements DenormalizerInterface, DenormalizerAwareInterface
|
||||
{
|
||||
|
||||
use DenormalizerAwareTrait;
|
||||
|
||||
private ProductType $productRegistry;
|
||||
@ -22,20 +20,30 @@ class SpecialProductDenormalizer implements DenormalizerInterface, DenormalizerA
|
||||
$this->productRegistry = $productRegistry;
|
||||
}
|
||||
|
||||
public function denormalize(mixed $data, string $type, string $format = null, array $context = [])
|
||||
public function denormalize(mixed $data, string $type, null|string $format = null, array $context = []): mixed
|
||||
{
|
||||
if ($type = $this->productRegistry->getProductType($data['typ'])->getProductTypeObject()) {
|
||||
return $this->denormalizer->denormalize($data, $type::class, $format, $context);
|
||||
}
|
||||
}
|
||||
|
||||
public function supportsDenormalization(mixed $data, string $type, string $format = null): bool
|
||||
{
|
||||
public function supportsDenormalization(
|
||||
mixed $data,
|
||||
string $type,
|
||||
null|string $format = null,
|
||||
array $context = [],
|
||||
): bool {
|
||||
if (null === $this->denormalizer) {
|
||||
throw new BadMethodCallException(sprintf('The nested denormalizer needs to be set to allow "%s()" to be used.', __METHOD__));
|
||||
throw new BadMethodCallException(sprintf(
|
||||
'The nested denormalizer needs to be set to allow "%s()" to be used.',
|
||||
__METHOD__,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
return $type == IProductTypeObject::class;
|
||||
}
|
||||
|
||||
public function getSupportedTypes(null|string $format): array
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
psc_shop_order_backend:
|
||||
resource: "@PSCShopOrderBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/order
|
||||
|
||||
|
||||
psc_shop_order_api:
|
||||
resource: "@PSCShopOrderBundle/Api"
|
||||
prefix: /api
|
||||
type: annotation
|
||||
type: attribute
|
||||
@ -8,7 +8,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-8">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z" />
|
||||
</svg>
|
||||
{{'order'|trans}} <span class="text-gray-500">{{'list'|trans}}</span>
|
||||
{{'order'|trans}} <span class="text-gray-500">{{'List'|trans}}</span>
|
||||
</h1>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
psc_shop_payment_backend:
|
||||
resource: "@PSCShopPaymentBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/payment
|
||||
|
||||
psc_shop_payment_frontend:
|
||||
resource: "@PSCShopPaymentBundle/Controller/Frontend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /payment
|
||||
|
||||
psc_shop_payment_api:
|
||||
resource: "@PSCShopPaymentBundle/Api"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /api/payment
|
||||
|
||||
@ -1,58 +1,80 @@
|
||||
{% extends 'backend_base.html.twig' %}
|
||||
{% extends 'backend_tailwind_base.html.twig' %}
|
||||
{% trans_default_domain 'core_payment_list' %}
|
||||
|
||||
{% block header %}
|
||||
<div class="flex flex-wrap items-center gap-4 justify-between w-full">
|
||||
<div>
|
||||
<h1 class="text-psc text-2xl font-medium flex flex-row gap-1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-8">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 8.25h19.5M2.25 9h19.5m-16.5 5.25h6m-6 2.25h3m-3.75 3h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5z" />
|
||||
</svg>
|
||||
{{'paymentmethods'|trans}} <span class="text-gray-500">{{'List'|trans}}</span>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="flex flex-wrap items-center gap-4 justify-end shrink-0 ml-auto">
|
||||
<a href="{{ path("psc_shop_payment_backend_create") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" />
|
||||
</svg>
|
||||
{{'Addpaymentmethod'|trans}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="header">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
||||
<h3>
|
||||
<i class="fa-fw fa fa-credit-card"></i>
|
||||
{{'paymentmethods'|trans}} <span>>
|
||||
{{'List'|trans}} </span>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="panel">
|
||||
<div class="body">
|
||||
<a class="btn btn-info btn-sm" href="{{ path("psc_shop_payment_backend_create") }}">{{'Addpaymentmethod'|trans}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="body">
|
||||
<table class="table">
|
||||
<thead class="thead-dark">
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="rounded-sm border bg-white px-7.5 py-6 shadow-lg dark:border-strokedark dark:bg-boxdark">
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full text-sm">
|
||||
<thead class="bg-slate-100 border-t border-stroke">
|
||||
<tr>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'Uid'|trans, 'payment.uid') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'active'|trans, 'shipping.enable') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'Pos'|trans, 'payment.pos') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'Name'|trans, 'payment.title') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'cost'|trans, 'payment.kosten') }}</th>
|
||||
<th></th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'Uid'|trans, 'payment.uid') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'active'|trans, 'payment.enable') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'Pos'|trans, 'payment.pos') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'Name'|trans, 'payment.title') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'cost'|trans, 'payment.price') }}</th>
|
||||
<th class="px-2 py-3 text-right font-medium text-gray-700">Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for payment in pagination %}
|
||||
<tr {% if loop.index is odd %}class="color"{% endif %}>
|
||||
<td>{{ payment.uid }}</td>
|
||||
<td>{% if payment.enable %}<span class="badge bg-success">{{'yes'|trans}}</span>{% else %}<span
|
||||
class="badge bg-warning">>{{'no'|trans}}</span>{% endif %}</td>
|
||||
<td>{{ payment.pos }}</td>
|
||||
<td>{{ payment.title }}</td>
|
||||
<td>{{ payment.price|number_format(2, ',', '.') }}€</td>
|
||||
<td class="text-end">
|
||||
<a href="{{ path("psc_shop_payment_backend_edit", {uid: payment.uid}) }}"
|
||||
class="btn btn-info btn-sm"><span class="fa fa-edit"></span></a>
|
||||
<a href="{{ path("psc_shop_payment_backend_delete", {uid: payment.uid}) }}"
|
||||
class="btn btn-danger btn-sm"><span class="fa fa-trash"></span></a>
|
||||
<tr class="border-t border-stroke hover:bg-gray-50">
|
||||
<td class="px-2 py-3 font-medium">{{ payment.uid }}</td>
|
||||
<td class="px-2 py-3">
|
||||
{% if payment.enable %}
|
||||
<div class="badge-yes">{{'yes'|trans}}</div>
|
||||
{% else %}
|
||||
<div class="badge-no">{{'no'|trans}}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-2 py-3">{{ payment.pos }}</td>
|
||||
<td class="px-2 py-3">{{ payment.title }}</td>
|
||||
<td class="px-2 py-3">{{ payment.price|number_format(2, ',', '.') }}€</td>
|
||||
<td class="px-2 py-3 text-right">
|
||||
<div class="flex flex-row gap-2 justify-end">
|
||||
<a href="{{ path("psc_shop_payment_backend_edit", {uid: payment.uid}) }}" class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="table-icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="{{ path("psc_shop_payment_backend_delete", {uid: payment.uid}) }}" class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="table-icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="navigation">
|
||||
{{ knp_pagination_render(pagination) }}
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
{{ knp_pagination_render(pagination, 'tailwind_pagination.html.twig', {}, {
|
||||
'sortableTemplate': 'tailwind_sortable.html.twig'
|
||||
}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
psc_shop_products_frontend:
|
||||
resource: "@PSCShopProductBundle/Controller/Frontend/Product"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /product
|
||||
|
||||
psc_shop_products_backend:
|
||||
resource: "@PSCShopProductBundle/Controller/Backend/Product"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/product
|
||||
psc_shop_products_api:
|
||||
resource: "@PSCShopProductBundle/Api"
|
||||
prefix: /api
|
||||
type: annotation
|
||||
type: attribute
|
||||
psc_shop_productgroup_backend:
|
||||
resource: "@PSCShopProductBundle/Controller/Backend/Productgroup"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/productgroup
|
||||
|
||||
@ -58,8 +58,18 @@ class DoEveryDayCommand extends Command
|
||||
private Log $logService;
|
||||
private iterable $internalQueues;
|
||||
|
||||
public function __construct(#[TaggedIterator('psc.queues.internal')] iterable $internalQueues, EntityManagerInterface $entityManager, Manager $eventManager, Registry $eventRegistry, \PSC\Shop\QueueBundle\Service\Queue\Registry $queueRegistry, DocumentManager $documentManager, KernelInterface $kernel, Log $logService, private readonly \Symfony\Component\DependencyInjection\ContainerInterface $containerService)
|
||||
{
|
||||
public function __construct(
|
||||
#[TaggedIterator('psc.queues.internal')]
|
||||
iterable $internalQueues,
|
||||
EntityManagerInterface $entityManager,
|
||||
Manager $eventManager,
|
||||
Registry $eventRegistry,
|
||||
\PSC\Shop\QueueBundle\Service\Queue\Registry $queueRegistry,
|
||||
DocumentManager $documentManager,
|
||||
KernelInterface $kernel,
|
||||
Log $logService,
|
||||
private readonly \Symfony\Component\DependencyInjection\ContainerInterface $containerService,
|
||||
) {
|
||||
$this->eventManager = $eventManager;
|
||||
$this->eventRegistry = $eventRegistry;
|
||||
$this->queueRegistry = $queueRegistry;
|
||||
@ -75,11 +85,10 @@ class DoEveryDayCommand extends Command
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setDescription('Run the Jobs');
|
||||
$this->setDescription('Run the Jobs');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$store = new FlockStore();
|
||||
$factory = new LockFactory($store);
|
||||
@ -91,13 +100,11 @@ class DoEveryDayCommand extends Command
|
||||
$queue->execute();
|
||||
}
|
||||
|
||||
$queues = $this->mongoDb
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Queue')
|
||||
->findBy(
|
||||
array('eventType' => 'system_plugin_every_day', 'active' => true),
|
||||
$queues = $this->mongoDb->getRepository('PSC\Shop\EntityBundle\Document\Queue')->findBy(
|
||||
['eventType' => 'system_plugin_every_day', 'active' => true],
|
||||
[
|
||||
'pos' => 'ASC'
|
||||
]
|
||||
'pos' => 'ASC',
|
||||
],
|
||||
);
|
||||
|
||||
/**
|
||||
@ -108,14 +115,21 @@ class DoEveryDayCommand extends Command
|
||||
try {
|
||||
$success = $queueObj->execute(new EveryRun(), $queue);
|
||||
} catch (\Exception $exception) {
|
||||
$this->logService->createLogEntry(new Shop(), LogEntry::ERROR, "Cron", "", $exception->getMessage(), []);
|
||||
$this->logService->createLogEntry(
|
||||
new Shop(),
|
||||
LogEntry::ERROR,
|
||||
'Cron',
|
||||
'',
|
||||
$exception->getMessage(),
|
||||
[],
|
||||
);
|
||||
}
|
||||
}
|
||||
$this->eventManager->clearManager();
|
||||
}
|
||||
|
||||
date_default_timezone_set('Europe/Berlin');
|
||||
$output->writeln("Successfully ".date('Y-m-d H:i:s'));
|
||||
$output->writeln('Successfully ' . date('Y-m-d H:i:s'));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -58,8 +58,18 @@ class DoEveryHourCommand extends Command
|
||||
private Log $logService;
|
||||
private iterable $internalQueues;
|
||||
|
||||
public function __construct(#[TaggedIterator('psc.queues.internal')] iterable $internalQueues, EntityManagerInterface $entityManager, Manager $eventManager, Registry $eventRegistry, \PSC\Shop\QueueBundle\Service\Queue\Registry $queueRegistry, DocumentManager $documentManager, KernelInterface $kernel, Log $logService, private readonly \Symfony\Component\DependencyInjection\ContainerInterface $containerService)
|
||||
{
|
||||
public function __construct(
|
||||
#[TaggedIterator('psc.queues.internal')]
|
||||
iterable $internalQueues,
|
||||
EntityManagerInterface $entityManager,
|
||||
Manager $eventManager,
|
||||
Registry $eventRegistry,
|
||||
\PSC\Shop\QueueBundle\Service\Queue\Registry $queueRegistry,
|
||||
DocumentManager $documentManager,
|
||||
KernelInterface $kernel,
|
||||
Log $logService,
|
||||
private readonly \Symfony\Component\DependencyInjection\ContainerInterface $containerService,
|
||||
) {
|
||||
$this->eventManager = $eventManager;
|
||||
$this->eventRegistry = $eventRegistry;
|
||||
$this->queueRegistry = $queueRegistry;
|
||||
@ -75,11 +85,10 @@ class DoEveryHourCommand extends Command
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setDescription('Run the Jobs');
|
||||
$this->setDescription('Run the Jobs');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$store = new FlockStore();
|
||||
$factory = new LockFactory($store);
|
||||
@ -91,13 +100,11 @@ class DoEveryHourCommand extends Command
|
||||
$queue->execute();
|
||||
}
|
||||
|
||||
$queues = $this->mongoDb
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Queue')
|
||||
->findBy(
|
||||
array('eventType' => 'system_plugin_every_hour', 'active' => true),
|
||||
$queues = $this->mongoDb->getRepository('PSC\Shop\EntityBundle\Document\Queue')->findBy(
|
||||
['eventType' => 'system_plugin_every_hour', 'active' => true],
|
||||
[
|
||||
'pos' => 'ASC'
|
||||
]
|
||||
'pos' => 'ASC',
|
||||
],
|
||||
);
|
||||
|
||||
/**
|
||||
@ -108,7 +115,14 @@ class DoEveryHourCommand extends Command
|
||||
try {
|
||||
$success = $queueObj->execute(new EveryRun(), $queue);
|
||||
} catch (\Exception $exception) {
|
||||
$this->logService->createLogEntry(new Shop(), LogEntry::ERROR, "Cron", "", $exception->getMessage(), []);
|
||||
$this->logService->createLogEntry(
|
||||
new Shop(),
|
||||
LogEntry::ERROR,
|
||||
'Cron',
|
||||
'',
|
||||
$exception->getMessage(),
|
||||
[],
|
||||
);
|
||||
}
|
||||
}
|
||||
$this->eventManager->clearManager();
|
||||
@ -122,6 +136,7 @@ class DoEveryHourCommand extends Command
|
||||
|
||||
if ($event instanceof ClearCache) {
|
||||
$fs = new Filesystem();
|
||||
|
||||
//$fs->remove($this->kernel->getCacheDir());
|
||||
} elseif ($event instanceof InstallPlugin) {
|
||||
$event->setData($job->getData());
|
||||
@ -131,11 +146,10 @@ class DoEveryHourCommand extends Command
|
||||
|
||||
$plugin = $this->mongoDb
|
||||
->getRepository(Plugin::class)
|
||||
->findOneBy(array('id' => (string)$event->getPlugin()));
|
||||
->findOneBy(['id' => (string) $event->getPlugin()]);
|
||||
$plugin->setShouldBeInstalled(false);
|
||||
|
||||
$this->mongoDb->persist($plugin);
|
||||
|
||||
} elseif ($event instanceof DeInstallPlugin) {
|
||||
$event->setData($job->getData());
|
||||
$event->setShop($job->getShop());
|
||||
@ -144,12 +158,11 @@ class DoEveryHourCommand extends Command
|
||||
|
||||
$plugin = $this->mongoDb
|
||||
->getRepository(Plugin::class)
|
||||
->findOneBy(array('id' => (string)$event->getPlugin()));
|
||||
->findOneBy(['id' => (string) $event->getPlugin()]);
|
||||
$plugin->setInstalled(false);
|
||||
$plugin->setShouldBeDeInstalled(false);
|
||||
|
||||
$this->mongoDb->persist($plugin);
|
||||
|
||||
} elseif ($event instanceof InternalEvent) {
|
||||
$event->setData($job->getData());
|
||||
$event->setShop($job->getShop());
|
||||
@ -157,20 +170,17 @@ class DoEveryHourCommand extends Command
|
||||
$event->setData($job->getData());
|
||||
$event->setShop($job->getShop());
|
||||
|
||||
$queues = $this->mongoDb
|
||||
->getRepository(Queue::class)
|
||||
->findBy(
|
||||
array(
|
||||
$queues = $this->mongoDb->getRepository(Queue::class)->findBy(
|
||||
[
|
||||
'shop' => $job->getShop(),
|
||||
'active' => true,
|
||||
'eventType' => $job->getEvent()
|
||||
),
|
||||
'eventType' => $job->getEvent(),
|
||||
],
|
||||
[
|
||||
'pos' => 'ASC'
|
||||
]
|
||||
'pos' => 'ASC',
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @var Queue $queue
|
||||
*/
|
||||
@ -184,20 +194,20 @@ class DoEveryHourCommand extends Command
|
||||
/**
|
||||
* @var JobLog $jobLog
|
||||
*/
|
||||
$jobLog = $this->mongoDb->getRepository(JobLog::class)->findOneBy(
|
||||
[
|
||||
$jobLog = $this->mongoDb
|
||||
->getRepository(JobLog::class)
|
||||
->findOneBy([
|
||||
'job' => $job->getId(),
|
||||
'queue' => $queue->getId()
|
||||
]
|
||||
);
|
||||
'queue' => $queue->getId(),
|
||||
]);
|
||||
|
||||
if ($jobLog) {
|
||||
if ($jobLog->getError() == "") {
|
||||
if ($jobLog->getError() == '') {
|
||||
continue;
|
||||
}
|
||||
$jobLog->incCount();
|
||||
|
||||
if ($jobLog->getCount() > 2 && $jobLog->getError() != "") {
|
||||
if ($jobLog->getCount() > 2 && $jobLog->getError() != '') {
|
||||
$canBeRemoved = false;
|
||||
continue;
|
||||
}
|
||||
@ -214,7 +224,7 @@ class DoEveryHourCommand extends Command
|
||||
$canBeRemoved = false;
|
||||
$jobLog->setError($queueObj->getError());
|
||||
} else {
|
||||
$jobLog->setError("");
|
||||
$jobLog->setError('');
|
||||
}
|
||||
$this->mongoDb->persist($jobLog);
|
||||
$this->mongoDb->flush();
|
||||
@ -236,12 +246,16 @@ class DoEveryHourCommand extends Command
|
||||
}
|
||||
|
||||
if (count($this->eventManager->getAll()) == 0) {
|
||||
$this->mongoDb->createQueryBuilder(JobLog::class)->remove()->getQuery()->execute();
|
||||
$this->mongoDb
|
||||
->createQueryBuilder(JobLog::class)
|
||||
->remove()
|
||||
->getQuery()
|
||||
->execute();
|
||||
}
|
||||
}
|
||||
|
||||
date_default_timezone_set('Europe/Berlin');
|
||||
$output->writeln("Successfully ".date('Y-m-d H:i:s'));
|
||||
$output->writeln('Successfully ' . date('Y-m-d H:i:s'));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -58,8 +58,18 @@ class DoEveryMinuteCommand extends Command
|
||||
private Log $logService;
|
||||
private iterable $internalQueues;
|
||||
|
||||
public function __construct(#[TaggedIterator('psc.queues.internal')] iterable $internalQueues, EntityManagerInterface $entityManager, Manager $eventManager, Registry $eventRegistry, \PSC\Shop\QueueBundle\Service\Queue\Registry $queueRegistry, DocumentManager $documentManager, KernelInterface $kernel, Log $logService, private readonly \Symfony\Component\DependencyInjection\ContainerInterface $containerService)
|
||||
{
|
||||
public function __construct(
|
||||
#[TaggedIterator('psc.queues.internal')]
|
||||
iterable $internalQueues,
|
||||
EntityManagerInterface $entityManager,
|
||||
Manager $eventManager,
|
||||
Registry $eventRegistry,
|
||||
\PSC\Shop\QueueBundle\Service\Queue\Registry $queueRegistry,
|
||||
DocumentManager $documentManager,
|
||||
KernelInterface $kernel,
|
||||
Log $logService,
|
||||
private readonly \Symfony\Component\DependencyInjection\ContainerInterface $containerService,
|
||||
) {
|
||||
$this->eventManager = $eventManager;
|
||||
$this->eventRegistry = $eventRegistry;
|
||||
$this->queueRegistry = $queueRegistry;
|
||||
@ -75,11 +85,10 @@ class DoEveryMinuteCommand extends Command
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setDescription('Run the Jobs');
|
||||
$this->setDescription('Run the Jobs');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$store = new FlockStore();
|
||||
$factory = new LockFactory($store);
|
||||
@ -91,13 +100,11 @@ class DoEveryMinuteCommand extends Command
|
||||
$queue->execute();
|
||||
}
|
||||
|
||||
$queues = $this->mongoDb
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Queue')
|
||||
->findBy(
|
||||
array('eventType' => 'system_plugin_every_run', 'active' => true),
|
||||
$queues = $this->mongoDb->getRepository('PSC\Shop\EntityBundle\Document\Queue')->findBy(
|
||||
['eventType' => 'system_plugin_every_run', 'active' => true],
|
||||
[
|
||||
'pos' => 'ASC'
|
||||
]
|
||||
'pos' => 'ASC',
|
||||
],
|
||||
);
|
||||
|
||||
/**
|
||||
@ -108,7 +115,14 @@ class DoEveryMinuteCommand extends Command
|
||||
try {
|
||||
$success = $queueObj->execute(new EveryRun(), $queue);
|
||||
} catch (\Exception $exception) {
|
||||
$this->logService->createLogEntry(new Shop(), LogEntry::ERROR, "Cron", "", $exception->getMessage(), []);
|
||||
$this->logService->createLogEntry(
|
||||
new Shop(),
|
||||
LogEntry::ERROR,
|
||||
'Cron',
|
||||
'',
|
||||
$exception->getMessage(),
|
||||
[],
|
||||
);
|
||||
}
|
||||
}
|
||||
$this->eventManager->clearManager();
|
||||
@ -122,6 +136,7 @@ class DoEveryMinuteCommand extends Command
|
||||
|
||||
if ($event instanceof ClearCache) {
|
||||
$fs = new Filesystem();
|
||||
|
||||
//$fs->remove($this->kernel->getCacheDir());
|
||||
} elseif ($event instanceof InstallPlugin) {
|
||||
$event->setData($job->getData());
|
||||
@ -131,11 +146,10 @@ class DoEveryMinuteCommand extends Command
|
||||
|
||||
$plugin = $this->mongoDb
|
||||
->getRepository(Plugin::class)
|
||||
->findOneBy(array('id' => (string)$event->getPlugin()));
|
||||
->findOneBy(['id' => (string) $event->getPlugin()]);
|
||||
$plugin->setShouldBeInstalled(false);
|
||||
|
||||
$this->mongoDb->persist($plugin);
|
||||
|
||||
} elseif ($event instanceof DeInstallPlugin) {
|
||||
$event->setData($job->getData());
|
||||
$event->setShop($job->getShop());
|
||||
@ -144,12 +158,11 @@ class DoEveryMinuteCommand extends Command
|
||||
|
||||
$plugin = $this->mongoDb
|
||||
->getRepository(Plugin::class)
|
||||
->findOneBy(array('id' => (string)$event->getPlugin()));
|
||||
->findOneBy(['id' => (string) $event->getPlugin()]);
|
||||
$plugin->setInstalled(false);
|
||||
$plugin->setShouldBeDeInstalled(false);
|
||||
|
||||
$this->mongoDb->persist($plugin);
|
||||
|
||||
} elseif ($event instanceof InternalEvent) {
|
||||
$event->setData($job->getData());
|
||||
$event->setShop($job->getShop());
|
||||
@ -157,20 +170,17 @@ class DoEveryMinuteCommand extends Command
|
||||
$event->setData($job->getData());
|
||||
$event->setShop($job->getShop());
|
||||
|
||||
$queues = $this->mongoDb
|
||||
->getRepository(Queue::class)
|
||||
->findBy(
|
||||
array(
|
||||
$queues = $this->mongoDb->getRepository(Queue::class)->findBy(
|
||||
[
|
||||
'shop' => $job->getShop(),
|
||||
'active' => true,
|
||||
'eventType' => $job->getEvent()
|
||||
),
|
||||
'eventType' => $job->getEvent(),
|
||||
],
|
||||
[
|
||||
'pos' => 'ASC'
|
||||
]
|
||||
'pos' => 'ASC',
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @var Queue $queue
|
||||
*/
|
||||
@ -184,20 +194,20 @@ class DoEveryMinuteCommand extends Command
|
||||
/**
|
||||
* @var JobLog $jobLog
|
||||
*/
|
||||
$jobLog = $this->mongoDb->getRepository(JobLog::class)->findOneBy(
|
||||
[
|
||||
$jobLog = $this->mongoDb
|
||||
->getRepository(JobLog::class)
|
||||
->findOneBy([
|
||||
'job' => $job->getId(),
|
||||
'queue' => $queue->getId()
|
||||
]
|
||||
);
|
||||
'queue' => $queue->getId(),
|
||||
]);
|
||||
|
||||
if ($jobLog) {
|
||||
if ($jobLog->getError() == "") {
|
||||
if ($jobLog->getError() == '') {
|
||||
continue;
|
||||
}
|
||||
$jobLog->incCount();
|
||||
|
||||
if ($jobLog->getCount() > 2 && $jobLog->getError() != "") {
|
||||
if ($jobLog->getCount() > 2 && $jobLog->getError() != '') {
|
||||
$canBeRemoved = false;
|
||||
continue;
|
||||
}
|
||||
@ -214,7 +224,7 @@ class DoEveryMinuteCommand extends Command
|
||||
$canBeRemoved = false;
|
||||
$jobLog->setError($queueObj->getError());
|
||||
} else {
|
||||
$jobLog->setError("");
|
||||
$jobLog->setError('');
|
||||
}
|
||||
$this->mongoDb->persist($jobLog);
|
||||
$this->mongoDb->flush();
|
||||
@ -236,12 +246,16 @@ class DoEveryMinuteCommand extends Command
|
||||
}
|
||||
|
||||
if (count($this->eventManager->getAll()) == 0) {
|
||||
$this->mongoDb->createQueryBuilder(JobLog::class)->remove()->getQuery()->execute();
|
||||
$this->mongoDb
|
||||
->createQueryBuilder(JobLog::class)
|
||||
->remove()
|
||||
->getQuery()
|
||||
->execute();
|
||||
}
|
||||
}
|
||||
|
||||
date_default_timezone_set('Europe/Berlin');
|
||||
$output->writeln("Successfully ".date('Y-m-d H:i:s'));
|
||||
$output->writeln('Successfully ' . date('Y-m-d H:i:s'));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
psc_shop_queue_backend:
|
||||
resource: "@PSCShopQueueBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/queue
|
||||
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
psc_shop_settings_json:
|
||||
resource: "@PSCShopSettingsBundle/Controller/Json"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /
|
||||
|
||||
psc_shop_settings_backend:
|
||||
resource: "@PSCShopSettingsBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/shop/settings
|
||||
|
||||
psc_shop_settings_country_api:
|
||||
resource: "@PSCShopSettingsBundle/Api"
|
||||
prefix: /api
|
||||
type: annotation
|
||||
type: attribute
|
||||
|
||||
@ -23,30 +23,16 @@ use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
class CreateCommand extends Command
|
||||
{
|
||||
protected function configure()
|
||||
protected function configure(): void
|
||||
{
|
||||
$this
|
||||
->setName('service:shipping:create')
|
||||
$this->setName('service:shipping:create')
|
||||
->setDescription('Create Shippment PDF')
|
||||
->addArgument(
|
||||
'type',
|
||||
InputArgument::REQUIRED,
|
||||
'Typ'
|
||||
)
|
||||
->addArgument(
|
||||
'order',
|
||||
InputArgument::REQUIRED,
|
||||
'Auftrag'
|
||||
)
|
||||
->addArgument(
|
||||
'file',
|
||||
InputArgument::REQUIRED,
|
||||
'File'
|
||||
)
|
||||
;
|
||||
->addArgument('type', InputArgument::REQUIRED, 'Typ')
|
||||
->addArgument('order', InputArgument::REQUIRED, 'Auftrag')
|
||||
->addArgument('file', InputArgument::REQUIRED, 'File');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$type = $input->getArgument('type');
|
||||
$orderUuid = $input->getArgument('order');
|
||||
@ -63,24 +49,25 @@ class CreateCommand extends Command
|
||||
$provider = $registry->get($type);
|
||||
|
||||
/** @var Order $order */
|
||||
$order = $this->getContainer()->get('doctrine.orm.entity_manager')
|
||||
$order = $this->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Order')
|
||||
->findOneBy(array('uuid' => $orderUuid));
|
||||
->findOneBy(['uuid' => $orderUuid]);
|
||||
|
||||
/** @var Shop $shopEntity */
|
||||
$shopEntity = $order->getShop();
|
||||
|
||||
/** @var \PSC\Shop\EntityBundle\Document\Shop $shopDoc */
|
||||
$shopDoc = $this->getContainer()->get('doctrine_mongodb')
|
||||
$shopDoc = $this->getContainer()
|
||||
->get('doctrine_mongodb')
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Shop')
|
||||
->findOneBy(array('uid' => $shopEntity->getUID()));
|
||||
|
||||
|
||||
->findOneBy(['uid' => $shopEntity->getUID()]);
|
||||
|
||||
/** @var ShippingGatewaysettings $gwSettings */
|
||||
$gwSettings = $this->getContainer()->get('doctrine_mongodb')
|
||||
$gwSettings = $this->getContainer()
|
||||
->get('doctrine_mongodb')
|
||||
->getRepository('PSC\Shop\ShippingBundle\Document\ShippingGatewaySettings')
|
||||
->findOneBy(array('shop' => (string)$shopEntity->getId(), 'gatewayType' => $type));
|
||||
->findOneBy(['shop' => (string) $shopEntity->getId(), 'gatewayType' => $type]);
|
||||
|
||||
$provider->setShopEntity($shopEntity);
|
||||
$provider->setShopDoc($shopDoc);
|
||||
@ -96,5 +83,6 @@ class CreateCommand extends Command
|
||||
if (isset($data['image'])) {
|
||||
file_put_contents($file, base64_decode($data['image']));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
*/
|
||||
class PSCShopShippingBundle extends Bundle
|
||||
{
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
$container->addCompilerPass(new ShippingProviderPass());
|
||||
}
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
psc_shop_shipping_backend:
|
||||
resource: "@PSCShopShippingBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/shipping
|
||||
|
||||
psc_shop_shipping_service:
|
||||
resource: "@PSCShopShippingBundle/Controller/Service"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /service/shipping
|
||||
|
||||
psc_shop_shpping_api:
|
||||
resource: "@PSCShopShippingBundle/Api"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /api/shipping
|
||||
|
||||
@ -1,61 +1,88 @@
|
||||
{% extends 'backend_base.html.twig' %}
|
||||
{% extends 'backend_tailwind_base.html.twig' %}
|
||||
{% trans_default_domain 'core_shipping_list' %}
|
||||
|
||||
{% block header %}
|
||||
<div class="flex flex-wrap items-center gap-4 justify-between w-full">
|
||||
<div>
|
||||
<h1 class="text-psc text-2xl font-medium flex flex-row gap-1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-8">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 18.75a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 01-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h1.125c.621 0 1.129-.504 1.09-1.124a17.902 17.902 0 00-3.213-9.193 2.056 2.056 0 00-1.58-.86H14.25M16.5 18.75h-2.25m0-11.177v-.958c0-.568-.422-1.048-.987-1.106a48.554 48.554 0 00-10.026 0 1.106 1.106 0 00-.987 1.106v7.635m12-6.677v6.677m0 4.5v-4.5m0 0h-12" />
|
||||
</svg>
|
||||
{{'shippingmethods'|trans}} <span class="text-gray-500">{{'List'|trans}}</span>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="flex flex-wrap items-center gap-4 justify-end shrink-0 ml-auto">
|
||||
<a href="{{ path("psc_shop_shipping_backend_create") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" />
|
||||
</svg>
|
||||
{{'Addshippingmethod'|trans}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="header">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
||||
<h3>
|
||||
<i class="fa-fw fa fa-envelope"></i>
|
||||
{{'shippingmethods'|trans}} <span>>
|
||||
{{'List'|trans}} </span>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="panel">
|
||||
<div class="body">
|
||||
<a class="btn btn-info btn-sm" href="{{ path("psc_shop_shipping_backend_create") }}">{{'Addshippingmethod'|trans}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="body">
|
||||
<table class="table">
|
||||
<thead class="thead-dark">
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="rounded-sm border bg-white px-7.5 py-6 shadow-lg dark:border-strokedark dark:bg-boxdark">
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full text-sm">
|
||||
<thead class="bg-slate-100 border-t border-stroke">
|
||||
<tr>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'Uid'|trans, 'shipping.uid') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'active'|trans, 'shipping.enable') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'Pos'|trans, 'shipping.pos') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'Name'|trans, 'shipping.title') }}</th>
|
||||
<th>{{ knp_pagination_sortable(pagination, 'price'|trans, 'shipping.price') }}</th>
|
||||
<th>{{'Matrix'|trans}}</th>
|
||||
<th></th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'Uid'|trans, 'shipping.uid') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'active'|trans, 'shipping.enable') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'Pos'|trans, 'shipping.pos') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'Name'|trans, 'shipping.title') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{ knp_pagination_sortable(pagination, 'price'|trans, 'shipping.price') }}</th>
|
||||
<th class="px-2 py-3 text-left font-medium text-gray-700">{{'Matrix'|trans}}</th>
|
||||
<th class="px-2 py-3 text-right font-medium text-gray-700">Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for shipping in pagination %}
|
||||
<tr {% if loop.index is odd %}class="color"{% endif %}>
|
||||
<td>{{ shipping.uid }}</td>
|
||||
<td>{% if shipping.enable %}<span class="badge bg-success">{{'yes'|trans}}</span>{% else %}<span
|
||||
class="badge bg-warning">{{'no'|trans}}</span>{% endif %}</td>
|
||||
<td>{{ shipping.pos }}</td>
|
||||
<td>{{ shipping.title }}</td>
|
||||
<td>{{ shipping.price|number_format(2, ',', '.') }}€</td>
|
||||
<td>{% if shipping.matrix != "" %}<span class="badge bg-success">{{'yes'|trans}}</span>{% else %}<span
|
||||
class="badge bg-warning">{{'no'|trans}}</span>{% endif %}</td>
|
||||
<td class="text-end">
|
||||
<a href="{{ path("psc_shop_shipping_backend_edit", {uid: shipping.uid}) }}"
|
||||
class="btn btn-info btn-sm"><span class="fa fa-edit"></span></a>
|
||||
<a href="{{ path("psc_shop_shipping_backend_delete", {uid: shipping.uid}) }}"
|
||||
class="btn btn-danger btn-sm"><span class="fa fa-trash"></span></a>
|
||||
<tr class="border-t border-stroke hover:bg-gray-50">
|
||||
<td class="px-2 py-3 font-medium">{{ shipping.uid }}</td>
|
||||
<td class="px-2 py-3">
|
||||
{% if shipping.enable %}
|
||||
<div class="badge-yes">{{'yes'|trans}}</div>
|
||||
{% else %}
|
||||
<div class="badge-no">{{'no'|trans}}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-2 py-3">{{ shipping.pos }}</td>
|
||||
<td class="px-2 py-3">{{ shipping.title }}</td>
|
||||
<td class="px-2 py-3">{{ shipping.price|number_format(2, ',', '.') }}€</td>
|
||||
<td class="px-2 py-3">
|
||||
{% if shipping.matrix != "" %}
|
||||
<div class="badge-yes">{{'yes'|trans}}</div>
|
||||
{% else %}
|
||||
<div class="badge-no">{{'no'|trans}}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-2 py-3 text-right">
|
||||
<div class="flex flex-row gap-2 justify-end">
|
||||
<a href="{{ path("psc_shop_shipping_backend_edit", {uid: shipping.uid}) }}" class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="table-icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="{{ path("psc_shop_shipping_backend_delete", {uid: shipping.uid}) }}" class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="table-icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="navigation">
|
||||
{{ knp_pagination_render(pagination) }}
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
{{ knp_pagination_render(pagination, 'tailwind_pagination.html.twig', {}, {
|
||||
'sortableTemplate': 'tailwind_sortable.html.twig'
|
||||
}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -26,8 +26,7 @@ use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
*/
|
||||
class Configuration implements ConfigurationInterface
|
||||
{
|
||||
|
||||
public function getConfigTreeBuilder()
|
||||
public function getConfigTreeBuilder(): TreeBuilder
|
||||
{
|
||||
$treeBuilder = new TreeBuilder('psc_shop_theme');
|
||||
return $treeBuilder;
|
||||
|
||||
@ -25,7 +25,7 @@ use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
*/
|
||||
class PSCShopThemeBundle extends Bundle
|
||||
{
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
parent::build($container);
|
||||
$ext = $this->getContainerExtension();
|
||||
@ -51,7 +51,7 @@ class PSCShopThemeBundle extends Bundle
|
||||
}
|
||||
}
|
||||
|
||||
public function boot()
|
||||
public function boot(): void
|
||||
{
|
||||
$this->container->get('psc.shop.theme.source_initializer')->initialize();
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_shop_theme_backend:
|
||||
resource: "@PSCShopThemeBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/theme
|
||||
|
||||
@ -30,7 +30,7 @@ class PSCShopUserBundle extends Bundle
|
||||
*
|
||||
* @param ContainerBuilder $container Container
|
||||
*/
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
parent::build($container);
|
||||
}
|
||||
|
||||
@ -4,21 +4,20 @@ namespace PSC\Shop\UserBundle\Security\ApiKey;
|
||||
|
||||
use Doctrine\ODM\MongoDB\DocumentManager;
|
||||
use PSC\Shop\EntityBundle\Document\Instance;
|
||||
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
|
||||
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
|
||||
class InstanceProvider implements UserProviderInterface
|
||||
{
|
||||
public function __construct(private DocumentManager $repository)
|
||||
{
|
||||
public function __construct(
|
||||
private DocumentManager $repository,
|
||||
) {}
|
||||
|
||||
}
|
||||
|
||||
public function refreshUser(UserInterface $user)
|
||||
public function refreshUser(UserInterface $user): UserInterface
|
||||
{
|
||||
if (!$user instanceof Instance) {
|
||||
if (!($user instanceof Instance)) {
|
||||
throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_class($user)));
|
||||
}
|
||||
|
||||
@ -27,20 +26,18 @@ class InstanceProvider implements UserProviderInterface
|
||||
return $refreshedUser;
|
||||
}
|
||||
|
||||
public function supportsClass($class)
|
||||
public function supportsClass(string $class): bool
|
||||
{
|
||||
return Instance::class == $class;
|
||||
}
|
||||
|
||||
public function loadUserByIdentifier(string $identifier): UserInterface
|
||||
{
|
||||
|
||||
$instance = $this->repository
|
||||
->getRepository(\PSC\Shop\EntityBundle\Document\Instance::class)
|
||||
->findOneBy(['supporttoken' => $identifier]);
|
||||
|
||||
if (null === $instance) {
|
||||
|
||||
throw new UserNotFoundException(sprintf('Instance "%s" not found.', $identifier));
|
||||
}
|
||||
|
||||
|
||||
@ -4,21 +4,20 @@ namespace PSC\Shop\UserBundle\Security\ApiKey;
|
||||
|
||||
use PSC\Shop\EntityBundle\Entity\Shop;
|
||||
use PSC\Shop\EntityBundle\Repository\ShopRepository;
|
||||
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
|
||||
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
|
||||
class ShopProvider implements UserProviderInterface
|
||||
{
|
||||
public function __construct(private ShopRepository $repository)
|
||||
{
|
||||
public function __construct(
|
||||
private ShopRepository $repository,
|
||||
) {}
|
||||
|
||||
}
|
||||
|
||||
public function refreshUser(UserInterface $user)
|
||||
public function refreshUser(UserInterface $user): UserInterface
|
||||
{
|
||||
if (!$user instanceof Shop) {
|
||||
if (!($user instanceof Shop)) {
|
||||
throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_class($user)));
|
||||
}
|
||||
|
||||
@ -27,21 +26,16 @@ class ShopProvider implements UserProviderInterface
|
||||
return $refreshedUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function supportsClass($class)
|
||||
public function supportsClass(string $class): bool
|
||||
{
|
||||
return Shop::class == $class;
|
||||
}
|
||||
|
||||
public function loadUserByIdentifier(string $identifier): UserInterface
|
||||
{
|
||||
|
||||
$user = $this->repository->getShopByApiKey($identifier);
|
||||
|
||||
if (null === $user) {
|
||||
|
||||
throw new UserNotFoundException(sprintf('User "%s" not found.', $identifier));
|
||||
}
|
||||
|
||||
|
||||
@ -21,25 +21,21 @@ use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
|
||||
class TokenProvider implements UserProviderInterface
|
||||
{
|
||||
public function __construct(private ShopRepository $ShopRepository)
|
||||
{
|
||||
}
|
||||
public function __construct(
|
||||
private ShopRepository $ShopRepository,
|
||||
) {}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function supportsClass($class): bool
|
||||
{
|
||||
return $class === $this->class || is_subclass_of($class, $this->class);
|
||||
}
|
||||
|
||||
public function refreshUser(UserInterface $user)
|
||||
public function refreshUser(UserInterface $user): UserInterface
|
||||
{
|
||||
}
|
||||
|
||||
public function loadUserByIdentifier(string $identifier): UserInterface
|
||||
{
|
||||
|
||||
$accessToken = $this->ShopRepository->findOneBy(['apiKey' => $identifier]);
|
||||
if (null === $accessToken) {
|
||||
throw new BadCredentialsException('Invalid credentials.');
|
||||
@ -47,5 +43,4 @@ class TokenProvider implements UserProviderInterface
|
||||
|
||||
return new ApiUser($identifier);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,21 +4,20 @@ namespace PSC\Shop\UserBundle\Security\User;
|
||||
|
||||
use PSC\Shop\ContactBundle\Repository\ContactRepository;
|
||||
use PSC\Shop\EntityBundle\Entity\Contact;
|
||||
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
|
||||
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
|
||||
class UserProvider implements UserProviderInterface
|
||||
{
|
||||
public function __construct(private ContactRepository $repository)
|
||||
{
|
||||
public function __construct(
|
||||
private ContactRepository $repository,
|
||||
) {}
|
||||
|
||||
}
|
||||
|
||||
public function refreshUser(UserInterface $user)
|
||||
public function refreshUser(UserInterface $user): UserInterface
|
||||
{
|
||||
if (!$user instanceof Contact) {
|
||||
if (!($user instanceof Contact)) {
|
||||
throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_class($user)));
|
||||
}
|
||||
|
||||
@ -27,10 +26,7 @@ class UserProvider implements UserProviderInterface
|
||||
return $refreshedUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function supportsClass($class)
|
||||
public function supportsClass(string $class): bool
|
||||
{
|
||||
return Contact::class == $class || is_subclass_of($class, Contact::class);
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_shop_voucher_backend:
|
||||
resource: "@PSCShopVoucherBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/voucher
|
||||
|
||||
@ -2,16 +2,10 @@
|
||||
|
||||
namespace PSC\System\PluginBundle\Compiler;
|
||||
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain;
|
||||
use Doctrine\ORM\Mapping\Driver\AnnotationDriver;
|
||||
use Doctrine\ODM\MongoDB\Mapping\Driver\AttributeDriver;
|
||||
use PSC\System\PluginBundle\Interfaces\Plugin;
|
||||
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\DependencyInjection\Reference;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\Loader;
|
||||
|
||||
class PluginCompiler implements CompilerPassInterface
|
||||
{
|
||||
@ -24,12 +18,20 @@ class PluginCompiler implements CompilerPassInterface
|
||||
$collection = (new \MongoDB\Client('mongodb://mongodb/'))->psc->Plugin;
|
||||
}
|
||||
|
||||
$plugins = $collection->find(array('installed' => true));
|
||||
$plugins = $collection->find(['installed' => true]);
|
||||
/**
|
||||
* @var Plugin $plugin
|
||||
*/
|
||||
foreach ($plugins as $plugin) {
|
||||
$container->get('doctrine_mongodb.odm.default_metadata_driver')->addDriver(new AnnotationDriver(new AnnotationReader(), $container->getParameter('kernel.project_dir') . '/var/plugins/' . $plugin['path'] . '/Document'), $plugin['path']);
|
||||
$container->get('doctrine_mongodb.odm.default_metadata_driver')->addDriver(
|
||||
new AttributeDriver(
|
||||
$container->getParameter('kernel.project_dir') .
|
||||
'/var/plugins/' .
|
||||
$plugin['path'] .
|
||||
'/Document'
|
||||
),
|
||||
$plugin['path'],
|
||||
);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
var_dump($e->getMessage());
|
||||
|
||||
@ -35,7 +35,7 @@ use Symfony\Component\DependencyInjection\Loader;
|
||||
*/
|
||||
class PSCSystemPluginBundle extends Bundle
|
||||
{
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
$container->addCompilerPass(new PluginCompiler(), PassConfig::TYPE_BEFORE_OPTIMIZATION);
|
||||
$container->addCompilerPass(new FormPass());
|
||||
|
||||
@ -54,7 +54,7 @@ class Base implements BundleInterface
|
||||
return $this->path;
|
||||
}
|
||||
|
||||
public function boot()
|
||||
public function boot(): void
|
||||
{
|
||||
}
|
||||
|
||||
@ -76,24 +76,24 @@ class Base implements BundleInterface
|
||||
}
|
||||
}
|
||||
|
||||
public function getContainerExtension(): ?\Symfony\Component\DependencyInjection\Extension\ExtensionInterface
|
||||
public function getContainerExtension(): null|\Symfony\Component\DependencyInjection\Extension\ExtensionInterface
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public function build(ContainerBuilder $container)
|
||||
public function build(ContainerBuilder $container): void
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Shutdowns the Bundle.
|
||||
*/
|
||||
public function shutdown()
|
||||
public function shutdown(): void
|
||||
{
|
||||
// TODO: Implement shutdown() method.
|
||||
}
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
public function setContainer(null|ContainerInterface $container = null): void
|
||||
{
|
||||
// TODO: Implement setContainer() method.
|
||||
}
|
||||
@ -106,11 +106,13 @@ class Base implements BundleInterface
|
||||
return $this->defaultInstall;
|
||||
}
|
||||
|
||||
public function getInstallClass(): string {
|
||||
public function getInstallClass(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function getDeInstallClass(): string {
|
||||
public function getDeInstallClass(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_system_plugin_backend:
|
||||
resource: "@PSCSystemPluginBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/plugin
|
||||
@ -15,6 +15,7 @@ use Symfony\Component\Yaml\Yaml;
|
||||
class PluginRouteLoader extends Loader
|
||||
{
|
||||
protected $rootDir;
|
||||
|
||||
/**
|
||||
* DynamicRouteLoader constructor.
|
||||
*
|
||||
@ -24,16 +25,7 @@ class PluginRouteLoader extends Loader
|
||||
$this->rootDir = $rootDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a resource.
|
||||
*
|
||||
* @param mixed $resource The resource
|
||||
* @param string|null $type The resource type or null if unknown
|
||||
*
|
||||
* @return RouteCollection
|
||||
* @throws \Exception If something went wrong
|
||||
*/
|
||||
public function load($resource, $type = null)
|
||||
public function load(mixed $resource, null|string $type = null): mixed
|
||||
{
|
||||
$routes = new RouteCollection();
|
||||
try {
|
||||
@ -43,11 +35,14 @@ class PluginRouteLoader extends Loader
|
||||
$collection = (new \MongoDB\Client('mongodb://mongodb/'))->psc->Plugin;
|
||||
}
|
||||
|
||||
$plugins = $collection->find(array('installed' => true));
|
||||
$plugins = $collection->find(['installed' => true]);
|
||||
/** @var Plugin $plugin */
|
||||
foreach ($plugins as $plugin) {
|
||||
if (file_exists($this->rootDir . '/var/plugins/' . $plugin['path'] . '/Resources/config/routing.yml')) {
|
||||
$importedRoutes = $this->import($this->rootDir . '/var/plugins/' . $plugin['path'] . '/Resources/config/routing.yml', 'yaml');
|
||||
$importedRoutes = $this->import(
|
||||
$this->rootDir . '/var/plugins/' . $plugin['path'] . '/Resources/config/routing.yml',
|
||||
'yaml',
|
||||
);
|
||||
$routes->addCollection($importedRoutes);
|
||||
}
|
||||
}
|
||||
@ -60,16 +55,8 @@ class PluginRouteLoader extends Loader
|
||||
return $routes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this class supports the given resource.
|
||||
*
|
||||
* @param mixed $resource A resource
|
||||
* @param string|null $type The resource type or null if unknown
|
||||
*
|
||||
* @return bool True if this class supports the given resource, false otherwise
|
||||
*/
|
||||
public function supports($resource, $type = null)
|
||||
public function supports(mixed $resource, null|string $type = null): bool
|
||||
{
|
||||
return ($type == 'plugin');
|
||||
return $type == 'plugin';
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,32 +13,23 @@ class CreateCommand extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('application:create')
|
||||
$this->setName('application:create')
|
||||
->setDescription('Creates Application MongoDb')
|
||||
->addArgument(
|
||||
'uuid',
|
||||
InputArgument::REQUIRED,
|
||||
'Uuid für die App'
|
||||
)
|
||||
->addArgument(
|
||||
'server',
|
||||
InputArgument::REQUIRED,
|
||||
'Server für die App'
|
||||
)
|
||||
;
|
||||
->addArgument('uuid', InputArgument::REQUIRED, 'Uuid für die App')
|
||||
->addArgument('server', InputArgument::REQUIRED, 'Server für die App');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$uuid = $input->getArgument('uuid');
|
||||
$server = $input->getArgument('server');
|
||||
|
||||
$instance = $this->getContainer()->get('doctrine_mongodb')
|
||||
$instance = $this->getContainer()
|
||||
->get('doctrine_mongodb')
|
||||
->getRepository(Instance::class)
|
||||
->findOneByAppId($uuid);
|
||||
|
||||
$str = "Found";
|
||||
$str = 'Found';
|
||||
|
||||
if (!$instance) {
|
||||
$instance = new Instance();
|
||||
@ -49,7 +40,7 @@ class CreateCommand extends Command
|
||||
$dm->persist($instance);
|
||||
$dm->flush();
|
||||
|
||||
$str = "Not Found";
|
||||
$str = 'Not Found';
|
||||
} else {
|
||||
$instance->setSyncServer($server);
|
||||
|
||||
@ -59,5 +50,6 @@ class CreateCommand extends Command
|
||||
}
|
||||
|
||||
$output->writeln($str);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,85 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace PSC\System\SettingsBundle\Command;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use PSC\Shop\EntityBundle\Entity\Domain;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class SyncCommand extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('application:settings:sync')
|
||||
->setDescription('Syncs Ftp')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
|
||||
$instances = $this->getContainer()->get('doctrine_mongodb')
|
||||
->getRepository(Instance::class)
|
||||
->findAll();
|
||||
|
||||
$client = new Client();
|
||||
|
||||
foreach ($instances as $instance) {
|
||||
$response = $client->post(
|
||||
$instance->getSyncServer() . '/index.php/json/get/ftp',
|
||||
array(
|
||||
'form_params' => array(
|
||||
'uuid' => $instance->getAppId()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$data = json_decode($response->getBody(), true);
|
||||
|
||||
var_dump($data);
|
||||
|
||||
if (
|
||||
isset($data['success']) && $data['success']
|
||||
&& isset($data['found']) && $data['found']
|
||||
) {
|
||||
if (isset($data['ftp'])) {
|
||||
$instance->setFtpUsername($data['ftp']['username']);
|
||||
$instance->setFtpPassword($data['ftp']['password']);
|
||||
}
|
||||
|
||||
$dm = $this->getContainer()->get('doctrine_mongodb')->getManager();
|
||||
$dm->persist($instance);
|
||||
$dm->flush();
|
||||
|
||||
$domains = $this->getContainer()->get('doctrine.orm.entity_manager')
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Domain')->findAll();
|
||||
|
||||
$temp = array();
|
||||
|
||||
/** @var Domain $domain */
|
||||
foreach ($domains as $domain) {
|
||||
$temp[] = array('name' => strtolower($domain->getHost()), 'letsEncrypt' => $domain->isLetsEncrypt());
|
||||
}
|
||||
|
||||
var_dump($temp);
|
||||
var_dump($instance->getAppId());
|
||||
|
||||
$response = $client->put($instance->getSyncServer() . '/index.php/json/push/domains', array(
|
||||
'json' => array(
|
||||
'uuid' => $instance->getAppId(),
|
||||
'data' => $temp
|
||||
)
|
||||
));
|
||||
|
||||
var_dump($response->getBody()->getContents());
|
||||
}
|
||||
}
|
||||
|
||||
$output->writeln("Successfully");
|
||||
}
|
||||
}
|
||||
@ -22,7 +22,7 @@ use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\User\User;
|
||||
|
||||
class CopyType extends AbstractType
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
psc_system_settings_backend:
|
||||
resource: "@PSCSystemSettingsBundle/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/system/settings
|
||||
|
||||
psc_system_settings_api:
|
||||
resource: "@PSCSystemSettingsBundle/Api"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /api/system
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-8">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 010 3.75H5.625a1.875 1.875 0 010-3.75z" />
|
||||
</svg>
|
||||
Logs
|
||||
Logs <span class="text-gray-500">{{ 'List'|trans }}</span>
|
||||
</h1>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@ -26,26 +26,17 @@ class DynamicRouteLoader implements LoaderInterface
|
||||
$this->shopService = $shopService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a resource.
|
||||
*
|
||||
* @param mixed $resource The resource
|
||||
* @param string|null $type The resource type or null if unknown
|
||||
*
|
||||
* @return RouteCollection
|
||||
* @throws \Exception If something went wrong
|
||||
*/
|
||||
public function load($resource, $type = null)
|
||||
public function load(mixed $resource, null|string $type = null): mixed
|
||||
{
|
||||
$collection = new RouteCollection();
|
||||
|
||||
/** @var DynamicPage[] $pages */
|
||||
//$pages = $this->em->getRepository(DynamicPage::class)->findAll();
|
||||
/*
|
||||
foreach ($pages as $page) {
|
||||
$route = new Route($page->url, ['_controller' => 'AcmeBundle:Dynamic:dynamic', 'templateId' => $page->id]);
|
||||
$collection->add('_dynamic_id_'.$page->id, $route);
|
||||
}
|
||||
* foreach ($pages as $page) {
|
||||
* $route = new Route($page->url, ['_controller' => 'AcmeBundle:Dynamic:dynamic', 'templateId' => $page->id]);
|
||||
* $collection->add('_dynamic_id_'.$page->id, $route);
|
||||
* }
|
||||
*/
|
||||
return $collection;
|
||||
}
|
||||
@ -58,16 +49,16 @@ class DynamicRouteLoader implements LoaderInterface
|
||||
*
|
||||
* @return bool True if this class supports the given resource, false otherwise
|
||||
*/
|
||||
public function supports($resource, $type = null)
|
||||
public function supports(mixed $resource, null|string $type = null): bool
|
||||
{
|
||||
return ($type == 'dynamic');
|
||||
return $type == 'dynamic';
|
||||
}
|
||||
|
||||
public function getResolver()
|
||||
public function getResolver(): LoaderResolverInterface
|
||||
{
|
||||
}
|
||||
|
||||
public function setResolver(LoaderResolverInterface $resolver)
|
||||
public function setResolver(LoaderResolverInterface $resolver): void
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ namespace PSC\System\SettingsBundle\Service;
|
||||
|
||||
|
||||
use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class Token
|
||||
{
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_system_update:
|
||||
resource: "@PSCSystemUpdateBundle/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/update
|
||||
@ -17,27 +17,12 @@
|
||||
"ddeboer/imap": {
|
||||
"version": "dev-master"
|
||||
},
|
||||
"doctrine/annotations": {
|
||||
"version": "1.0",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "master",
|
||||
"version": "1.0",
|
||||
"ref": "a2759dd6123694c8d901d0ec80006e044c2e6457"
|
||||
},
|
||||
"files": [
|
||||
"config/routes/annotations.yaml"
|
||||
]
|
||||
},
|
||||
"doctrine/cache": {
|
||||
"version": "1.10.0"
|
||||
},
|
||||
"doctrine/collections": {
|
||||
"version": "1.6.4"
|
||||
},
|
||||
"doctrine/common": {
|
||||
"version": "2.12.0"
|
||||
},
|
||||
"doctrine/dbal": {
|
||||
"version": "v2.10.1"
|
||||
},
|
||||
@ -205,9 +190,6 @@
|
||||
"league/uri-interfaces": {
|
||||
"version": "1.1.1"
|
||||
},
|
||||
"lexik/form-filter-bundle": {
|
||||
"version": "v5.0.10"
|
||||
},
|
||||
"lexik/jwt-authentication-bundle": {
|
||||
"version": "2.9999999",
|
||||
"recipe": {
|
||||
@ -310,15 +292,6 @@
|
||||
"oyejorge/less.php": {
|
||||
"version": "v1.7.0.14"
|
||||
},
|
||||
"paypal/paypal-checkout-sdk": {
|
||||
"version": "dev-master"
|
||||
},
|
||||
"paypal/paypalhttp": {
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"paypal/rest-api-sdk-php": {
|
||||
"version": "dev-master"
|
||||
},
|
||||
"payum/core": {
|
||||
"version": "1.6.0"
|
||||
},
|
||||
@ -507,24 +480,15 @@
|
||||
"seld/signal-handler": {
|
||||
"version": "1.2.0"
|
||||
},
|
||||
"sensio/framework-extra-bundle": {
|
||||
"version": "5.2",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "master",
|
||||
"version": "5.2",
|
||||
"ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/sensio_framework_extra.yaml"
|
||||
]
|
||||
},
|
||||
"setasign/fpdi": {
|
||||
"version": "1.6.2"
|
||||
},
|
||||
"sofort/sofortlib-php": {
|
||||
"version": "3.3.2"
|
||||
},
|
||||
"spiriitlabs/form-filter-bundle": {
|
||||
"version": "v12.0.1"
|
||||
},
|
||||
"squizlabs/php_codesniffer": {
|
||||
"version": "4.0",
|
||||
"recipe": {
|
||||
@ -776,9 +740,6 @@
|
||||
"symfony/polyfill-mbstring": {
|
||||
"version": "v1.15.0"
|
||||
},
|
||||
"symfony/polyfill-php72": {
|
||||
"version": "v1.15.0"
|
||||
},
|
||||
"symfony/polyfill-php80": {
|
||||
"version": "v1.17.1"
|
||||
},
|
||||
@ -853,9 +814,6 @@
|
||||
"symfony/string": {
|
||||
"version": "5.2-dev"
|
||||
},
|
||||
"symfony/templating": {
|
||||
"version": "v4.4.7"
|
||||
},
|
||||
"symfony/translation": {
|
||||
"version": "3.3",
|
||||
"recipe": {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_ahrweiler_contact_backend:
|
||||
resource: "@PluginCustomAhrweilerContact/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/plugin/custom/ahrweiler/contact
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_albertbauer_contact_backend:
|
||||
resource: "@PluginCustomAlbertbauerContact/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/plugin/custom/albertbauer/contact
|
||||
@ -1,4 +1,4 @@
|
||||
psc_plugin_useredit:
|
||||
resource: "@PluginCustomAlbertbauerUseredit/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /
|
||||
@ -1,4 +1,4 @@
|
||||
psc_plugin_custom_Weber:
|
||||
resource: "@PluginCustomBUWOrderimport/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/buw
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
psc_plugin_register:
|
||||
resource: "@PluginCustomGrafikerRegister/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /
|
||||
@ -1,4 +1,4 @@
|
||||
psc_plugin_custom_huelswitt:
|
||||
resource: "@PluginCustomHuelswittOrderimport/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/huelswitt
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_hug_contact_backend:
|
||||
resource: "@PluginCustomHugContact/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/plugin/custom/hug/contact
|
||||
|
||||
@ -33,7 +33,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class Import implements QueueInterface, ConfigurableElementInterface
|
||||
{
|
||||
|
||||
@ -33,7 +33,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class Import implements QueueInterface, ConfigurableElementInterface
|
||||
{
|
||||
|
||||
@ -33,7 +33,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class Import implements QueueInterface, ConfigurableElementInterface
|
||||
{
|
||||
|
||||
@ -33,7 +33,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class Import implements QueueInterface, ConfigurableElementInterface
|
||||
{
|
||||
|
||||
@ -32,7 +32,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use PSC\System\SettingsBundle\Service\Log;
|
||||
use PSC\System\SettingsBundle\Service\TemplateVars;
|
||||
use Symfony\Component\Mailer\MailerInterface;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_krueger_erlkonten:
|
||||
resource: "@PluginCustomKruegerErlkonten/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/krueger
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_kdv_checkout:
|
||||
resource: "@PluginCustomKruegerKDVcheckout/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_kdv_wingame:
|
||||
resource: "@PluginCustomKruegerKDVwingame/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom
|
||||
@ -28,7 +28,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class Import implements QueueInterface, ConfigurableElementInterface
|
||||
{
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_krueger_lieferschein:
|
||||
resource: "@PluginCustomKruegerLieferschein/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/krueger
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_aeb_aebdata:
|
||||
resource: "@PluginCustomKruegerLivesearch/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/krueger
|
||||
@ -32,7 +32,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use PSC\System\SettingsBundle\Service\Log;
|
||||
|
||||
class Export implements QueueInterface, ConfigurableElementInterface
|
||||
|
||||
@ -32,7 +32,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use PSC\System\SettingsBundle\Service\Log;
|
||||
|
||||
class Export implements QueueInterface, ConfigurableElementInterface
|
||||
|
||||
@ -32,7 +32,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use PSC\System\SettingsBundle\Service\Log;
|
||||
|
||||
class Export implements QueueInterface, ConfigurableElementInterface
|
||||
|
||||
@ -32,7 +32,7 @@ use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use PSC\System\SettingsBundle\Service\Log;
|
||||
use PSC\Shop\QueueBundle\Event\Position\Status\Change;
|
||||
class Export implements QueueInterface, ConfigurableElementInterface
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_krueger_megalithguestuser:
|
||||
resource: "@PluginCustomKruegerMegalithguestuser/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/krueger
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_krueger_megalithuser:
|
||||
resource: "@PluginCustomKruegerMegalithuser/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/krueger
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_krueger_userlk:
|
||||
resource: "@PluginCustomKruegerUserlk/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/krueger
|
||||
@ -1,4 +1,4 @@
|
||||
psc_plugin_useredit:
|
||||
resource: "@PluginCustomMDVIUseredit/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_maincontor_reselleradmin:
|
||||
resource: "@PluginCustomMaincontorReselleradmin/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/maincontor
|
||||
@ -1,4 +1,4 @@
|
||||
plugin_custom_mundfein_contact_backend:
|
||||
resource: "@PluginCustomMundfeinContact/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/plugin/custom/mundfein/contact
|
||||
@ -1,4 +1,4 @@
|
||||
psc_plugin_custom_nowedruck:
|
||||
resource: "@PluginCustomNoweDruckTpApi/Controller"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/nowedruck
|
||||
@ -1,14 +1,14 @@
|
||||
plugin_custom_psc_collectlayouter_backend:
|
||||
resource: "@PluginCustomPSCCollectLayouter/Controller/Backend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /backend/plugin/custom/psc/collectlayouter
|
||||
|
||||
plugin_custom_psc_collectlayouter_frontend:
|
||||
resource: "@PluginCustomPSCCollectLayouter/Controller/Frontend"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /plugin/custom/psc/collectlayouter/frontend
|
||||
|
||||
plugin_custom_psc_collectlayouter_api:
|
||||
resource: "@PluginCustomPSCCollectLayouter/Api"
|
||||
type: annotation
|
||||
type: attribute
|
||||
prefix: /api/plugin/custom/psc/collectlayouter
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user