From a7b199c01aa0d96754a33cc7698bf45fb049dc44 Mon Sep 17 00:00:00 2001 From: 1Day Date: Mon, 30 May 2022 09:23:35 +0200 Subject: [PATCH 1/9] Add the ability to sell server slots --- .../Controllers/Admin/PaymentController.php | 36 +++++++++---- app/Http/Controllers/StoreController.php | 2 +- resources/views/admin/store/create.blade.php | 1 + resources/views/store/index.blade.php | 51 ++++++++++--------- 4 files changed, 56 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php index 72d5e9d2..32bb5c77 100644 --- a/app/Http/Controllers/Admin/PaymentController.php +++ b/app/Http/Controllers/Admin/PaymentController.php @@ -164,9 +164,6 @@ class PaymentController extends Controller $response = $this->getPayPalClient()->execute($request); if ($response->statusCode == 201 || $response->statusCode == 200) { - //update credits - $user->increment('credits', $creditProduct->quantity); - //update server limit if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) { if ($user->server_limit < config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')) { @@ -174,6 +171,14 @@ class PaymentController extends Controller } } + //update User with bought item + if ($creditProduct->type=="Credits") { + $user->increment('credits', $creditProduct->quantity); + }elseif ($creditProduct->type=="Server slots"){ + $user->increment('server_limit', $creditProduct->quantity); + } + + //update role if ($user->role == 'member') { $user->update(['role' => 'client']); @@ -184,7 +189,7 @@ class PaymentController extends Controller 'user_id' => $user->id, 'payment_id' => $response->result->id, 'payment_method' => 'paypal', - 'type' => 'Credits', + 'type' => $creditProduct->type, 'status' => 'paid', 'amount' => $creditProduct->quantity, 'price' => $creditProduct->price, @@ -305,8 +310,7 @@ class PaymentController extends Controller // check if payment is 100% completed and payment does not exist in db already if ($paymentSession->status == "complete" && $paymentIntent->status == "succeeded" && $paymentDbEntry == 0) { - //update credits - $user->increment('credits', $creditProduct->quantity); + //update server limit if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) { @@ -315,6 +319,13 @@ class PaymentController extends Controller } } + //update User with bought item + if ($creditProduct->type=="Credits") { + $user->increment('credits', $creditProduct->quantity); + }elseif ($creditProduct->type=="Server slots"){ + $user->increment('server_limit', $creditProduct->quantity); + } + //update role if ($user->role == 'member') { $user->update(['role' => 'client']); @@ -325,7 +336,7 @@ class PaymentController extends Controller 'user_id' => $user->id, 'payment_id' => $paymentSession->payment_intent, 'payment_method' => 'stripe', - 'type' => 'Credits', + 'type' => $creditProduct->type, 'status' => 'paid', 'amount' => $creditProduct->quantity, 'price' => $creditProduct->price, @@ -356,7 +367,7 @@ class PaymentController extends Controller 'user_id' => $user->id, 'payment_id' => $paymentSession->payment_intent, 'payment_method' => 'stripe', - 'type' => 'Credits', + 'type' => $creditProduct->type, 'status' => 'processing', 'amount' => $creditProduct->quantity, 'price' => $creditProduct->price, @@ -405,8 +416,7 @@ class PaymentController extends Controller $user = User::where('id', $payment->user_id)->first(); if ($paymentIntent->status == 'succeeded' && $payment->status == 'processing') { - // Increment User Credits - $user->increment('credits', $payment->amount); + //update server limit if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) { @@ -414,6 +424,12 @@ class PaymentController extends Controller $user->update(['server_limit' => config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')]); } } + //update User with bought item + if ($creditProduct->type=="Credits") { + $user->increment('credits', $creditProduct->quantity); + }elseif ($creditProduct->type=="Server slots"){ + $user->increment('server_limit', $creditProduct->quantity); + } //update role if ($user->role == 'member') { diff --git a/app/Http/Controllers/StoreController.php b/app/Http/Controllers/StoreController.php index c3717653..6b6b3148 100644 --- a/app/Http/Controllers/StoreController.php +++ b/app/Http/Controllers/StoreController.php @@ -30,7 +30,7 @@ class StoreController extends Controller } return view('store.index')->with([ - 'products' => CreditProduct::where('disabled', '=', false)->orderBy('price', 'asc')->get(), + 'products' => CreditProduct::where('disabled', '=', false)->orderBy('type', 'asc')->orderBy('price', 'asc')->get(), 'isPaymentSetup' => $isPaymentSetup, ]); } diff --git a/resources/views/admin/store/create.blade.php b/resources/views/admin/store/create.blade.php index b09d4bdf..c7c17ed7 100644 --- a/resources/views/admin/store/create.blade.php +++ b/resources/views/admin/store/create.blade.php @@ -50,6 +50,7 @@ @error('name')
diff --git a/resources/views/store/index.blade.php b/resources/views/store/index.blade.php index 0b6220b2..31b78f87 100644 --- a/resources/views/store/index.blade.php +++ b/resources/views/store/index.blade.php @@ -12,9 +12,9 @@
@@ -41,27 +41,34 @@
- - - - - - + + + + + + - - @foreach ($products as $product) - - - - - - - @endforeach + + @foreach ($products as $product) + + + + + + + @endforeach
{{ __('Price') }}{{ __('Type') }}{{ __('Description') }}
{{ __('Price') }}{{ __('Type') }}{{ __('Description') }}
{{ $product->formatToCurrency($product->price) }}{{ strtolower($product->type) == 'credits' ? CREDITS_DISPLAY_NAME : $product->type }} - {{ $product->display }}{{ __('Purchase') }} -
{{ $product->formatToCurrency($product->price) }}{{ strtolower($product->type) == 'credits' ? CREDITS_DISPLAY_NAME : $product->type }} + + @if(strtolower($product->type) == 'credits') + + @elseif (strtolower($product->type) == 'server slots') + + @endif + + {{ $product->display }}{{ __('Purchase') }} +
@@ -87,7 +94,6 @@ const urlParams = new URLSearchParams(queryString); return urlParams.get(param); } - const voucherCode = getUrlParameter('voucher'); //if voucherCode not empty, open the modal and fill the input if (voucherCode) { @@ -95,7 +101,6 @@ $('#redeemVoucherModal').modal('show'); $('#redeemVoucherCode').val(voucherCode); }); - } From 74d315810ea11f29472dac52819c296da9449efc Mon Sep 17 00:00:00 2001 From: 1Day Date: Mon, 30 May 2022 09:24:17 +0200 Subject: [PATCH 2/9] Update Version --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index 4f4fc7a4..7f38ae77 100644 --- a/config/app.php +++ b/config/app.php @@ -4,7 +4,7 @@ use App\Models\Settings; return [ - 'version' => '0.7.4', + 'version' => '0.7.5', /* |-------------------------------------------------------------------------- From 8e052572f7b7fd819fa271fda81f0c0d8b735859 Mon Sep 17 00:00:00 2001 From: 1Day Date: Mon, 30 May 2022 09:53:11 +0200 Subject: [PATCH 3/9] Remove Discord button if not set || translation strings on welcome || total credits no admins --- .../Controllers/Admin/OverViewController.php | 2 +- app/Notifications/WelcomeMessage.php | 23 ++++++++++--------- resources/views/layouts/main.blade.php | 2 ++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/Admin/OverViewController.php b/app/Http/Controllers/Admin/OverViewController.php index 1fa022ec..29049b8f 100644 --- a/app/Http/Controllers/Admin/OverViewController.php +++ b/app/Http/Controllers/Admin/OverViewController.php @@ -23,7 +23,7 @@ class OverViewController extends Controller }); $creditCount = Cache::remember('credit:count', self::TTL, function () { - return User::query()->sum('credits'); + return User::query()->where("role","!=","admin")->sum('credits'); }); $paymentCount = Cache::remember('payment:count', self::TTL, function () { diff --git a/app/Notifications/WelcomeMessage.php b/app/Notifications/WelcomeMessage.php index a7854478..3841fc83 100644 --- a/app/Notifications/WelcomeMessage.php +++ b/app/Notifications/WelcomeMessage.php @@ -42,17 +42,17 @@ class WelcomeMessage extends Notification implements ShouldQueue $AdditionalLine = ""; if (config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL') != 0) { - $AdditionalLine .= "Verifying your e-mail address will grant you " . config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL') . " additional " . config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME') . ".
"; + $AdditionalLine .= __("Verifying your e-mail address will grant you ") . config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL'). " " . __("additional") . " " . config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME') . ".
"; } if (config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL') != 0) { - $AdditionalLine .= "Verifying your e-mail will also increase your Server Limit by " . config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL') . ".
"; + $AdditionalLine .= __("Verifying your e-mail will also increase your Server Limit by ") . config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL') . ".
"; } $AdditionalLine .= "
"; if (config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD') != 0) { - $AdditionalLine .= "You can also verify your discord account to get another " . config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD') . " " . config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME') . ".
"; + $AdditionalLine .= __("You can also verify your discord account to get another ") . config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD') . " " . config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME') . ".
"; } if (config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD') != 0) { - $AdditionalLine .= "Verifying your Discord account will also increase your Server Limit by " . config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD') . ".
"; + $AdditionalLine .= __("Verifying your Discord account will also increase your Server Limit by ") . config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD') . ".
"; } return $AdditionalLine; @@ -65,19 +65,20 @@ class WelcomeMessage extends Notification implements ShouldQueue */ public function toArray($notifiable) { + return [ 'title' => __("Getting started!"), 'content' => " -

Hello {$this->user->name}, Welcome to our dashboard!

-
Verification
-

You can verify your e-mail address and link/verify your Discord account.

+

".__("Hello")." {$this->user->name}, ".__("Welcome to our dashboard")."!

+
".__("Verification")."
+

".__("You can verify your e-mail address and link/verify your Discord account.")."

" . $this->AdditionalLines() . "

-
Information
-

This dashboard can be used to create and delete servers.
These servers can be used and managed on our pterodactyl panel.
If you have any questions, please join our Discord server and #create-a-ticket.

-

We hope you can enjoy this hosting experience and if you have any suggestions please let us know!

-

Regards,
" . config('app.name', 'Laravel') . "

+
".__("Information")."
+

".__("This dashboard can be used to create and delete servers").".
".__("These servers can be used and managed on our pterodactyl panel").".
".__("If you have any questions, please join our Discord server and #create-a-ticket").".

+

".__("We hope you can enjoy this hosting experience and if you have any suggestions please let us know")."!

+

".__("Regards").",
" . config('app.name', 'Laravel') . "

", ]; } diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php index a0542815..742bcd02 100644 --- a/resources/views/layouts/main.blade.php +++ b/resources/views/layouts/main.blade.php @@ -49,10 +49,12 @@ {{ __('Home') }} + @if(config('SETTINGS::DISCORD:INVITE_URL')) + @endif @if (config('SETTINGS::LOCALE:CLIENTS_CAN_CHANGE') == 'true') @@ -30,12 +30,12 @@
-
+ @csrf @method('PATCH')
- disabled) checked @endif name="disabled" + disabled) checked @endif name="disabled" class="custom-control-input custom-control-input-danger" id="switch1">