Upgrade for iDeal 2.0
This commit is contained in:
parent
12f6d9d7fc
commit
68bfd04d8f
|
|
@ -29,7 +29,9 @@ class ChartController extends BaseController
|
|||
{
|
||||
/** @var \App\Models\User auth()->user() */
|
||||
$user = auth()->user();
|
||||
$cs = new ChartService($user->company(), $user, $user->isAdmin());
|
||||
$admin_equivalent_permissions = $user->isAdmin() || $user->hasExactPermissionAndAll('view_all') || $user->hasExactPermissionAndAll('edit_all');
|
||||
|
||||
$cs = new ChartService($user->company(), $user, $admin_equivalent_permissions);
|
||||
|
||||
return response()->json($cs->totals($request->input('start_date'), $request->input('end_date')), 200);
|
||||
}
|
||||
|
|
@ -39,7 +41,9 @@ class ChartController extends BaseController
|
|||
|
||||
/** @var \App\Models\User auth()->user() */
|
||||
$user = auth()->user();
|
||||
$cs = new ChartService($user->company(), $user, $user->isAdmin());
|
||||
$admin_equivalent_permissions = $user->isAdmin() || $user->hasExactPermissionAndAll('view_all') || $user->hasExactPermissionAndAll('edit_all');
|
||||
|
||||
$cs = new ChartService($user->company(), $user, $admin_equivalent_permissions);
|
||||
|
||||
return response()->json($cs->chart_summary($request->input('start_date'), $request->input('end_date')), 200);
|
||||
}
|
||||
|
|
@ -51,7 +55,9 @@ class ChartController extends BaseController
|
|||
{
|
||||
/** @var \App\Models\User auth()->user() */
|
||||
$user = auth()->user();
|
||||
$cs = new ChartService($user->company(), $user, $user->isAdmin());
|
||||
$admin_equivalent_permissions = $user->isAdmin() || $user->hasExactPermissionAndAll('view_all') || $user->hasExactPermissionAndAll('edit_all');
|
||||
|
||||
$cs = new ChartService($user->company(), $user, $admin_equivalent_permissions);
|
||||
|
||||
return response()->json($cs->totals($request->input('start_date'), $request->input('end_date')), 200);
|
||||
}
|
||||
|
|
@ -61,7 +67,9 @@ class ChartController extends BaseController
|
|||
|
||||
/** @var \App\Models\User auth()->user() */
|
||||
$user = auth()->user();
|
||||
$cs = new ChartService($user->company(), $user, $user->isAdmin());
|
||||
$admin_equivalent_permissions = $user->isAdmin() || $user->hasExactPermissionAndAll('view_all') || $user->hasExactPermissionAndAll('edit_all');
|
||||
|
||||
$cs = new ChartService($user->company(), $user, $admin_equivalent_permissions);
|
||||
|
||||
return response()->json($cs->chart_summary($request->input('start_date'), $request->input('end_date')), 200);
|
||||
}
|
||||
|
|
@ -71,7 +79,9 @@ class ChartController extends BaseController
|
|||
|
||||
/** @var \App\Models\User auth()->user() */
|
||||
$user = auth()->user();
|
||||
$cs = new ChartService($user->company(), $user, $user->isAdmin());
|
||||
$admin_equivalent_permissions = $user->isAdmin() || $user->hasExactPermissionAndAll('view_all') || $user->hasExactPermissionAndAll('edit_all');
|
||||
|
||||
$cs = new ChartService($user->company(), $user, $admin_equivalent_permissions);
|
||||
$result = $cs->getCalculatedField($request->all());
|
||||
|
||||
return response()->json($result, 200);
|
||||
|
|
|
|||
|
|
@ -114,8 +114,7 @@
|
|||
"twig/twig": "^3.14",
|
||||
"twilio/sdk": "^6.40",
|
||||
"wikimedia/composer-merge-plugin": "^2.1",
|
||||
"wildbit/postmark-php": "^4.0",
|
||||
"invoiceninja/admin-api": "dev-main"
|
||||
"wildbit/postmark-php": "^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"barryvdh/laravel-debugbar": "^3.6",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "7fbe3af752ff66c779ab5cf92f9e0052",
|
||||
"content-hash": "2937b569c924dcc633b94288887c722c",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adrienrn/php-mimetyper",
|
||||
|
|
@ -4511,65 +4511,6 @@
|
|||
],
|
||||
"time": "2022-05-21T17:30:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "invoiceninja/admin-api",
|
||||
"version": "dev-main",
|
||||
"dist": {
|
||||
"type": "path",
|
||||
"url": "../admin-api",
|
||||
"reference": "20e652814f85db0f1825236843bb168b363859ee"
|
||||
},
|
||||
"require": {
|
||||
"afosto/yaac": "^1.5",
|
||||
"asm/php-ansible": "dev-main",
|
||||
"ext-curl": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-json": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-simplexml": "*",
|
||||
"illuminate/database": "^11",
|
||||
"illuminate/support": "^11",
|
||||
"imdhemy/laravel-purchases": "^1.7",
|
||||
"php": "^8.2|^8.3|^8.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"larastan/larastan": "^3.0",
|
||||
"orchestra/testbench": "^9.0",
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"phpunit/phpunit": "^11.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"InvoiceNinja\\AdminApi\\Providers\\AdminApiServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"InvoiceNinja\\AdminApi\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"InvoiceNinja\\AdminApi\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"license": [
|
||||
"Elastic"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "David Bomba",
|
||||
"email": "turbo124@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "API endpoints for the admin interface",
|
||||
"transport-options": {
|
||||
"relative": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "invoiceninja/einvoice",
|
||||
"version": "dev-main",
|
||||
|
|
@ -19829,16 +19770,16 @@
|
|||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
"version": "6.3.0",
|
||||
"version": "6.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "d4e47a769525c4dd38cea90e5dcd435ddbbc7115"
|
||||
"reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/d4e47a769525c4dd38cea90e5dcd435ddbbc7115",
|
||||
"reference": "d4e47a769525c4dd38cea90e5dcd435ddbbc7115",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959",
|
||||
"reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -19857,7 +19798,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "6.2-dev"
|
||||
"dev-main": "6.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -19897,7 +19838,7 @@
|
|||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
||||
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/6.3.0"
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -19905,7 +19846,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-01-06T10:28:19+00:00"
|
||||
"time": "2025-03-07T06:57:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/complexity",
|
||||
|
|
@ -21273,8 +21214,7 @@
|
|||
"beganovich/snappdf": 20,
|
||||
"horstoeko/orderx": 20,
|
||||
"invoiceninja/einvoice": 20,
|
||||
"socialiteproviders/apple": 20,
|
||||
"invoiceninja/admin-api": 20
|
||||
"socialiteproviders/apple": 20
|
||||
},
|
||||
"prefer-stable": true,
|
||||
"prefer-lowest": false,
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,9 +0,0 @@
|
|||
var l=Object.defineProperty;var c=(n,t,e)=>t in n?l(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var r=(n,t,e)=>(c(n,typeof t!="symbol"?t+"":t,e),e);import{i as a,w as o}from"./wait-8f4ae121.js";/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/class d{constructor(t,e){r(this,"setupStripe",()=>{this.stripeConnect?this.stripe=Stripe(this.key,{stripeAccount:this.stripeConnect}):this.stripe=Stripe(this.key);let t=this.stripe.elements();var e={style:{base:{padding:"10px 12px",color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"}}}};return this.ideal=t.create("idealBank",e),this.ideal.mount("#ideal-bank-element"),this});r(this,"handle",()=>{document.getElementById("pay-now").addEventListener("click",t=>{let e=document.getElementById("errors");if(!document.getElementById("ideal-name").value){e.textContent=document.querySelector("meta[name=translation-name-required]").content,e.hidden=!1,console.log("name");return}document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),this.stripe.confirmIdealPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{ideal:this.ideal,billing_details:{name:document.getElementById("ideal-name").value}},return_url:document.querySelector('meta[name="return-url"]').content})})});this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=e}}function i(){var e,s;const n=((e=document.querySelector('meta[name="stripe-publishable-key"]'))==null?void 0:e.content)??"",t=((s=document.querySelector('meta[name="stripe-account-id"]'))==null?void 0:s.content)??"";new d(n,t).setupStripe().handle()}a()?i():o("#stripe-ideal-payment").then(()=>i());a()?i():o("#stripe-ideal-payment").then(()=>i());
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
var i=Object.defineProperty;var a=(n,t,e)=>t in n?i(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var r=(n,t,e)=>(a(n,typeof t!="symbol"?t+"":t,e),e);import{i as c,w as l}from"./wait-8f4ae121.js";/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/class d{constructor(t,e){r(this,"setupStripe",()=>{this.stripeConnect?this.stripe=Stripe(this.key,{stripeAccount:this.stripeConnect}):this.stripe=Stripe(this.key);var t={style:{base:{padding:"10px 12px",color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"}}},clientSecret:document.querySelector("meta[name=pi-client-secret").content};this.elements=this.stripe.elements(t);const e={layout:"accordion"};return this.ideal=this.elements.create("payment",e),this.ideal.mount("#payment-element"),this});r(this,"handle",()=>{document.getElementById("pay-now").addEventListener("click",async t=>{t.preventDefault();let e=document.getElementById("errors");e.textContent="",e.hidden=!0,document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden");const{error:s}=await this.stripe.confirmPayment({elements:this.elements,confirmParams:{return_url:document.querySelector('meta[name="return-url"]').content}});s&&(e.textContent=s.message,e.hidden=!1,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden"))})});this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=e}}function o(){var e,s;const n=((e=document.querySelector('meta[name="stripe-publishable-key"]'))==null?void 0:e.content)??"",t=((s=document.querySelector('meta[name="stripe-account-id"]'))==null?void 0:s.content)??"";new d(n,t).setupStripe().handle()}c()?o():l("#stripe-ideal-payment").then(()=>o());
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
"file": "assets/wait-8f4ae121.js"
|
||||
},
|
||||
"resources/js/app.js": {
|
||||
"file": "assets/app-09990367.js",
|
||||
"file": "assets/app-059c169b.js",
|
||||
"imports": [
|
||||
"_index-08e160a7.js",
|
||||
"__commonjsHelpers-725317a4.js"
|
||||
|
|
@ -283,7 +283,7 @@
|
|||
"src": "resources/js/clients/payments/stripe-giropay.js"
|
||||
},
|
||||
"resources/js/clients/payments/stripe-ideal.js": {
|
||||
"file": "assets/stripe-ideal-2110e54f.js",
|
||||
"file": "assets/stripe-ideal-aee1d791.js",
|
||||
"imports": [
|
||||
"_wait-8f4ae121.js"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ class ProcessIDEALPay {
|
|||
|
||||
|
||||
if (this.stripeConnect) {
|
||||
// this.stripe.stripeAccount = this.stripeConnect;
|
||||
|
||||
this.stripe = Stripe(this.key, {
|
||||
stripeAccount: this.stripeConnect,
|
||||
|
|
@ -32,8 +31,6 @@ class ProcessIDEALPay {
|
|||
this.stripe = Stripe(this.key);
|
||||
}
|
||||
|
||||
|
||||
let elements = this.stripe.elements();
|
||||
var options = {
|
||||
style: {
|
||||
base: {
|
||||
|
|
@ -45,40 +42,48 @@ class ProcessIDEALPay {
|
|||
},
|
||||
},
|
||||
},
|
||||
clientSecret: document.querySelector('meta[name=pi-client-secret').content,
|
||||
};
|
||||
this.ideal = elements.create('idealBank', options);
|
||||
this.ideal.mount("#ideal-bank-element");
|
||||
|
||||
this.elements = this.stripe.elements(options);
|
||||
|
||||
|
||||
const paymentElementOptions = { layout: 'accordion' };
|
||||
this.ideal = this.elements.create('payment', paymentElementOptions);
|
||||
this.ideal.mount('#payment-element');
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
handle = () => {
|
||||
document.getElementById('pay-now').addEventListener('click', (e) => {
|
||||
document.getElementById('pay-now').addEventListener('click', async (e) => {
|
||||
e.preventDefault();
|
||||
let errors = document.getElementById('errors');
|
||||
errors.textContent = '';
|
||||
errors.hidden = true;
|
||||
|
||||
if (!document.getElementById('ideal-name').value) {
|
||||
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||
errors.hidden = false;
|
||||
console.log("name");
|
||||
return;
|
||||
}
|
||||
document.getElementById('pay-now').disabled = true;
|
||||
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||
|
||||
this.stripe.confirmIdealPayment(
|
||||
document.querySelector('meta[name=pi-client-secret').content,
|
||||
{
|
||||
payment_method: {
|
||||
ideal: this.ideal,
|
||||
billing_details: {
|
||||
name: document.getElementById("ideal-name").value,
|
||||
},
|
||||
},
|
||||
const { error } = await this.stripe.confirmPayment({
|
||||
elements: this.elements,
|
||||
confirmParams: {
|
||||
return_url: document.querySelector(
|
||||
'meta[name="return-url"]'
|
||||
).content,
|
||||
}
|
||||
);
|
||||
'meta[name="return-url"]'
|
||||
).content,
|
||||
},
|
||||
});
|
||||
|
||||
if (error) {
|
||||
errors.textContent = error.message;
|
||||
errors.hidden = false;
|
||||
|
||||
document.getElementById('pay-now').disabled = false;
|
||||
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||
}
|
||||
|
||||
});
|
||||
};
|
||||
}
|
||||
|
|
@ -95,5 +100,3 @@ function boot() {
|
|||
}
|
||||
|
||||
instant() ? boot() : wait('#stripe-ideal-payment').then(() => boot());
|
||||
|
||||
instant() ? boot() : wait('#stripe-ideal-payment').then(() => boot());
|
||||
|
|
@ -1,11 +1,6 @@
|
|||
<div id="stripe--payment-container">
|
||||
@component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.name')])
|
||||
<label for="giropay-name">
|
||||
<input class="input w-full" id="ideal-name" type="text" placeholder="{{ ctrans('texts.bank_account_holder') }}">
|
||||
</label>
|
||||
<label for="ideal-bank-element"></label>
|
||||
<div class="border p-4 rounded">
|
||||
<div id="ideal-bank-element"></div>
|
||||
</div>
|
||||
<div id="payment-element">
|
||||
</div>
|
||||
@endcomponent
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue