diff --git a/CHANGELOG.md b/CHANGELOG.md index f6439d5b7..33826acc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### NEW - All PayPal payment methods have "PayPal" as a prefix in a fresh installation to better identify them in the admin panel. When setting up payment methods, the merchant can decide which name best fits their needs. +- Move PayPal-Config to Config-Section in Admin > Module-List > Module > Options ### FIX diff --git a/menu.xml b/menu.xml index 96b1f6e15..bbcff9390 100644 --- a/menu.xml +++ b/menu.xml @@ -1,13 +1,10 @@ - - - - \ No newline at end of file + diff --git a/metadata.php b/metadata.php index dd5cae6c6..b5ca033bb 100755 --- a/metadata.php +++ b/metadata.php @@ -7,6 +7,7 @@ use OxidEsales\Eshop\Application\Component\BasketComponent; use OxidEsales\Eshop\Application\Component\UserComponent; +use OxidEsales\Eshop\Application\Controller\Admin\ModuleConfiguration; use OxidEsales\Eshop\Application\Controller\OrderController; use OxidEsales\Eshop\Application\Controller\PaymentController; use OxidEsales\Eshop\Application\Controller\Admin\OrderMain; @@ -23,6 +24,7 @@ use OxidEsales\Eshop\Core\ViewConfig; use OxidSolutionCatalysts\PayPal\Component\BasketComponent as PayPalBasketComponent; use OxidSolutionCatalysts\PayPal\Component\UserComponent as PayPalUserComponent; +use OxidSolutionCatalysts\PayPal\Controller\Admin\ModuleConfiguration as PaypalModuleConfiguration; use OxidSolutionCatalysts\PayPal\Controller\Admin\PayPalConfigController; use OxidSolutionCatalysts\PayPal\Controller\Admin\PayPalOrderController; use OxidSolutionCatalysts\PayPal\Controller\Admin\OrderMain as PayPalOrderMainController; @@ -66,6 +68,7 @@ 'url' => 'https://www.oxid-esales.com', 'email' => 'info@oxid-esales.com', 'extend' => [ + ModuleConfiguration::class => PaypalModuleConfiguration::class, InputValidator::class => PayPalInputValidator::class, ShopControl::class => PayPalShopControl::class, ViewConfig::class => PayPalViewConfig::class, @@ -84,7 +87,7 @@ State::class => PayPalState::class ], 'controllers' => [ - 'oscpaypalconfig' => PayPalConfigController::class, + 'oscpaypalconfig' => PaypalModuleConfiguration::class, 'oscpaypalwebhook' => WebhookController::class, 'oscpaypalproxy' => ProxyController::class, 'oscpaypalorder' => PayPalOrderController::class, diff --git a/src/Controller/Admin/PayPalConfigController.php b/src/Controller/Admin/ModuleConfiguration.php similarity index 95% rename from src/Controller/Admin/PayPalConfigController.php rename to src/Controller/Admin/ModuleConfiguration.php index fbdc101f5..595b13d17 100644 --- a/src/Controller/Admin/PayPalConfigController.php +++ b/src/Controller/Admin/ModuleConfiguration.php @@ -10,7 +10,6 @@ use Exception; use GuzzleHttp\Exception\ClientException; use JsonException; -use OxidEsales\Eshop\Application\Controller\Admin\AdminController; use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Registry; use OxidSolutionCatalysts\PayPal\Service\Logger; @@ -32,7 +31,7 @@ /** * Controller for admin > PayPal/Configuration page */ -class PayPalConfigController extends AdminController +class ModuleConfiguration extends ModuleConfiguration_parent { use ServiceContainer; @@ -47,13 +46,16 @@ class PayPalConfigController extends AdminController public function render() { $thisTemplate = parent::render(); - $config = new Config(); - $this->addTplParam('config', $config); - try { - $config->checkHealth(); - } catch (StandardException $e) { - Registry::getUtilsView()->addErrorToDisplay($e, false, true, 'paypal_error'); + if ($this->_sModuleId === 'osc_paypal') { + $config = new Config(); + $this->addTplParam('config', $config); + $thisTemplate = $this->_sThisTemplate; + try { + $config->checkHealth(); + } catch (StandardException $e) { + Registry::getUtilsView()->addErrorToDisplay($e, false, true, 'paypal_error'); + } } return $thisTemplate; @@ -167,8 +169,12 @@ public function save() $confArr = Registry::getRequest()->getRequestEscapedParameter('conf'); $confArr = $this->handleSpecialFields($confArr); - $this->saveConfig($confArr); - $this->checkEligibility($confArr); + + if (is_array($confArr)) { + $this->saveConfig($confArr); + $this->checkEligibility($confArr); + } + parent::save(); } @@ -408,10 +414,8 @@ protected function autoConfiguration(): array /** * webhook registration */ - protected function registerWebhooks(): string + public function registerWebhooks(): void { - $webhookId = ''; - try { /** @var Webhook $handler */ $handler = oxNew(Webhook::class); @@ -423,7 +427,5 @@ protected function registerWebhooks(): string $logger = $this->getServiceFromContainer(Logger::class); $logger->log('error', $exception->getMessage(), [$exception]); } - - return $webhookId; } } diff --git a/tests/Integration/Onboarding/OnboardingTest.php b/tests/Integration/Onboarding/OnboardingTest.php index a05512435..8e769f3ba 100644 --- a/tests/Integration/Onboarding/OnboardingTest.php +++ b/tests/Integration/Onboarding/OnboardingTest.php @@ -11,7 +11,6 @@ use OxidEsales\Eshop\Core\Registry; use OxidSolutionCatalysts\PayPalApi\Onboarding as ApiOnboardingClient; -use OxidSolutionCatalysts\PayPal\Controller\Admin\PayPalConfigController; use OxidSolutionCatalysts\PayPal\Core\Onboarding\Onboarding; use OxidSolutionCatalysts\PayPal\Core\PayPalSession; use OxidSolutionCatalysts\PayPal\Core\PartnerConfig; diff --git a/tests/PhpStan/phpstan-bootstrap.php b/tests/PhpStan/phpstan-bootstrap.php index 2e32ef6aa..a65a05571 100644 --- a/tests/PhpStan/phpstan-bootstrap.php +++ b/tests/PhpStan/phpstan-bootstrap.php @@ -95,3 +95,13 @@ class_alias( \OxidEsales\EshopCommunity\Application\Model\Basket::class, \OxidSolutionCatalysts\PayPal\Core\Onboarding\Logger\Basket_parent::class ); + +class_alias( + \OxidEsales\Eshop\Application\Controller\Admin\ModuleConfiguration::class, + OxidSolutionCatalysts\PayPal\Controller\Admin\ModuleConfiguration_parent::class +); + +class_alias( + \OxidEsales\Eshop\Application\Controller\Admin\ModuleConfiguration::class, + \OxidSolutionCatalysts\PayPal\Controller\Admin\ModuleConfiguration_parent::class +); diff --git a/views/smarty/admin/blocks/admin_headitem_inccss.tpl b/views/smarty/admin/blocks/admin_headitem_inccss.tpl index 0bb133147..e4cdf8f06 100644 --- a/views/smarty/admin/blocks/admin_headitem_inccss.tpl +++ b/views/smarty/admin/blocks/admin_headitem_inccss.tpl @@ -1,5 +1,8 @@ [{if - $oViewConf->getTopActiveClassName()|lower=="oscpaypalconfig" || + ( + $oViewConf->getTopActiveClassName()|lower == "module_config" && + $oModule->getInfo('id') == "osc_paypal" + ) || $oViewConf->getTopActiveClassName()|lower=="oscpaypalorder" }] [{oxstyle include=$oViewConf->getModuleUrl('osc_paypal','css/bootstrap.min.css') priority=10}] diff --git a/views/smarty/admin/blocks/admin_headitem_incjs.tpl b/views/smarty/admin/blocks/admin_headitem_incjs.tpl index 48e9ae476..10e96ae1e 100644 --- a/views/smarty/admin/blocks/admin_headitem_incjs.tpl +++ b/views/smarty/admin/blocks/admin_headitem_incjs.tpl @@ -1,10 +1,15 @@ [{if - $oViewConf->getTopActiveClassName()|lower=="oscpaypalconfig" || + ( + $oViewConf->getTopActiveClassName()|lower == "module_config" && + $oModule->getInfo('id') == "osc_paypal" + ) || $oViewConf->getTopActiveClassName()|lower=="oscpaypalorder" }] [{oxscript include="js/libs/jquery.min.js" priority=1}] [{oxscript add="$.noConflict();" priority=10}] - [{if $oViewConf->getTopActiveClassName()|lower == "oscpaypalconfig"}] + [{if + $oViewConf->getTopActiveClassName()|lower=="module_config" + }] [{oxscript include="js/libs/jquery-ui.min.js"}] [{oxscript include="js/widgets/oxmoduleconfiguration.js"}] diff --git a/views/smarty/admin/oscpaypalconfig.tpl b/views/smarty/admin/oscpaypalconfig.tpl index 899855051..1c0c01e85 100644 --- a/views/smarty/admin/oscpaypalconfig.tpl +++ b/views/smarty/admin/oscpaypalconfig.tpl @@ -11,8 +11,17 @@ [{oxscript add=$sPayPalJS}] +
+ [{$oViewConf->getHiddenSid()}] + + + + + + +
+
-

[{oxmultilang ident="paypal"}] [{oxmultilang ident="OSC_PAYPAL_CONFIG"}]