From aedc98cc8b1f84c5ab5eae468d4490a138d49001 Mon Sep 17 00:00:00 2001 From: carodej Date: Mon, 29 Jun 2020 10:09:42 +0200 Subject: [PATCH] setup wizard init --- .../Controllers/Admin/InvoiceController.php | 3 + app/Http/Controllers/Admin/UserController.php | 4 +- app/Http/Controllers/SettingController.php | 85 ++ .../User/PaymentMethodsController.php | 6 +- .../User/SubscriptionController.php | 10 +- app/Http/Controllers/WebhookController.php | 27 + app/Http/Middleware/VerifyCsrfToken.php | 1 + app/Services/StripeService.php | 7 + app/Setting.php | 12 + composer.json | 1 + composer.lock | 1061 +++++------------ database/factories/SettingFactory.php | 12 + ...020_06_25_142635_create_settings_table.php | 32 + database/seeds/DatabaseSeeder.php | 1 + database/seeds/PaymentGatewaysSeeder.php | 7 - database/seeds/SettingSeeder.php | 57 + public/mix-manifest.json | 12 +- resources/js/App.vue | 2 +- resources/js/components/FilesView/Spinner.vue | 2 - .../js/components/Others/Forms/FormLabel.vue | 44 + .../js/components/Others/Forms/InfoBox.vue | 69 ++ .../components/Others/Forms/SelectInput.vue | 12 +- resources/js/router.js | 94 +- resources/js/views/Profile.vue | 4 +- resources/js/views/SetupWIzard/AppSetup.vue | 124 ++ .../js/views/SetupWIzard/BillingsDetail.vue | 402 +++++++ resources/js/views/SetupWIzard/Database.vue | 147 +++ .../js/views/SetupWIzard/EnvironmentSetup.vue | 218 ++++ .../js/views/SetupWIzard/PurchaseCode.vue | 107 ++ .../views/SetupWIzard/StripeCredentials.vue | 670 +++++++++++ .../views/SetupWIzard/SubscriptionPlans.vue | 149 +++ resources/js/views/SetupWizard.vue | 12 + resources/js/views/Upgrade/UpgradeBilling.vue | 34 +- .../{PaymentCards.vue => PaymentMethods.vue} | 29 +- resources/js/views/User/Subscription.vue | 13 +- resources/sass/app.scss | 5 + .../sass/vue-file-manager/_auth-form.scss | 2 + resources/sass/vue-file-manager/_auth.scss | 4 - resources/sass/vue-file-manager/_forms.scss | 18 +- .../sass/vue-file-manager/_setup_wizard.scss | 81 ++ .../sass/vue-file-manager/_variables.scss | 2 +- resources/views/index.blade.php | 1 + .../views/vuefilemanager/invoice.blade.php | 33 +- routes/web.php | 6 +- 44 files changed, 2756 insertions(+), 866 deletions(-) create mode 100644 app/Http/Controllers/SettingController.php create mode 100644 app/Http/Controllers/WebhookController.php create mode 100644 app/Setting.php create mode 100644 database/factories/SettingFactory.php create mode 100644 database/migrations/2020_06_25_142635_create_settings_table.php create mode 100644 database/seeds/SettingSeeder.php create mode 100644 resources/js/components/Others/Forms/FormLabel.vue create mode 100644 resources/js/components/Others/Forms/InfoBox.vue create mode 100644 resources/js/views/SetupWIzard/AppSetup.vue create mode 100644 resources/js/views/SetupWIzard/BillingsDetail.vue create mode 100644 resources/js/views/SetupWIzard/Database.vue create mode 100644 resources/js/views/SetupWIzard/EnvironmentSetup.vue create mode 100644 resources/js/views/SetupWIzard/PurchaseCode.vue create mode 100644 resources/js/views/SetupWIzard/StripeCredentials.vue create mode 100644 resources/js/views/SetupWIzard/SubscriptionPlans.vue create mode 100644 resources/js/views/SetupWizard.vue rename resources/js/views/User/{PaymentCards.vue => PaymentMethods.vue} (90%) create mode 100644 resources/sass/vue-file-manager/_setup_wizard.scss diff --git a/app/Http/Controllers/Admin/InvoiceController.php b/app/Http/Controllers/Admin/InvoiceController.php index fc3e1be5..329bec19 100644 --- a/app/Http/Controllers/Admin/InvoiceController.php +++ b/app/Http/Controllers/Admin/InvoiceController.php @@ -7,6 +7,7 @@ use App\Http\Resources\InvoiceAdminCollection; use App\Http\Resources\InvoiceResource; use App\Invoice; use App\Services\StripeService; +use App\Setting; use Illuminate\Http\Request; class InvoiceController extends Controller @@ -40,9 +41,11 @@ class InvoiceController extends Controller */ public function show($customer, $token) { + $settings = json_decode(Setting::all()->pluck('value', 'name')->toJson()); $invoice = $this->stripe->getUserInvoice($customer, $token); return view('vuefilemanager.invoice') + ->with('settings', $settings) ->with('invoice', $invoice); } } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index b909ccf3..b642dbb8 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -66,9 +66,9 @@ class UserController extends Controller * * @return InvoiceCollection */ - public function invoices() + public function invoices($id) { - $user = \Auth::user(); + $user = User::find($id); return new InvoiceCollection( $this->stripe->getUserInvoices($user) diff --git a/app/Http/Controllers/SettingController.php b/app/Http/Controllers/SettingController.php new file mode 100644 index 00000000..74fb34e4 --- /dev/null +++ b/app/Http/Controllers/SettingController.php @@ -0,0 +1,85 @@ +hasPaymentMethod()) { + return abort(204, 'User don\'t have any payment methods'); + } + $slug_payment_methods = 'payment-methods-user-' . $user->id; $slug_default_payment_method = 'default-payment-methods-user-' . $user->id; diff --git a/app/Http/Controllers/User/SubscriptionController.php b/app/Http/Controllers/User/SubscriptionController.php index 3d06e356..82281bea 100644 --- a/app/Http/Controllers/User/SubscriptionController.php +++ b/app/Http/Controllers/User/SubscriptionController.php @@ -43,11 +43,17 @@ class SubscriptionController extends Controller /** * Get user subscription detail * - * @return UserSubscription + * @return array */ public function show() { - $slug_user_subscription = 'subscription-user-' . Auth::id(); + $user = Auth::user(); + + if (! $user->subscription('main')) { + return abort(204, 'User don\'t have any subscription'); + } + + $slug_user_subscription = 'subscription-user-' . $user->id; if (Cache::has($slug_user_subscription)) { return Cache::get($slug_user_subscription); diff --git a/app/Http/Controllers/WebhookController.php b/app/Http/Controllers/WebhookController.php new file mode 100644 index 00000000..012a8b03 --- /dev/null +++ b/app/Http/Controllers/WebhookController.php @@ -0,0 +1,27 @@ +firstOrFail(); + + // TODO: set default capacity + $user->settings->update(['storage_capacity' => 1]); + + return $this->successMethod(); + } +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index c30df162..288ff6d5 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -20,5 +20,6 @@ class VerifyCsrfToken extends Middleware */ protected $except = [ '/deploy', + '/stripe/*', ]; } diff --git a/app/Services/StripeService.php b/app/Services/StripeService.php index d57157ec..b24b080b 100644 --- a/app/Services/StripeService.php +++ b/app/Services/StripeService.php @@ -19,6 +19,13 @@ class StripeService $this->stripe = Stripe::make(env('STRIPE_SECRET'), '2020-03-02'); } + public function getAccountDetails() + { + $account = $this->stripe->account()->details(); + + return $account; + } + /** * Get setup intent * diff --git a/app/Setting.php b/app/Setting.php new file mode 100644 index 00000000..7836813b --- /dev/null +++ b/app/Setting.php @@ -0,0 +1,12 @@ += 2", "phpunit/phpunit": "^4.8.35|^5.4.3", "psr/cache": "^1.0", "psr/simple-cache": "^1.0", @@ -140,7 +141,7 @@ "s3", "sdk" ], - "time": "2020-06-03T18:12:30+00:00" + "time": "2020-06-24T19:09:03+00:00" }, { "name": "brick/math", @@ -913,16 +914,16 @@ }, { "name": "egulias/email-validator", - "version": "2.1.17", + "version": "2.1.18", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" + "reference": "cfa3d44471c7f5bfb684ac2b0da7114283d78441" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", - "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/cfa3d44471c7f5bfb684ac2b0da7114283d78441", + "reference": "cfa3d44471c7f5bfb684ac2b0da7114283d78441", "shasum": "" }, "require": { @@ -946,7 +947,7 @@ }, "autoload": { "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" + "Egulias\\EmailValidator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -967,73 +968,20 @@ "validation", "validator" ], - "time": "2020-02-13T22:36:52+00:00" - }, - { - "name": "felixkiss/uniquewith-validator", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/felixkiss/uniquewith-validator.git", - "reference": "7ce4ff83c9003718e8febe1d4670eb869a720c5c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixkiss/uniquewith-validator/zipball/7ce4ff83c9003718e8febe1d4670eb869a720c5c", - "reference": "7ce4ff83c9003718e8febe1d4670eb869a720c5c", - "shasum": "" - }, - "require": { - "illuminate/support": "^5.5|^6.0|^7.0", - "illuminate/validation": "^5.5|^6.0|^7.0", - "php": "^7.1.3" - }, - "require-dev": { - "bossa/phpspec2-expect": "^3.0", - "phpspec/phpspec": "^5.0|^6.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Felixkiss\\UniqueWithValidator\\ServiceProvider" - ] - } - }, - "autoload": { - "psr-0": { - "Felixkiss\\UniqueWithValidator\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Felix Kiss", - "email": "felix@felixkiss.com" - } - ], - "description": "Custom Laravel Validator for combined unique indexes", - "homepage": "https://github.com/felixkiss/uniquewith-validator", - "keywords": [ - "laravel" - ], - "time": "2020-03-10T21:45:55+00:00" + "time": "2020-06-16T20:11:17+00:00" }, { "name": "fideloper/proxy", - "version": "4.3.0", + "version": "4.4.0", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a" + "reference": "9beebf48a1c344ed67c1d36bb1b8709db7c3c1a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", - "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/9beebf48a1c344ed67c1d36bb1b8709db7c3c1a8", + "reference": "9beebf48a1c344ed67c1d36bb1b8709db7c3c1a8", "shasum": "" }, "require": { @@ -1074,7 +1022,7 @@ "proxy", "trusted proxy" ], - "time": "2020-02-22T01:51:47+00:00" + "time": "2020-06-23T01:36:47+00:00" }, { "name": "firebase/php-jwt", @@ -1248,16 +1196,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.4", + "version": "6.5.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d" + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a4a1b6930528a8f7ee03518e6442ec7a44155d9d", - "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", "shasum": "" }, "require": { @@ -1265,7 +1213,7 @@ "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5", - "symfony/polyfill-intl-idn": "1.17.0" + "symfony/polyfill-intl-idn": "^1.17.0" }, "require-dev": { "ext-curl": "*", @@ -1311,7 +1259,7 @@ "rest", "web service" ], - "time": "2020-05-25T19:35:05+00:00" + "time": "2020-06-16T21:01:06+00:00" }, { "name": "guzzlehttp/promises", @@ -1720,16 +1668,16 @@ }, { "name": "laravel/framework", - "version": "v7.14.1", + "version": "v7.17.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "469b7719a8dca40841a74f59f2e9f30f01d3a106" + "reference": "d16ff3a0a66d98e04163456b39c4b7302cf50a40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/469b7719a8dca40841a74f59f2e9f30f01d3a106", - "reference": "469b7719a8dca40841a74f59f2e9f30f01d3a106", + "url": "https://api.github.com/repos/laravel/framework/zipball/d16ff3a0a66d98e04163456b39c4b7302cf50a40", + "reference": "d16ff3a0a66d98e04163456b39c4b7302cf50a40", "shasum": "" }, "require": { @@ -1817,6 +1765,7 @@ "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).", + "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", "ext-pcntl": "Required to use all features of the queue worker.", @@ -1872,7 +1821,7 @@ "framework", "laravel" ], - "time": "2020-06-02T22:34:18+00:00" + "time": "2020-06-24T13:11:25+00:00" }, { "name": "laravel/passport", @@ -2076,6 +2025,61 @@ ], "time": "2020-04-07T15:01:31+00:00" }, + { + "name": "laravel/ui", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/ui.git", + "reference": "15368c5328efb7ce94f35ca750acde9b496ab1b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/ui/zipball/15368c5328efb7ce94f35ca750acde9b496ab1b1", + "reference": "15368c5328efb7ce94f35ca750acde9b496ab1b1", + "shasum": "" + }, + "require": { + "illuminate/console": "^7.0", + "illuminate/filesystem": "^7.0", + "illuminate/support": "^7.0", + "php": "^7.2.5" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Ui\\UiServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Ui\\": "src/", + "Illuminate\\Foundation\\Auth\\": "auth-backend/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel UI utilities and presets.", + "keywords": [ + "laravel", + "ui" + ], + "time": "2020-04-29T15:06:45+00:00" + }, { "name": "lcobucci/jwt", "version": "3.3.2", @@ -2133,21 +2137,21 @@ }, { "name": "league/commonmark", - "version": "1.4.3", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "412639f7cfbc0b31ad2455b2fe965095f66ae505" + "reference": "fc33ca12575e98e57cdce7d5f38b2ca5335714b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/412639f7cfbc0b31ad2455b2fe965095f66ae505", - "reference": "412639f7cfbc0b31ad2455b2fe965095f66ae505", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/fc33ca12575e98e57cdce7d5f38b2ca5335714b3", + "reference": "fc33ca12575e98e57cdce7d5f38b2ca5335714b3", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "conflict": { "scrutinizer/ocular": "1.7.*" @@ -2169,11 +2173,6 @@ "bin/commonmark" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "psr-4": { "League\\CommonMark\\": "src" @@ -2203,7 +2202,7 @@ "md", "parser" ], - "time": "2020-05-04T22:15:21+00:00" + "time": "2020-06-21T20:50:13+00:00" }, { "name": "league/event", @@ -2920,16 +2919,16 @@ }, { "name": "opis/closure", - "version": "3.5.3", + "version": "3.5.5", "source": { "type": "git", "url": "https://github.com/opis/closure.git", - "reference": "cac47092144043d5d676e2e7cf8d0d2f83fc89ca" + "reference": "dec9fc5ecfca93f45cd6121f8e6f14457dff372c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/cac47092144043d5d676e2e7cf8d0d2f83fc89ca", - "reference": "cac47092144043d5d676e2e7cf8d0d2f83fc89ca", + "url": "https://api.github.com/repos/opis/closure/zipball/dec9fc5ecfca93f45cd6121f8e6f14457dff372c", + "reference": "dec9fc5ecfca93f45cd6121f8e6f14457dff372c", "shasum": "" }, "require": { @@ -2977,7 +2976,7 @@ "serialization", "serialize" ], - "time": "2020-05-25T09:32:45+00:00" + "time": "2020-06-17T14:59:55+00:00" }, { "name": "paragonie/random_compat", @@ -3153,16 +3152,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.7.3", + "version": "1.7.4", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae" + "reference": "b2ada2ad5d8a32b89088b8adc31ecd2e3a13baf3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae", - "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/b2ada2ad5d8a32b89088b8adc31ecd2e3a13baf3", + "reference": "b2ada2ad5d8a32b89088b8adc31ecd2e3a13baf3", "shasum": "" }, "require": { @@ -3204,7 +3203,7 @@ "php", "type" ], - "time": "2020-03-21T18:07:53+00:00" + "time": "2020-06-07T10:40:07+00:00" }, { "name": "phpseclib/phpseclib", @@ -3890,253 +3889,6 @@ ], "time": "2020-03-29T20:13:32+00:00" }, - { - "name": "rinvex/laravel-cacheable", - "version": "v4.0.0", - "source": { - "type": "git", - "url": "https://github.com/rinvex/laravel-cacheable.git", - "reference": "4e2852d00134bfb3454d4373d093830291c0519d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rinvex/laravel-cacheable/zipball/4e2852d00134bfb3454d4373d093830291c0519d", - "reference": "4e2852d00134bfb3454d4373d093830291c0519d", - "shasum": "" - }, - "require": { - "illuminate/cache": "^7.0.0", - "illuminate/contracts": "^7.0.0", - "illuminate/database": "^7.0.0", - "php": "^7.4.0" - }, - "require-dev": { - "codedungeon/phpunit-result-printer": "^0.27.0", - "illuminate/container": "^7.0.0", - "phpunit/phpunit": "^9.0.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Rinvex\\Cacheable\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rinvex LLC", - "email": "help@rinvex.com", - "homepage": "https://rinvex.com" - }, - { - "name": "Abdelrahman Omran", - "email": "me@omranic.com", - "homepage": "https://omranic.com", - "role": "Project Lead" - }, - { - "name": "The Generous Laravel Community", - "homepage": "https://github.com/rinvex/laravel-cacheable/contributors" - } - ], - "description": "Rinvex Cacheable is a granular, intuitive, and fluent caching system for eloquent models. Simple, but yet powerful, plug-n-play with no hassle.", - "homepage": "https://rinvex.com", - "keywords": [ - "cache", - "cacheable", - "eloquent", - "fluent", - "granular", - "intuitive", - "laravel", - "model", - "query", - "rinvex", - "trait" - ], - "time": "2020-03-15T14:05:25+00:00" - }, - { - "name": "rinvex/laravel-subscriptions", - "version": "dev-subscription-query-fix", - "source": { - "type": "git", - "url": "https://github.com/MakingCG/laravel-subscriptions.git", - "reference": "0ed71077f34b9ca21c3755fcf09463b37802c0e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MakingCG/laravel-subscriptions/zipball/0ed71077f34b9ca21c3755fcf09463b37802c0e8", - "reference": "0ed71077f34b9ca21c3755fcf09463b37802c0e8", - "shasum": "" - }, - "require": { - "illuminate/console": "^7.0.0", - "illuminate/database": "^7.0.0", - "illuminate/support": "^7.0.0", - "php": "^7.4.0", - "rinvex/laravel-cacheable": "^4.0.0", - "rinvex/laravel-support": "^4.0.0", - "spatie/eloquent-sortable": "^3.7.0", - "spatie/laravel-sluggable": "^2.2.0", - "spatie/laravel-translatable": "^4.2.0" - }, - "require-dev": { - "codedungeon/phpunit-result-printer": "^0.27.0", - "illuminate/container": "^7.0.0", - "phpunit/phpunit": "^9.0.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Rinvex\\Subscriptions\\Providers\\SubscriptionsServiceProvider" - ] - } - }, - "autoload": { - "classmap": [ - "database" - ], - "psr-4": { - "Rinvex\\Subscriptions\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Rinvex\\Subscriptions\\Tests\\": "tests" - } - }, - "scripts": { - "test": [ - "vendor/bin/phpunit" - ] - }, - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rinvex LLC", - "homepage": "https://rinvex.com", - "email": "help@rinvex.com" - }, - { - "name": "Abdelrahman Omran", - "homepage": "https://omranic.com", - "email": "me@omranic.com", - "role": "Project Lead" - }, - { - "name": "The Generous Laravel Community", - "homepage": "https://github.com/rinvex/laravel-subscriptions/contributors" - } - ], - "description": "Rinvex Subscriptions is a flexible plans and subscription management system for Laravel, with the required tools to run your SAAS like services efficiently. It's simple architecture, accompanied by powerful underlying to afford solid platform for your business.", - "homepage": "https://rinvex.com", - "keywords": [ - "database", - "feature", - "laravel", - "plan", - "recurring", - "subscription", - "value" - ], - "support": { - "email": "help@rinvex.com", - "issues": "https://github.com/rinvex/laravel-subscriptions/issues", - "source": "https://github.com/rinvex/laravel-subscriptions", - "docs": "https://github.com/rinvex/laravel-subscriptions/blob/master/README.md" - }, - "time": "2020-06-15T13:17:55+00:00" - }, - { - "name": "rinvex/laravel-support", - "version": "v4.0.7", - "source": { - "type": "git", - "url": "https://github.com/rinvex/laravel-support.git", - "reference": "67caadde0f1f9cce9890579ef649a758c5f8424c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rinvex/laravel-support/zipball/67caadde0f1f9cce9890579ef649a758c5f8424c", - "reference": "67caadde0f1f9cce9890579ef649a758c5f8424c", - "shasum": "" - }, - "require": { - "felixkiss/uniquewith-validator": "^3.4.0", - "illuminate/auth": "^7.0.0", - "illuminate/bus": "^7.0.0", - "illuminate/contracts": "^7.0.0", - "illuminate/http": "^7.0.0", - "illuminate/routing": "^7.0.0", - "illuminate/support": "^7.0.0", - "illuminate/validation": "^7.0.0", - "php": "^7.4.0", - "spatie/laravel-schemaless-attributes": "^1.7.0", - "watson/validating": "^5.0.0" - }, - "require-dev": { - "codedungeon/phpunit-result-printer": "^0.27.0", - "phpunit/phpunit": "^9.0.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Rinvex\\Support\\Providers\\SupportServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/Support/helpers.php" - ], - "psr-4": { - "Rinvex\\Support\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rinvex LLC", - "email": "help@rinvex.com", - "homepage": "https://rinvex.com" - }, - { - "name": "Abdelrahman Omran", - "email": "me@omranic.com", - "homepage": "https://omranic.com", - "role": "Project Lead" - }, - { - "name": "The Generous Laravel Community", - "homepage": "https://github.com/rinvex/laravel-support/contributors" - } - ], - "description": "Rinvex common support helpers, contracts, and traits required by various Rinvex packages. Validator functionality, and basic controller included out-of-the-box.", - "homepage": "https://rinvex.com/marketplace/rinvex-support/", - "keywords": [ - "contract", - "helper", - "laravel", - "mimetype", - "rinvex", - "support", - "timezones", - "trait", - "validator" - ], - "time": "2020-05-30T02:22:01+00:00" - }, { "name": "sabberworm/php-css-parser", "version": "8.3.1", @@ -4182,245 +3934,18 @@ ], "time": "2020-06-01T09:10:00+00:00" }, - { - "name": "spatie/eloquent-sortable", - "version": "3.8.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/eloquent-sortable.git", - "reference": "5df5d545003f6443ced9684765759ea2e5cf5d91" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/eloquent-sortable/zipball/5df5d545003f6443ced9684765759ea2e5cf5d91", - "reference": "5df5d545003f6443ced9684765759ea2e5cf5d91", - "shasum": "" - }, - "require": { - "laravel/framework": "~5.8.0|^6.0|^7.0", - "php": "^7.2" - }, - "require-dev": { - "orchestra/testbench": "~3.8.0|^4.0|^5.0", - "phpunit/phpunit": "^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\EloquentSortable\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be" - } - ], - "description": "Sortable behaviour for eloquent models", - "homepage": "https://github.com/spatie/eloquent-sortable", - "keywords": [ - "behaviour", - "eloquent", - "laravel", - "model", - "sort", - "sortable" - ], - "time": "2020-03-02T19:45:44+00:00" - }, - { - "name": "spatie/laravel-schemaless-attributes", - "version": "1.7.1", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-schemaless-attributes.git", - "reference": "2ad106215d7d4403e50cac0ca9aaea0bf91506c2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-schemaless-attributes/zipball/2ad106215d7d4403e50cac0ca9aaea0bf91506c2", - "reference": "2ad106215d7d4403e50cac0ca9aaea0bf91506c2", - "shasum": "" - }, - "require": { - "illuminate/database": "^5.6|^6.0|^7.0", - "illuminate/support": "^5.6|^6.0|^7.0", - "php": "^7.2" - }, - "require-dev": { - "larapack/dd": "^1.0", - "orchestra/testbench": "^3.6|^4.0|^5.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Spatie\\SchemalessAttributes\\SchemalessAttributesServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Spatie\\SchemalessAttributes\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Add schemaless attributes to Eloquent models", - "homepage": "https://github.com/spatie/laravel-schemaless-attributes", - "keywords": [ - "laravel-schemaless-attributes", - "spatie" - ], - "time": "2020-03-18T19:08:09+00:00" - }, - { - "name": "spatie/laravel-sluggable", - "version": "2.4.2", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-sluggable.git", - "reference": "707265d4a29523a387e280e77f85071f04892540" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-sluggable/zipball/707265d4a29523a387e280e77f85071f04892540", - "reference": "707265d4a29523a387e280e77f85071f04892540", - "shasum": "" - }, - "require": { - "illuminate/database": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.4" - }, - "require-dev": { - "orchestra/testbench": "^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Sluggable\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Generate slugs when saving Eloquent models", - "homepage": "https://github.com/spatie/laravel-sluggable", - "keywords": [ - "laravel-sluggable", - "spatie" - ], - "time": "2020-04-20T19:10:09+00:00" - }, - { - "name": "spatie/laravel-translatable", - "version": "4.3.2", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-translatable.git", - "reference": "c15b457ddce4ccaf174de652780647cb086a77a5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/c15b457ddce4ccaf174de652780647cb086a77a5", - "reference": "c15b457ddce4ccaf174de652780647cb086a77a5", - "shasum": "" - }, - "require": { - "illuminate/database": "~5.8.0|^6.0|^7.0", - "illuminate/support": "~5.8.0|^6.0|^7.0", - "php": "^7.2" - }, - "require-dev": { - "mockery/mockery": "^1.3", - "orchestra/testbench": "~3.8.0|^4.0|^5.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Spatie\\Translatable\\TranslatableServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Spatie\\Translatable\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - }, - { - "name": "Sebastian De Deyne", - "email": "sebastian@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - }, - { - "name": "Mohamed Said", - "email": "theMohamedSaid@gmail.com", - "role": "Original idea" - } - ], - "description": "A trait to make an Eloquent model hold translations", - "homepage": "https://github.com/spatie/laravel-translatable", - "keywords": [ - "eloquent", - "i8n", - "laravel-translatable", - "model", - "multilingual", - "spatie", - "translate" - ], - "time": "2020-04-30T10:01:26+00:00" - }, { "name": "stripe/stripe-php", - "version": "v7.37.1", + "version": "v7.38.0", "source": { "type": "git", "url": "https://github.com/stripe/stripe-php.git", - "reference": "e3e29131a131785c3d2f85556b0154e8170e9bba" + "reference": "65264cace7787083f6c3026d543fa002cc17e2af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/e3e29131a131785c3d2f85556b0154e8170e9bba", - "reference": "e3e29131a131785c3d2f85556b0154e8170e9bba", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/65264cace7787083f6c3026d543fa002cc17e2af", + "reference": "65264cace7787083f6c3026d543fa002cc17e2af", "shasum": "" }, "require": { @@ -4464,7 +3989,7 @@ "payment processing", "stripe" ], - "time": "2020-06-11T16:27:35+00:00" + "time": "2020-06-25T04:38:46+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -4530,16 +4055,16 @@ }, { "name": "symfony/console", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "00bed125812716d09b163f0727ef33bb49bf3448" + "reference": "34ac555a3627e324b660e318daa07572e1140123" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/00bed125812716d09b163f0727ef33bb49bf3448", - "reference": "00bed125812716d09b163f0727ef33bb49bf3448", + "url": "https://api.github.com/repos/symfony/console/zipball/34ac555a3627e324b660e318daa07572e1140123", + "reference": "34ac555a3627e324b660e318daa07572e1140123", "shasum": "" }, "require": { @@ -4605,11 +4130,11 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-05-30T20:35:19+00:00" + "time": "2020-06-15T12:59:21+00:00" }, { "name": "symfony/css-selector", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -4708,7 +4233,7 @@ }, { "name": "symfony/error-handler", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", @@ -4765,7 +4290,7 @@ }, { "name": "symfony/event-dispatcher", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -4895,7 +4420,7 @@ }, { "name": "symfony/finder", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", @@ -4944,16 +4469,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e0d853bddc2b2cfb0d67b0b4496c03fffe1d37fa" + "reference": "f93055171b847915225bd5b0a5792888419d8d75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e0d853bddc2b2cfb0d67b0b4496c03fffe1d37fa", - "reference": "e0d853bddc2b2cfb0d67b0b4496c03fffe1d37fa", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f93055171b847915225bd5b0a5792888419d8d75", + "reference": "f93055171b847915225bd5b0a5792888419d8d75", "shasum": "" }, "require": { @@ -5001,20 +4526,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2020-05-24T12:18:07+00:00" + "time": "2020-06-15T06:52:54+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "75ff5327a7d6ede3ccc2fac3ebca9ed776b3e85c" + "reference": "a18c27ace1ef344ffcb129a5b089bad7643b387a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/75ff5327a7d6ede3ccc2fac3ebca9ed776b3e85c", - "reference": "75ff5327a7d6ede3ccc2fac3ebca9ed776b3e85c", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a18c27ace1ef344ffcb129a5b089bad7643b387a", + "reference": "a18c27ace1ef344ffcb129a5b089bad7643b387a", "shasum": "" }, "require": { @@ -5100,7 +4625,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2020-05-31T06:14:18+00:00" + "time": "2020-06-15T13:51:38+00:00" }, { "name": "symfony/intl", @@ -5180,16 +4705,16 @@ }, { "name": "symfony/mime", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "56261f89385f9d13cf843a5101ac72131190bc91" + "reference": "c0c418f05e727606e85b482a8591519c4712cf45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/56261f89385f9d13cf843a5101ac72131190bc91", - "reference": "56261f89385f9d13cf843a5101ac72131190bc91", + "url": "https://api.github.com/repos/symfony/mime/zipball/c0c418f05e727606e85b482a8591519c4712cf45", + "reference": "c0c418f05e727606e85b482a8591519c4712cf45", "shasum": "" }, "require": { @@ -5239,20 +4764,20 @@ "mime", "mime-type" ], - "time": "2020-05-25T12:33:44+00:00" + "time": "2020-06-09T15:07:35+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", "shasum": "" }, "require": { @@ -5265,6 +4790,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5297,20 +4826,20 @@ "polyfill", "portable" ], - "time": "2020-05-12T16:14:59+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424" + "reference": "ba6c9c18db36235b859cc29b8372d1c01298c035" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c4de7601eefbf25f9d47190abe07f79fe0a27424", - "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/ba6c9c18db36235b859cc29b8372d1c01298c035", + "reference": "ba6c9c18db36235b859cc29b8372d1c01298c035", "shasum": "" }, "require": { @@ -5323,6 +4852,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5356,20 +4889,20 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "e094b0770f7833fdf257e6ba4775be4e258230b2" + "reference": "6e4dbcf5e81eba86e36731f94fe56b1726835846" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e094b0770f7833fdf257e6ba4775be4e258230b2", - "reference": "e094b0770f7833fdf257e6ba4775be4e258230b2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/6e4dbcf5e81eba86e36731f94fe56b1726835846", + "reference": "6e4dbcf5e81eba86e36731f94fe56b1726835846", "shasum": "" }, "require": { @@ -5382,6 +4915,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5416,20 +4953,20 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3" + "reference": "7b5e03aeb88cc8b4b2b136e34b0fc0830e86cd4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3", - "reference": "4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/7b5e03aeb88cc8b4b2b136e34b0fc0830e86cd4d", + "reference": "7b5e03aeb88cc8b4b2b136e34b0fc0830e86cd4d", "shasum": "" }, "require": { @@ -5443,6 +4980,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5474,20 +5015,20 @@ "portable", "shim" ], - "time": "2020-05-12T16:14:59+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a" + "reference": "a57f8161502549a742a63c09f0a604997bf47027" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a", - "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a57f8161502549a742a63c09f0a604997bf47027", + "reference": "a57f8161502549a742a63c09f0a604997bf47027", "shasum": "" }, "require": { @@ -5502,6 +5043,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5536,20 +5081,20 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "1357b1d168eb7f68ad6a134838e46b0b159444a9" + "reference": "40309d1700e8f72447bb9e7b54af756eeea35620" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/1357b1d168eb7f68ad6a134838e46b0b159444a9", - "reference": "1357b1d168eb7f68ad6a134838e46b0b159444a9", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/40309d1700e8f72447bb9e7b54af756eeea35620", + "reference": "40309d1700e8f72447bb9e7b54af756eeea35620", "shasum": "" }, "require": { @@ -5562,6 +5107,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5599,20 +5148,20 @@ "portable", "shim" ], - "time": "2020-05-12T16:14:59+00:00" + "time": "2020-06-14T14:40:37+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" + "reference": "7110338d81ce1cbc3e273136e4574663627037a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7", + "reference": "7110338d81ce1cbc3e273136e4574663627037a7", "shasum": "" }, "require": { @@ -5625,6 +5174,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5658,7 +5211,7 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-php72", @@ -5717,16 +5270,16 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc" + "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fa0837fe02d617d31fbb25f990655861bb27bd1a", + "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a", "shasum": "" }, "require": { @@ -5736,6 +5289,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5771,20 +5328,20 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd" + "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/5e30b2799bc1ad68f7feb62b60a73743589438dd", - "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4a5b6bba3259902e386eb80dd1956181ee90b5b2", + "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2", "shasum": "" }, "require": { @@ -5794,6 +5351,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5833,11 +5394,11 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/process", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -5887,20 +5448,20 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.0.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "ce709cd9c90872c08c2427b45739d5f3c781ab4f" + "reference": "e44f249afab496b4e8c0f7461fb8140eaa4b24d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/ce709cd9c90872c08c2427b45739d5f3c781ab4f", - "reference": "ce709cd9c90872c08c2427b45739d5f3c781ab4f", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/e44f249afab496b4e8c0f7461fb8140eaa4b24d2", + "reference": "e44f249afab496b4e8c0f7461fb8140eaa4b24d2", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "psr/http-message": "^1.0", "symfony/http-foundation": "^4.4 || ^5.0" }, @@ -5947,20 +5508,20 @@ "psr-17", "psr-7" ], - "time": "2020-01-02T08:07:11+00:00" + "time": "2020-06-25T08:21:47+00:00" }, { "name": "symfony/routing", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "95cf30145b26c758d6d832aa2d0de3128978d556" + "reference": "bbd0ba121d623f66d165a55a108008968911f3eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/95cf30145b26c758d6d832aa2d0de3128978d556", - "reference": "95cf30145b26c758d6d832aa2d0de3128978d556", + "url": "https://api.github.com/repos/symfony/routing/zipball/bbd0ba121d623f66d165a55a108008968911f3eb", + "reference": "bbd0ba121d623f66d165a55a108008968911f3eb", "shasum": "" }, "require": { @@ -6025,7 +5586,7 @@ "uri", "url" ], - "time": "2020-05-30T20:35:19+00:00" + "time": "2020-06-10T11:49:58+00:00" }, { "name": "symfony/service-contracts", @@ -6087,16 +5648,16 @@ }, { "name": "symfony/string", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "90c2a5103f07feb19069379f3abdcdbacc7753a9" + "reference": "ac70459db781108db7c6d8981dd31ce0e29e3298" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/90c2a5103f07feb19069379f3abdcdbacc7753a9", - "reference": "90c2a5103f07feb19069379f3abdcdbacc7753a9", + "url": "https://api.github.com/repos/symfony/string/zipball/ac70459db781108db7c6d8981dd31ce0e29e3298", + "reference": "ac70459db781108db7c6d8981dd31ce0e29e3298", "shasum": "" }, "require": { @@ -6154,11 +5715,11 @@ "utf-8", "utf8" ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-06-11T12:16:36+00:00" }, { "name": "symfony/translation", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", @@ -6293,7 +5854,7 @@ }, { "name": "symfony/var-dumper", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", @@ -6541,28 +6102,28 @@ }, { "name": "vlucas/phpdotenv", - "version": "v4.1.6", + "version": "v4.1.7", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "0b32505d67c1abbfa829283c86bfc0642a661bf6" + "reference": "db63b2ea280fdcf13c4ca392121b0b2450b51193" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0b32505d67c1abbfa829283c86bfc0642a661bf6", - "reference": "0b32505d67c1abbfa829283c86bfc0642a661bf6", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/db63b2ea280fdcf13c4ca392121b0b2450b51193", + "reference": "db63b2ea280fdcf13c4ca392121b0b2450b51193", "shasum": "" }, "require": { "php": "^5.5.9 || ^7.0 || ^8.0", - "phpoption/phpoption": "^1.7.2", - "symfony/polyfill-ctype": "^1.9" + "phpoption/phpoption": "^1.7.3", + "symfony/polyfill-ctype": "^1.16" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.3", + "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", "ext-pcre": "*", - "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0" }, "suggest": { "ext-filter": "Required to use the boolean validator.", @@ -6601,20 +6162,20 @@ "env", "environment" ], - "time": "2020-05-23T09:43:32+00:00" + "time": "2020-06-07T18:25:35+00:00" }, { "name": "voku/portable-ascii", - "version": "1.5.1", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "e7f9bd5deff09a57318f9b900ab33a05acfcf4d3" + "reference": "618631dc601d8eb6ea0a9fbf654ec82f066c4e97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/e7f9bd5deff09a57318f9b900ab33a05acfcf4d3", - "reference": "e7f9bd5deff09a57318f9b900ab33a05acfcf4d3", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/618631dc601d8eb6ea0a9fbf654ec82f066c4e97", + "reference": "618631dc601d8eb6ea0a9fbf654ec82f066c4e97", "shasum": "" }, "require": { @@ -6649,57 +6210,7 @@ "clean", "php" ], - "time": "2020-05-26T06:40:44+00:00" - }, - { - "name": "watson/validating", - "version": "5.0.0", - "source": { - "type": "git", - "url": "https://github.com/dwightwatson/validating.git", - "reference": "861861a7c916d3e8bc4863d18b716cb0784a1a61" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dwightwatson/validating/zipball/861861a7c916d3e8bc4863d18b716cb0784a1a61", - "reference": "861861a7c916d3e8bc4863d18b716cb0784a1a61", - "shasum": "" - }, - "require": { - "illuminate/contracts": "~7.0", - "illuminate/database": "~7.0", - "illuminate/events": "~7.0", - "illuminate/support": "~7.0", - "illuminate/validation": "~7.0", - "php": "^7.2.5" - }, - "require-dev": { - "mockery/mockery": "^1.3.1", - "phpunit/phpunit": "~8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Watson\\Validating\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dwight Watson", - "email": "dwight@studiousapp.com" - } - ], - "description": "Eloquent model validating trait.", - "keywords": [ - "eloquent", - "laravel", - "validation" - ], - "time": "2020-03-06T10:53:12+00:00" + "time": "2020-06-15T23:49:30+00:00" } ], "packages-dev": [ @@ -6881,16 +6392,16 @@ }, { "name": "composer/composer", - "version": "1.10.7", + "version": "1.10.8", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "956608ea4f7de9e58c53dfb019d85ae62b193c39" + "reference": "56e0e094478f30935e9128552188355fa9712291" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/956608ea4f7de9e58c53dfb019d85ae62b193c39", - "reference": "956608ea4f7de9e58c53dfb019d85ae62b193c39", + "url": "https://api.github.com/repos/composer/composer/zipball/56e0e094478f30935e9128552188355fa9712291", + "reference": "56e0e094478f30935e9128552188355fa9712291", "shasum": "" }, "require": { @@ -6909,12 +6420,11 @@ "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0" }, "conflict": { - "symfony/console": "2.8.38", - "symfony/phpunit-bridge": "3.4.40" + "symfony/console": "2.8.38" }, "require-dev": { "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^3.4" + "symfony/phpunit-bridge": "^4.2" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -6958,7 +6468,7 @@ "dependency", "package" ], - "time": "2020-06-03T08:03:56+00:00" + "time": "2020-06-24T19:23:30+00:00" }, { "name": "composer/semver", @@ -7083,16 +6593,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", "shasum": "" }, "require": { @@ -7123,7 +6633,7 @@ "Xdebug", "performance" ], - "time": "2020-03-01T12:26:26+00:00" + "time": "2020-06-04T11:16:35+00:00" }, { "name": "doctrine/instantiator", @@ -7237,16 +6747,16 @@ }, { "name": "facade/ignition", - "version": "2.0.6", + "version": "2.0.7", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "5261c488a1e8a7c3ebdf6a4037c34f5ddeb33922" + "reference": "e6bedc1e74507d584fbcb041ebe0f7f215109cf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/5261c488a1e8a7c3ebdf6a4037c34f5ddeb33922", - "reference": "5261c488a1e8a7c3ebdf6a4037c34f5ddeb33922", + "url": "https://api.github.com/repos/facade/ignition/zipball/e6bedc1e74507d584fbcb041ebe0f7f215109cf2", + "reference": "e6bedc1e74507d584fbcb041ebe0f7f215109cf2", "shasum": "" }, "require": { @@ -7304,7 +6814,7 @@ "laravel", "page" ], - "time": "2020-06-01T09:04:48+00:00" + "time": "2020-06-08T09:14:08+00:00" }, { "name": "facade/ignition-contracts", @@ -7352,16 +6862,16 @@ }, { "name": "filp/whoops", - "version": "2.7.2", + "version": "2.7.3", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a" + "reference": "5d5fe9bb3d656b514d455645b3addc5f7ba7714d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a", - "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a", + "url": "https://api.github.com/repos/filp/whoops/zipball/5d5fe9bb3d656b514d455645b3addc5f7ba7714d", + "reference": "5d5fe9bb3d656b514d455645b3addc5f7ba7714d", "shasum": "" }, "require": { @@ -7409,7 +6919,7 @@ "throwable", "whoops" ], - "time": "2020-05-05T12:28:07+00:00" + "time": "2020-06-14T09:00:00+00:00" }, { "name": "fzaninotto/faker", @@ -7967,16 +7477,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + "reference": "30441f2752e493c639526b215ed81d54f369d693" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/30441f2752e493c639526b215ed81d54f369d693", + "reference": "30441f2752e493c639526b215ed81d54f369d693", "shasum": "" }, "require": { @@ -7990,7 +7500,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -8009,7 +7519,7 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-02-18T18:59:58+00:00" + "time": "2020-06-19T20:22:09+00:00" }, { "name": "phpspec/prophecy", @@ -8328,16 +7838,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.5", + "version": "8.5.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7" + "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/63dda3b212a0025d380a745f91bdb4d8c985adb7", - "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/34c18baa6a44f1d1fbf0338907139e9dce95b997", + "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997", "shasum": "" }, "require": { @@ -8407,7 +7917,7 @@ "testing", "xunit" ], - "time": "2020-05-22T13:51:52+00:00" + "time": "2020-06-22T07:06:58+00:00" }, { "name": "scrivo/highlight.php", @@ -9188,7 +8698,7 @@ }, { "name": "symfony/filesystem", - "version": "v5.1.0", + "version": "v5.1.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -9278,16 +8788,16 @@ }, { "name": "webmozart/assert", - "version": "1.8.0", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" + "reference": "9dc4f203e36f2b486149058bade43c851dd97451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "url": "https://api.github.com/repos/webmozart/assert/zipball/9dc4f203e36f2b486149058bade43c851dd97451", + "reference": "9dc4f203e36f2b486149058bade43c851dd97451", "shasum": "" }, "require": { @@ -9295,6 +8805,7 @@ "symfony/polyfill-ctype": "^1.8" }, "conflict": { + "phpstan/phpstan": "<0.12.20", "vimeo/psalm": "<3.9.1" }, "require-dev": { @@ -9322,14 +8833,12 @@ "check", "validate" ], - "time": "2020-04-18T12:12:48+00:00" + "time": "2020-06-16T10:16:42+00:00" } ], "aliases": [], "minimum-stability": "dev", - "stability-flags": { - "rinvex/laravel-subscriptions": 20 - }, + "stability-flags": [], "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/database/factories/SettingFactory.php b/database/factories/SettingFactory.php new file mode 100644 index 00000000..c18aeead --- /dev/null +++ b/database/factories/SettingFactory.php @@ -0,0 +1,12 @@ +define(Setting::class, function (Faker $faker) { + return [ + // + ]; +}); diff --git a/database/migrations/2020_06_25_142635_create_settings_table.php b/database/migrations/2020_06_25_142635_create_settings_table.php new file mode 100644 index 00000000..e9b8d2a1 --- /dev/null +++ b/database/migrations/2020_06_25_142635_create_settings_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + $table->string('name')->unique(); + $table->longText('value')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('settings'); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 25402e30..7f750aa2 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -14,5 +14,6 @@ class DatabaseSeeder extends Seeder $this->call(PaymentGatewaysSeeder::class); $this->call(PlansSeeder::class); $this->call(InvoicesSeeder::class); + $this->call(SettingSeeder::class); } } diff --git a/database/seeds/PaymentGatewaysSeeder.php b/database/seeds/PaymentGatewaysSeeder.php index b4219495..c753c2c6 100644 --- a/database/seeds/PaymentGatewaysSeeder.php +++ b/database/seeds/PaymentGatewaysSeeder.php @@ -17,12 +17,5 @@ class PaymentGatewaysSeeder extends Seeder 'name' => 'Stripe', 'slug' => 'stripe', ]); - - // Create PayPal default record - DB::table('payment_gateways')->insert([ - 'logo' => '/assets/images/paypal-logo-thumbnail.png', - 'name' => 'Paypal', - 'slug' => 'paypal', - ]); } } diff --git a/database/seeds/SettingSeeder.php b/database/seeds/SettingSeeder.php new file mode 100644 index 00000000..e459f58e --- /dev/null +++ b/database/seeds/SettingSeeder.php @@ -0,0 +1,57 @@ + 'billing_phone_number'], + ['name' => 'billing_postal_code'], + ['name' => 'billing_vat_number'], + ['name' => 'billing_address'], + ['name' => 'billing_country'], + ['name' => 'billing_state'], + ['name' => 'billing_city'], + ['name' => 'billing_name'], + + // General Settings + ['name' => 'app_title'], + ['name' => 'app_description'], + + ['name' => 'app_logo'], + ['name' => 'app_favicon'], + + ['name' => 'google_analytics'], + ['name' => 'contact_email'], + + // Users + ['name' => 'registration', 'value' => 1], + ['name' => 'storage_limitation', 'value' => 1], + ['name' => 'storage_default', 'value' => 1], + + // Mail settings + ['name' => 'mail_driver'], + ['name' => 'mail_host'], + ['name' => 'mail_port'], + ['name' => 'mail_username'], + ['name' => 'mail_password'], + ['name' => 'mail_encryption'], + ]); + + $columns->each(function ($col) { + DB::table('settings')->insert([ + 'name' => $col['name'], + 'value' => isset($col['value']) ? $col['value'] : null, + ]); + }); + } +} diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 84307b4c..984aac44 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,14 @@ { "/js/main.js": "/js/main.js", - "/css/app.css": "/css/app.css" + "/css/app.css": "/css/app.css", + "/js/main.9ba0fd35b08aa42bd5d6.hot-update.js": "/js/main.9ba0fd35b08aa42bd5d6.hot-update.js", + "/js/main.94e18393347a6c30c466.hot-update.js": "/js/main.94e18393347a6c30c466.hot-update.js", + "/js/main.1a0cdd9eb7456b334686.hot-update.js": "/js/main.1a0cdd9eb7456b334686.hot-update.js", + "/js/main.9cfbf58cb9183626fbd9.hot-update.js": "/js/main.9cfbf58cb9183626fbd9.hot-update.js", + "/js/main.947538899b32463304d1.hot-update.js": "/js/main.947538899b32463304d1.hot-update.js", + "/js/main.388bcd39ccfc575df3dc.hot-update.js": "/js/main.388bcd39ccfc575df3dc.hot-update.js", + "/js/main.ec4459f3993385a8ffb0.hot-update.js": "/js/main.ec4459f3993385a8ffb0.hot-update.js", + "/js/main.4aa483cf186b82e6f133.hot-update.js": "/js/main.4aa483cf186b82e6f133.hot-update.js", + "/js/main.0b62890fe58f6191cff2.hot-update.js": "/js/main.0b62890fe58f6191cff2.hot-update.js", + "/js/main.8f85a1128dbc59267b4d.hot-update.js": "/js/main.8f85a1128dbc59267b4d.hot-update.js" } diff --git a/resources/js/App.vue b/resources/js/App.vue index df554e10..249c24d8 100644 --- a/resources/js/App.vue +++ b/resources/js/App.vue @@ -74,7 +74,7 @@ 'isLogged', 'isGuest' ]), layout() { - if (includes(['VerifyByPassword', 'SharedPage', 'NotFoundShared', 'SignIn', 'SignUp', 'ForgottenPassword', 'CreateNewPassword'], this.$route.name)) { + if (includes(['PurchaseCode', 'StripeCredentials', 'AppSetup', 'EnvironmentSetup', 'BillingsDetail', 'SubscriptionPlans', 'Database', 'VerifyByPassword', 'SharedPage', 'NotFoundShared', 'SignIn', 'SignUp', 'ForgottenPassword', 'CreateNewPassword'], this.$route.name)) { return 'unauthorized' } diff --git a/resources/js/components/FilesView/Spinner.vue b/resources/js/components/FilesView/Spinner.vue index b22343e4..b628c73f 100644 --- a/resources/js/components/FilesView/Spinner.vue +++ b/resources/js/components/FilesView/Spinner.vue @@ -36,11 +36,9 @@ @keyframes loading-bar-spinner { 0% { transform: rotate(0deg); - transform: rotate(0deg); } 100% { transform: rotate(360deg); - transform: rotate(360deg); } } diff --git a/resources/js/components/Others/Forms/FormLabel.vue b/resources/js/components/Others/Forms/FormLabel.vue new file mode 100644 index 00000000..d32951f4 --- /dev/null +++ b/resources/js/components/Others/Forms/FormLabel.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/resources/js/components/Others/Forms/InfoBox.vue b/resources/js/components/Others/Forms/InfoBox.vue new file mode 100644 index 00000000..0301a8f1 --- /dev/null +++ b/resources/js/components/Others/Forms/InfoBox.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/resources/js/components/Others/Forms/SelectInput.vue b/resources/js/components/Others/Forms/SelectInput.vue index e8691143..c0fef61a 100644 --- a/resources/js/components/Others/Forms/SelectInput.vue +++ b/resources/js/components/Others/Forms/SelectInput.vue @@ -88,7 +88,8 @@ } .input-options { - background: $light_mode_input_background; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12); + background: white; border-radius: 8px; position: absolute; overflow: hidden; @@ -96,16 +97,18 @@ left: 0; right: 0; z-index: 9; + max-height: 295px; + overflow-y: auto; .option-item { padding: 13px 20px; display: block; - border-bottom: 1px solid #EBEBEB; + //border-bottom: 1px solid #EBEBEB; cursor: pointer; &:hover { color: $theme; - background: rgba($theme, .1); + background: $light_background; } &:last-child { @@ -117,7 +120,8 @@ .input-area { border: 1px solid transparent; justify-content: space-between; - background: $light_mode_input_background; + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.12); + //background: $light_mode_input_background; @include transition(150ms); align-items: center; border-radius: 8px; diff --git a/resources/js/router.js b/resources/js/router.js index 405e40a9..1f5790d4 100644 --- a/resources/js/router.js +++ b/resources/js/router.js @@ -15,7 +15,7 @@ import Profile from './views/User/Settings' import Invoice from './views/User/Invoices' import Password from './views/User/Password' import Subscription from './views/User/Subscription' -import PaymentCards from './views/User/PaymentCards' +import PaymentMethods from './views/User/PaymentMethods' import Trash from './views/FilePages/Trash' import Files from './views/FilePages/Files' @@ -54,6 +54,16 @@ import UserPassword from './views/Admin/Users/UserTabs/UserPassword' import UserInvoices from './views/Admin/Users/UserTabs/UserInvoices' import UserSubscription from './views/Admin/Users/UserTabs/UserSubscription' +// Setup Wizard +import SetupWizard from './views/SetupWizard' +import Database from './views/SetupWizard/Database' +import AppSetup from './views/SetupWizard/AppSetup' +import PurchaseCode from './views/SetupWizard/PurchaseCode' +import BillingsDetail from './views/SetupWizard/BillingsDetail' +import EnvironmentSetup from './views/SetupWizard/EnvironmentSetup' +import StripeCredentials from './views/SetupWizard/StripeCredentials' +import SubscriptionPlans from './views/SetupWizard/SubscriptionPlans' + Vue.use(Router) const routesAdmin = [ @@ -401,9 +411,9 @@ const routesUser = [ }, }, { - name: 'PaymentCards', + name: 'PaymentMethods', path: '/settings/payment-cards', - component: PaymentCards, + component: PaymentMethods, meta: { requiresAuth: true, title: 'Payment Cards' @@ -430,11 +440,83 @@ const routesUser = [ }, }, ] +const routesMaintenance = [ + { + name: 'SetupWizard', + path: '/setup-wizard', + component: SetupWizard, + meta: { + requiresAuth: false + }, + children: [ + { + name: 'PurchaseCode', + path: '/setup-wizard/purchase-code', + component: PurchaseCode, + meta: { + requiresAuth: false, + }, + }, + { + name: 'Database', + path: '/setup-wizard/database', + component: Database, + meta: { + requiresAuth: false, + }, + }, + { + name: 'StripeCredentials', + path: '/setup-wizard/stripe-credentials', + component: StripeCredentials, + meta: { + requiresAuth: false, + }, + }, + { + name: 'BillingsDetail', + path: '/setup-wizard/billings', + component: BillingsDetail, + meta: { + requiresAuth: false, + }, + }, + { + name: 'SubscriptionPlans', + path: '/setup-wizard/subscription-plans', + component: SubscriptionPlans, + meta: { + requiresAuth: false, + }, + }, + { + name: 'EnvironmentSetup', + path: '/setup-wizard/environment-setup', + component: EnvironmentSetup, + meta: { + requiresAuth: false, + }, + }, + { + name: 'AppSetup', + path: '/setup-wizard/app-setup', + component: AppSetup, + meta: { + requiresAuth: false, + }, + }, + ] + }, +] const router = new Router({ mode: 'history', routes: [ - ...routesAdmin, ...routesShared, ...routesAuth, ...routesUser + ...routesMaintenance, + ...routesShared, + ...routesAdmin, + ...routesAuth, + ...routesUser, ], scrollBehavior(to, from, savedPosition) { if (savedPosition) { @@ -452,10 +534,10 @@ router.beforeEach((to, from, next) => { // if not, redirect to login page. //if ( ! store.getters.isLogged) { - if ( false ) { + if (false) { next({ name: 'SignIn', - query: { redirect: to.fullPath } + query: {redirect: to.fullPath} }) } else { next() diff --git a/resources/js/views/Profile.vue b/resources/js/views/Profile.vue index c30ff5c0..b070338f 100644 --- a/resources/js/views/Profile.vue +++ b/resources/js/views/Profile.vue @@ -63,7 +63,7 @@ - +
@@ -144,7 +144,7 @@ return this.user.data.attributes.subscription ? 'green' : 'purple' }, canShowSubscriptionSettings() { - return this.config.isSaaS && this.user.data.attributes.stripe_customer + return this.config.isSaaS } }, data() { diff --git a/resources/js/views/SetupWIzard/AppSetup.vue b/resources/js/views/SetupWIzard/AppSetup.vue new file mode 100644 index 00000000..9f79fff6 --- /dev/null +++ b/resources/js/views/SetupWIzard/AppSetup.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/BillingsDetail.vue b/resources/js/views/SetupWIzard/BillingsDetail.vue new file mode 100644 index 00000000..c78923d4 --- /dev/null +++ b/resources/js/views/SetupWIzard/BillingsDetail.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/Database.vue b/resources/js/views/SetupWIzard/Database.vue new file mode 100644 index 00000000..43af7f35 --- /dev/null +++ b/resources/js/views/SetupWIzard/Database.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/EnvironmentSetup.vue b/resources/js/views/SetupWIzard/EnvironmentSetup.vue new file mode 100644 index 00000000..bf3a1f18 --- /dev/null +++ b/resources/js/views/SetupWIzard/EnvironmentSetup.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/PurchaseCode.vue b/resources/js/views/SetupWIzard/PurchaseCode.vue new file mode 100644 index 00000000..ffa069c8 --- /dev/null +++ b/resources/js/views/SetupWIzard/PurchaseCode.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/StripeCredentials.vue b/resources/js/views/SetupWIzard/StripeCredentials.vue new file mode 100644 index 00000000..7f97de1f --- /dev/null +++ b/resources/js/views/SetupWIzard/StripeCredentials.vue @@ -0,0 +1,670 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/SubscriptionPlans.vue b/resources/js/views/SetupWIzard/SubscriptionPlans.vue new file mode 100644 index 00000000..2dafc850 --- /dev/null +++ b/resources/js/views/SetupWIzard/SubscriptionPlans.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/resources/js/views/SetupWizard.vue b/resources/js/views/SetupWizard.vue new file mode 100644 index 00000000..3b56bb5b --- /dev/null +++ b/resources/js/views/SetupWizard.vue @@ -0,0 +1,12 @@ + + + diff --git a/resources/js/views/Upgrade/UpgradeBilling.vue b/resources/js/views/Upgrade/UpgradeBilling.vue index 3b39c1f3..1a908284 100644 --- a/resources/js/views/Upgrade/UpgradeBilling.vue +++ b/resources/js/views/Upgrade/UpgradeBilling.vue @@ -20,7 +20,7 @@ Payment Card: -
+

For test your payment please use 4242 4242 4242 4242 as a card number, 11/22 as the expiration date and 123 as CVC number and ZIP 12345. @@ -34,20 +34,20 @@

-
+
+ :src="$getCreditCardBrand(defaultPaymentMethod.data.attributes.brand)" + :alt="defaultPaymentMethod.data.attributes.brand">
- •••• {{ defaultPaymentCard.data.attributes.last4 }} + •••• {{ defaultPaymentMethod.data.attributes.last4 }}
Default
- {{ defaultPaymentCard.data.attributes.exp_month }} / {{ defaultPaymentCard.data.attributes.exp_year }} + {{ defaultPaymentMethod.data.attributes.exp_month }} / {{ defaultPaymentMethod.data.attributes.exp_year }}
@@ -55,10 +55,10 @@
Also you can - change your + change your default payment method - or + or pay by new credit card.
@@ -69,7 +69,7 @@ Please pay by another payment card or - Change your default payment + Change your default payment method
@@ -269,8 +269,8 @@ }, isLoading: true, isSubmitted: false, - paymentCards: undefined, - defaultPaymentCard: undefined, + PaymentMethods: undefined, + defaultPaymentMethod: undefined, errorMessage: undefined, isError: false, @@ -287,7 +287,7 @@ }, successOrder() { // Update user data - //this.$store.dispatch('getAppData') + this.$store.dispatch('getAppData') // End loading this.isSubmitted = false @@ -299,7 +299,7 @@ }) // Go to User page - //this.$router.push({name: 'Subscription'}) + this.$router.push({name: 'Subscription'}) }, errorOrder(error) { @@ -325,7 +325,7 @@ this.isSubmitted = true // If user don't have credit card, register new - if (!this.defaultPaymentCard || this.payByNewCard) { + if (!this.defaultPaymentMethod || this.payByNewCard) { console.log('Payment by new card'); @@ -365,7 +365,7 @@ } // if user has credit card - if (this.defaultPaymentCard && !this.payByNewCard) { + if (this.defaultPaymentMethod && !this.payByNewCard) { console.log('Payment by default card'); @@ -399,8 +399,8 @@ axios.get('/api/user/payments') .then(response => { - this.defaultPaymentCard = response.data.default - this.paymentCards = response.data.others + this.defaultPaymentMethod = response.data.default + this.PaymentMethods = response.data.others this.isLoading = false }) diff --git a/resources/js/views/User/PaymentCards.vue b/resources/js/views/User/PaymentMethods.vue similarity index 90% rename from resources/js/views/User/PaymentCards.vue rename to resources/js/views/User/PaymentMethods.vue index c89725bd..ac507f38 100644 --- a/resources/js/views/User/PaymentCards.vue +++ b/resources/js/views/User/PaymentMethods.vue @@ -1,7 +1,7 @@