Skip to content

Commit 24cb141

Browse files
author
Daniil Tkachev
committed
PSPAYPAL-1008 Update admin config UX
1 parent 35e1d30 commit 24cb141

10 files changed

Lines changed: 59 additions & 27 deletions

File tree

menu.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<OX>
33
<OXMENU id="NAVIGATION_ESHOPADMIN">
4-
<MAINMENU id="paypal">
5-
<SUBMENU id="OSC_PAYPAL_CONFIG" cl="oscpaypalconfig"/>
6-
</MAINMENU>
74
<MAINMENU id="mxorders">
85
<SUBMENU id="mxdisplayorders" cl="admin_order" list="order_list">
96
<TAB id="tbclorder_oscpaypal" cl="oscpaypalorder"/>
107
</SUBMENU>
118
</MAINMENU>
129
</OXMENU>
13-
</OX>
10+
</OX>

metadata.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
use OxidEsales\Eshop\Application\Component\BasketComponent;
99
use OxidEsales\Eshop\Application\Component\UserComponent;
10+
use OxidEsales\Eshop\Application\Controller\Admin\ModuleConfiguration;
1011
use OxidEsales\Eshop\Application\Controller\OrderController;
1112
use OxidEsales\Eshop\Application\Controller\PaymentController;
1213
use OxidEsales\Eshop\Application\Controller\Admin\OrderMain;
@@ -23,6 +24,7 @@
2324
use OxidEsales\Eshop\Core\ViewConfig;
2425
use OxidSolutionCatalysts\PayPal\Component\BasketComponent as PayPalBasketComponent;
2526
use OxidSolutionCatalysts\PayPal\Component\UserComponent as PayPalUserComponent;
27+
use OxidSolutionCatalysts\PayPal\Controller\Admin\ModuleConfiguration as PaypalModuleConfiguration;
2628
use OxidSolutionCatalysts\PayPal\Controller\Admin\PayPalConfigController;
2729
use OxidSolutionCatalysts\PayPal\Controller\Admin\PayPalOrderController;
2830
use OxidSolutionCatalysts\PayPal\Controller\Admin\OrderMain as PayPalOrderMainController;
@@ -66,6 +68,7 @@
6668
'url' => 'https://www.oxid-esales.com',
6769
'email' => 'info@oxid-esales.com',
6870
'extend' => [
71+
ModuleConfiguration::class => PaypalModuleConfiguration::class,
6972
InputValidator::class => PayPalInputValidator::class,
7073
ShopControl::class => PayPalShopControl::class,
7174
ViewConfig::class => PayPalViewConfig::class,
@@ -84,7 +87,7 @@
8487
State::class => PayPalState::class
8588
],
8689
'controllers' => [
87-
'oscpaypalconfig' => PayPalConfigController::class,
90+
'oscpaypalconfig' => PaypalModuleConfiguration::class,
8891
'oscpaypalwebhook' => WebhookController::class,
8992
'oscpaypalproxy' => ProxyController::class,
9093
'oscpaypalorder' => PayPalOrderController::class,

src/Controller/Admin/PayPalConfigController.php renamed to src/Controller/Admin/ModuleConfiguration.php

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use Exception;
1111
use GuzzleHttp\Exception\ClientException;
1212
use JsonException;
13-
use OxidEsales\Eshop\Application\Controller\Admin\AdminController;
1413
use OxidEsales\Eshop\Core\Exception\StandardException;
1514
use OxidEsales\Eshop\Core\Registry;
1615
use OxidSolutionCatalysts\PayPal\Service\Logger;
@@ -32,7 +31,7 @@
3231
/**
3332
* Controller for admin > PayPal/Configuration page
3433
*/
35-
class PayPalConfigController extends AdminController
34+
class ModuleConfiguration extends ModuleConfiguration_parent
3635
{
3736
use ServiceContainer;
3837

@@ -47,13 +46,16 @@ class PayPalConfigController extends AdminController
4746
public function render()
4847
{
4948
$thisTemplate = parent::render();
50-
$config = new Config();
51-
$this->addTplParam('config', $config);
5249

53-
try {
54-
$config->checkHealth();
55-
} catch (StandardException $e) {
56-
Registry::getUtilsView()->addErrorToDisplay($e, false, true, 'paypal_error');
50+
if ($this->_sModuleId === 'osc_paypal') {
51+
$config = new Config();
52+
$this->addTplParam('config', $config);
53+
$thisTemplate = $this->_sThisTemplate;
54+
try {
55+
$config->checkHealth();
56+
} catch (StandardException $e) {
57+
Registry::getUtilsView()->addErrorToDisplay($e, false, true, 'paypal_error');
58+
}
5759
}
5860

5961
return $thisTemplate;
@@ -167,8 +169,12 @@ public function save()
167169
$confArr = Registry::getRequest()->getRequestEscapedParameter('conf');
168170

169171
$confArr = $this->handleSpecialFields($confArr);
170-
$this->saveConfig($confArr);
171-
$this->checkEligibility($confArr);
172+
173+
if (is_array($confArr)) {
174+
$this->saveConfig($confArr);
175+
$this->checkEligibility($confArr);
176+
}
177+
172178
parent::save();
173179
}
174180

@@ -408,10 +414,8 @@ protected function autoConfiguration(): array
408414
/**
409415
* webhook registration
410416
*/
411-
protected function registerWebhooks(): string
417+
public function registerWebhooks(): void
412418
{
413-
$webhookId = '';
414-
415419
try {
416420
/** @var Webhook $handler */
417421
$handler = oxNew(Webhook::class);
@@ -423,7 +427,5 @@ protected function registerWebhooks(): string
423427
$logger = $this->getServiceFromContainer(Logger::class);
424428
$logger->log('error', $exception->getMessage(), [$exception]);
425429
}
426-
427-
return $webhookId;
428430
}
429431
}

tests/Integration/Onboarding/OnboardingTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
use OxidEsales\Eshop\Core\Registry;
1313
use OxidSolutionCatalysts\PayPalApi\Onboarding as ApiOnboardingClient;
14-
use OxidSolutionCatalysts\PayPal\Controller\Admin\PayPalConfigController;
1514
use OxidSolutionCatalysts\PayPal\Core\Onboarding\Onboarding;
1615
use OxidSolutionCatalysts\PayPal\Core\PayPalSession;
1716
use OxidSolutionCatalysts\PayPal\Core\PartnerConfig;

tests/PhpStan/phpstan-bootstrap.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,8 @@ class_alias(
9595
\OxidEsales\EshopCommunity\Application\Model\Basket::class,
9696
\OxidSolutionCatalysts\PayPal\Core\Onboarding\Logger\Basket_parent::class
9797
);
98+
99+
class_alias(
100+
\OxidEsales\Eshop\Application\Controller\Admin\ModuleConfiguration::class,
101+
\OxidSolutionCatalysts\PayPal\Controller\Admin\ModuleConfiguration_parent::class
102+
);

views/smarty/admin/blocks/admin_headitem_inccss.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[{if
2+
$oViewConf->getTopActiveClassName()|lower=="module_config" ||
23
$oViewConf->getTopActiveClassName()|lower=="oscpaypalconfig" ||
34
$oViewConf->getTopActiveClassName()|lower=="oscpaypalorder"
45
}]

views/smarty/admin/blocks/admin_headitem_incjs.tpl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
[{if
2+
$oViewConf->getTopActiveClassName()|lower=="module_config" ||
23
$oViewConf->getTopActiveClassName()|lower=="oscpaypalconfig" ||
34
$oViewConf->getTopActiveClassName()|lower=="oscpaypalorder"
45
}]
56
[{oxscript include="js/libs/jquery.min.js" priority=1}]
67
[{oxscript add="$.noConflict();" priority=10}]
7-
[{if $oViewConf->getTopActiveClassName()|lower == "oscpaypalconfig"}]
8+
[{if
9+
$oViewConf->getTopActiveClassName()|lower=="module_config" ||
10+
$oViewConf->getTopActiveClassName()|lower == "oscpaypalconfig"
11+
}]
812
[{oxscript include="js/libs/jquery-ui.min.js"}]
913
[{oxscript include="js/widgets/oxmoduleconfiguration.js"}]
1014

views/smarty/admin/oscpaypalconfig.tpl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,17 @@
1111

1212
[{oxscript add=$sPayPalJS}]
1313

14+
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
15+
[{$oViewConf->getHiddenSid()}]
16+
<input type="hidden" name="oxid" value="osc_paypal">
17+
<input type="hidden" name="cl" value="oscpaypalconfig">
18+
<input type="hidden" name="fnc" value="">
19+
<input type="hidden" name="actshop" value="[{$oViewConf->getActiveShopId()}]">
20+
<input type="hidden" name="updatenav" value="">
21+
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
22+
</form>
23+
1424
<div id="content" class="paypal-config">
15-
<h1>[{oxmultilang ident="paypal"}] [{oxmultilang ident="OSC_PAYPAL_CONFIG"}]</h1>
1625
<div class="alert alert-[{if $Errors.paypal_error}]danger[{else}]success[{/if}]" role="alert">
1726
[{if $Errors.paypal_error}]
1827
[{oxmultilang ident="OSC_PAYPAL_ERR_CONF_INVALID"}]
@@ -25,6 +34,7 @@
2534
[{$oViewConf->getHiddenSid()}]
2635
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
2736
<input type="hidden" name="fnc" value="save">
37+
<input type="hidden" name="oxid" value="osc_paypal">
2838

2939
<div id="accordion">
3040
<div class="card">

views/twig/admin/oscpaypalconfig.html.twig

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,18 @@
99
{% endset %}
1010
{{ script({ add: sPayPalJS.__toString(), priority: 10, dynamic: __oxid_include_dynamic }) }}
1111

12+
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
13+
[{$oViewConf->getHiddenSid()}]
14+
<input type="hidden" name="oxid" value="osc_paypal">
15+
<input type="hidden" name="cl" value="oscpaypalconfig">
16+
<input type="hidden" name="fnc" value="">
17+
<input type="hidden" name="actshop" value="[{$oViewConf->getActiveShopId()}]">
18+
<input type="hidden" name="updatenav" value="">
19+
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
20+
</form>
21+
22+
1223
<div id="content" class="paypal-config">
13-
<h1>{{ translate({ ident: "paypal" }) }} {{ translate({ ident: "OSC_PAYPAL_CONFIG" }) }}</h1>
1424
<div class="alert alert-{% if Errors.paypal_error %}danger{% else %}success{% endif %}" role="alert">
1525
{% if Errors.paypal_error %}
1626
{{ translate({ ident: "OSC_PAYPAL_ERR_CONF_INVALID" }) }}
@@ -23,6 +33,7 @@
2333
{{ oViewConf.getHiddenSid()|raw }}
2434
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName() }}">
2535
<input type="hidden" name="fnc" value="save">
36+
<input type="hidden" name="oxid" value="osc_paypal">
2637

