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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
5 changes: 1 addition & 4 deletions menu.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<OX>
<OXMENU id="NAVIGATION_ESHOPADMIN">
<MAINMENU id="paypal">
<SUBMENU id="OSC_PAYPAL_CONFIG" cl="oscpaypalconfig"/>
</MAINMENU>
<MAINMENU id="mxorders">
<SUBMENU id="mxdisplayorders" cl="admin_order" list="order_list">
<TAB id="tbclorder_oscpaypal" cl="oscpaypalorder"/>
</SUBMENU>
</MAINMENU>
</OXMENU>
</OX>
</OX>
5 changes: 4 additions & 1 deletion metadata.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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,
Expand All @@ -84,7 +87,7 @@
State::class => PayPalState::class
],
'controllers' => [
'oscpaypalconfig' => PayPalConfigController::class,
'oscpaypalconfig' => PaypalModuleConfiguration::class,
'oscpaypalwebhook' => WebhookController::class,
'oscpaypalproxy' => ProxyController::class,
'oscpaypalorder' => PayPalOrderController::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,7 +31,7 @@
/**
* Controller for admin > PayPal/Configuration page
*/
class PayPalConfigController extends AdminController
class ModuleConfiguration extends ModuleConfiguration_parent
{
use ServiceContainer;

Expand All @@ -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;
Expand Down Expand Up @@ -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();
}

Expand Down Expand Up @@ -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);
Expand All @@ -423,7 +427,5 @@ protected function registerWebhooks(): string
$logger = $this->getServiceFromContainer(Logger::class);
$logger->log('error', $exception->getMessage(), [$exception]);
}

return $webhookId;
}
}
1 change: 0 additions & 1 deletion tests/Integration/Onboarding/OnboardingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
10 changes: 10 additions & 0 deletions tests/PhpStan/phpstan-bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
);
5 changes: 4 additions & 1 deletion views/smarty/admin/blocks/admin_headitem_inccss.tpl
Original file line number Diff line number Diff line change
@@ -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}]
Expand Down
9 changes: 7 additions & 2 deletions views/smarty/admin/blocks/admin_headitem_incjs.tpl
Original file line number Diff line number Diff line change
@@ -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"}]

Expand Down
12 changes: 11 additions & 1 deletion views/smarty/admin/oscpaypalconfig.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,17 @@

[{oxscript add=$sPayPalJS}]

<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="osc_paypal">
<input type="hidden" name="cl" value="oscpaypalconfig">
<input type="hidden" name="fnc" value="">
<input type="hidden" name="actshop" value="[{$oViewConf->getActiveShopId()}]">
<input type="hidden" name="updatenav" value="">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>

<div id="content" class="paypal-config">
<h1>[{oxmultilang ident="paypal"}] [{oxmultilang ident="OSC_PAYPAL_CONFIG"}]</h1>
<div class="alert alert-[{if $Errors.paypal_error}]danger[{else}]success[{/if}]" role="alert">
[{if $Errors.paypal_error}]
[{oxmultilang ident="OSC_PAYPAL_ERR_CONF_INVALID"}]
Expand All @@ -25,6 +34,7 @@
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="osc_paypal">

<div id="accordion">
<div class="card">
Expand Down
13 changes: 12 additions & 1 deletion views/twig/admin/oscpaypalconfig.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,18 @@
{% endset %}
{{ script({ add: sPayPalJS.__toString(), priority: 10, dynamic: __oxid_include_dynamic }) }}

<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
{{ oViewConf.getHiddenSid()|raw }}
<input type="hidden" name="oxid" value="osc_paypal">
<input type="hidden" name="cl" value="oscpaypalconfig">
<input type="hidden" name="fnc" value="">
<input type="hidden" name="actshop" value="[{$oViewConf->getActiveShopId()}]">
<input type="hidden" name="updatenav" value="">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>


<div id="content" class="paypal-config">
<h1>{{ translate({ ident: "paypal" }) }} {{ translate({ ident: "OSC_PAYPAL_CONFIG" }) }}</h1>
<div class="alert alert-{% if Errors.paypal_error %}danger{% else %}success{% endif %}" role="alert">
{% if Errors.paypal_error %}
{{ translate({ ident: "OSC_PAYPAL_ERR_CONF_INVALID" }) }}
Expand All @@ -23,6 +33,7 @@
{{ oViewConf.getHiddenSid()|raw }}
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName() }}">
<input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="osc_paypal">

<div id="accordion">
<div class="card">
Expand Down
12 changes: 9 additions & 3 deletions views/twig/extensions/themes/admin_twig/headitem.html.twig
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
{% extends "headitem.html.twig" %}

{% block admin_headitem_inccss %}
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder" %}
{% if (
oViewConf.getTopActiveClassName()|lower == "module_config" and oModule.getInfo('id') == 'osc_paypal'
) or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder"
%}
<link rel="stylesheet" type="text/css" href="{{ oViewConf.getModuleUrl('osc_paypal','css/bootstrap.min.css') }}">
<link rel="stylesheet" type="text/css" href="{{ oViewConf.getModuleUrl('osc_paypal','css/paypal-admin.min.css') }}">
{% endif %}
{{ parent() }}
{% endblock %}

{% block admin_headitem_incjs %}
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder" %}
{% if (
oViewConf.getTopActiveClassName()|lower == "module_config" and oModule.getInfo('id') == 'osc_paypal'
) or oViewConf.getTopActiveClassName()|lower == "oscpaypalorder"
%}
{{ script({ include: "js/libs/jquery.min.js", dynamic: __oxid_include_dynamic }) }}
{{ script({ add: "$.noConflict();", priority: 10, dynamic: __oxid_include_dynamic }) }}
{% if oViewConf.getTopActiveClassName()|lower == "oscpaypalconfig" %}
{% if oViewConf.getTopActiveClassName()|lower == "module_config" %}
{{ script({ include: "js/libs/jquery-ui.min.js", dynamic: __oxid_include_dynamic }) }}
{{ script({ include: "js/widgets/oxmoduleconfiguration.js", dynamic: __oxid_include_dynamic }) }}

Expand Down
Loading