2738
<div id="accordion">
2839
<div class="card">

views/twig/extensions/themes/admin_twig/headitem.html.twig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
{% extends "headitem.html.twig" %}
22

33
{% block admin_headitem_inccss %}
4-
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder" %}
4+
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder" or oViewConf.getTopActiveClassName()|lower == "module_config" %}
55
<link rel="stylesheet" type="text/css" href="{{ oViewConf.getModuleUrl('osc_paypal','css/bootstrap.min.css') }}">
66
<link rel="stylesheet" type="text/css" href="{{ oViewConf.getModuleUrl('osc_paypal','css/paypal-admin.min.css') }}">
77
{% endif %}
88
{{ parent() }}
99
{% endblock %}
1010

1111
{% block admin_headitem_incjs %}
12-
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder" %}
12+
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder" or oViewConf.getTopActiveClassName()|lower == "module_config" %}
1313
{{ script({ include: "js/libs/jquery.min.js", dynamic: __oxid_include_dynamic }) }}
1414
{{ script({ add: "$.noConflict();", priority: 10, dynamic: __oxid_include_dynamic }) }}
15-
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" %}
15+
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "module_config" %}
1616
{{ script({ include: "js/libs/jquery-ui.min.js", dynamic: __oxid_include_dynamic }) }}
1717
{{ script({ include: "js/widgets/oxmoduleconfiguration.js", dynamic: __oxid_include_dynamic }) }}
1818

0 commit comments

Comments
 (0)