mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-04 21:25:58 +00:00
Merge branch 'master' into api
# Conflicts: # .env.testing # public/mix-manifest.json # src/Domain/RemoteUpload/Controllers/UploadFilesRemotelyForUploadRequestController.php
This commit is contained in:
@@ -11,12 +11,13 @@
|
||||
- [Nginx Configuration](#nginx-configuration)
|
||||
- [Apache Configuration](#apache-configuration)
|
||||
- [Migrating to Another Domain](#migrating-to-another-domain)
|
||||
- [Broadcasting](#broadcasting)
|
||||
- [About Broadcasting](#about-broadcasting)
|
||||
- [Install Broadcast Server](#install-broadcast-server)
|
||||
- [Social Authentication](#social-authentication)
|
||||
- [Subscription Configuration](#subscription-configuration)
|
||||
- [Configuring Production/Testing Environment](#configuring-productiontesting-environment)
|
||||
- [Upgrading From Testing Environment to the Production Mode](#upgrading-from-testing-environment-to-the-production-mode)
|
||||
- [Broadcasting](#broadcasting)
|
||||
- [About Broadcasting](#about-broadcasting)
|
||||
- [Install Broadcast Server](#install-broadcast-server)
|
||||
- [Developers](#developers)
|
||||
- [Running Environment On Your Localhost](#running-environment-on-your-localhost)
|
||||
- [Express Installation](#express-installation)
|
||||
@@ -185,6 +186,29 @@ If you move your VueFileManager application into another domain or subdomain, yo
|
||||
3. Find `SANCTUM_STATEFUL_DOMAINS` variable and write your new domain location without http protocol.
|
||||
4. Remove your cached config file which is located `/bootstrap/cache/config.php`.
|
||||
|
||||
## Social Authentication
|
||||
If you'd like to allow your users to authenticate via their social accounts, the setup is pretty convenient. Just don't forget to set up redirect url and required permissions.
|
||||
|
||||
#### Required permissions:
|
||||
- Name and profile picture
|
||||
- Email
|
||||
|
||||
# Subscription Configuration
|
||||
|
||||
## Configuring Production/Testing Environment
|
||||
To set up your subscription, please follow these steps below.
|
||||
1. If you didn't set up your subscription type in Setup Wizard, go to the `Admin / Settings / Application` and find subscription widget. Next set value as `Fixed`.
|
||||
2. Go to the `Admin / Billings` and fill the inputs with your billing information.
|
||||
3. Go to the `Admin / Payments` and turn on the switch `Allow Subscription Payments`.
|
||||
4. Set up credentials for all payment gateway you want. If you set production mode, make sure you fill your credentials with production keys, and vice versa. If needed, don't forget to turn on `live mode` for PayPal.
|
||||
5. Set up your webhooks, you can find your webhook url in payment gateway widget.
|
||||
6. Go to the `Admin / Plans` and create your first plan. Make sure all payment gateways support the currency you want, especially for Paystack, it supports only `GHS, NGN, USD and ZAR`.
|
||||
|
||||
## Upgrading From Testing Environment to the Production Mode
|
||||
1. Go to the `Admin / Payments` and set up credentials for all payment gateway you want with production keys type. Don't forget to turn on `live mode` for PayPal.
|
||||
2. Go to the `Admin / Plans` and delete all your previously created plans. They will be archived.
|
||||
3. Create new production plans you want offer.
|
||||
|
||||
# Broadcasting
|
||||
### About Broadcasting
|
||||
Broadcasting is responsible for real time app experience. If broadcasting is set, you will be able to get just in time updates in your app.
|
||||
@@ -292,23 +316,6 @@ Find Broadcasting form and select `VueFileManager` as broadcasting driver. Set y
|
||||
|
||||
That's all, you are running your own Broadcast server.
|
||||
|
||||
|
||||
# Subscription Configuration
|
||||
|
||||
## Configuring Production/Testing Environment
|
||||
To set up your subscription, please follow these steps below.
|
||||
1. If you didn't set up your subscription type in Setup Wizard, go to the `Admin / Settings / Application` and find subscription widget. Next set value as `Fixed`.
|
||||
2. Go to the `Admin / Billings` and fill the inputs with your billing information.
|
||||
3. Go to the `Admin / Payments` and turn on the switch `Allow Subscription Payments`.
|
||||
4. Set up credentials for all payment gateway you want. If you set production mode, make sure you fill your credentials with production keys, and vice versa. If needed, don't forget to turn on `live mode` for PayPal.
|
||||
5. Set up your webhooks, you can find your webhook url in payment gateway widget.
|
||||
6. Go to the `Admin / Plans` and create your first plan. Make sure all payment gateways support the currency you want, especially for Paystack, it supports only `GHS, NGN, USD and ZAR`.
|
||||
|
||||
## Upgrading From Testing Environment to the Production Mode
|
||||
1. Go to the `Admin / Payments` and set up credentials for all payment gateway you want with production keys type. Don't forget to turn on `live mode` for PayPal.
|
||||
2. Go to the `Admin / Plans` and delete all your previously created plans. They will be archived.
|
||||
3. Create new production plans you want offer.
|
||||
|
||||
# Developers
|
||||
## Running Environment On Your Localhost
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
## Version 2.1.3
|
||||
#### Release date: 10. May 2022
|
||||
- Ability to manually synchronize plans in fixed subscription type
|
||||
- Improved sanitization for .env values to prevent crash your app
|
||||
- Improved reCaptcha validation errors
|
||||
- Fixed issue when upload doesn't start after you drag the file into empty view
|
||||
- Fixed issue when homepage flash to sign in screen after the homepage was disabled in admin panel
|
||||
- Fixed trash navigator issue
|
||||
- Fixed issue when you create plan with 0 team members amount
|
||||
|
||||
## Version 2.1.2
|
||||
#### Release date: 8. May 2022
|
||||
- Fixed issue with chunk uploads (Critical issue affected since 2.1.1)
|
||||
- Fixed issue with creating plan with unlimited team members
|
||||
|
||||
## Version 2.1.1
|
||||
#### Release date: 29. April 2022
|
||||
- Fixed issue with reading image upload
|
||||
|
||||
## Version 2.1.0
|
||||
#### Release date: 25. April 2022
|
||||
- New remote upload function
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@
|
||||
"laravel/ui": "^3.4.2",
|
||||
"league/flysystem-aws-s3-v3": "^3.0.9",
|
||||
"league/flysystem-ftp": "^3.0",
|
||||
"makingcg/subscription": "^1.0.5",
|
||||
"makingcg/subscription": "^1.0.6",
|
||||
"matthewbdaly/laravel-azure-storage": "^2.0",
|
||||
"pusher/pusher-php-server": "^7.0",
|
||||
"spatie/data-transfer-object": "^3.7.3",
|
||||
|
||||
Generated
+172
-172
@@ -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": "da78385bb0354b117852966eab7e288c",
|
||||
"content-hash": "9ec812c4e7c97cf3548f9130c95f644b",
|
||||
"packages": [
|
||||
{
|
||||
"name": "amphp/amp",
|
||||
@@ -280,16 +280,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.220.0",
|
||||
"version": "3.222.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "8beb098a2224742b2756e3b40a07593b1e6ff967"
|
||||
"reference": "03d35eef5c509798d2c08587cfd9a7c33afe2260"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/8beb098a2224742b2756e3b40a07593b1e6ff967",
|
||||
"reference": "8beb098a2224742b2756e3b40a07593b1e6ff967",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/03d35eef5c509798d2c08587cfd9a7c33afe2260",
|
||||
"reference": "03d35eef5c509798d2c08587cfd9a7c33afe2260",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -365,9 +365,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.220.0"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.222.7"
|
||||
},
|
||||
"time": "2022-04-19T18:17:15+00:00"
|
||||
"time": "2022-05-06T18:16:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
@@ -1413,21 +1413,21 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "2.13.8",
|
||||
"version": "2.13.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b"
|
||||
"reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/dc9b3c3c8592c935a6e590441f9abc0f9eba335b",
|
||||
"reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8",
|
||||
"reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/cache": "^1.0|^2.0",
|
||||
"doctrine/deprecations": "^0.5.3",
|
||||
"doctrine/deprecations": "^0.5.3|^1",
|
||||
"doctrine/event-manager": "^1.0",
|
||||
"ext-pdo": "*",
|
||||
"php": "^7.1 || ^8"
|
||||
@@ -1502,7 +1502,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/2.13.8"
|
||||
"source": "https://github.com/doctrine/dbal/tree/2.13.9"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1518,29 +1518,29 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-09T15:25:46+00:00"
|
||||
"time": "2022-05-02T20:28:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
"version": "v0.5.3",
|
||||
"version": "v1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/deprecations.git",
|
||||
"reference": "9504165960a1f83cc1480e2be1dd0a0478561314"
|
||||
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314",
|
||||
"reference": "9504165960a1f83cc1480e2be1dd0a0478561314",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
|
||||
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0|^7.0|^8.0",
|
||||
"phpunit/phpunit": "^7.0|^8.0|^9.0",
|
||||
"psr/log": "^1.0"
|
||||
"doctrine/coding-standard": "^9",
|
||||
"phpunit/phpunit": "^7.5|^8.5|^9.5",
|
||||
"psr/log": "^1|^2|^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
@@ -1559,9 +1559,9 @@
|
||||
"homepage": "https://www.doctrine-project.org/",
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||
"source": "https://github.com/doctrine/deprecations/tree/v0.5.3"
|
||||
"source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
|
||||
},
|
||||
"time": "2021-03-21T12:59:47+00:00"
|
||||
"time": "2022-05-02T15:47:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/event-manager",
|
||||
@@ -3290,16 +3290,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v9.9.0",
|
||||
"version": "v9.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "4d5a07640891b772188d7737348886a0222737d8"
|
||||
"reference": "598a8c84d452a66b90a3213b1d67189cc726c728"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/4d5a07640891b772188d7737348886a0222737d8",
|
||||
"reference": "4d5a07640891b772188d7737348886a0222737d8",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/598a8c84d452a66b90a3213b1d67189cc726c728",
|
||||
"reference": "598a8c84d452a66b90a3213b1d67189cc726c728",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3465,7 +3465,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2022-04-19T15:01:23+00:00"
|
||||
"time": "2022-05-03T14:47:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
@@ -3534,16 +3534,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/scout",
|
||||
"version": "v9.4.7",
|
||||
"version": "v9.4.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/scout.git",
|
||||
"reference": "46114761e835ae77e6b6b26abceb5ae63859ba98"
|
||||
"reference": "61ce79ce87fbebb28dcc0dd8f95776aa0dec00c8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/scout/zipball/46114761e835ae77e6b6b26abceb5ae63859ba98",
|
||||
"reference": "46114761e835ae77e6b6b26abceb5ae63859ba98",
|
||||
"url": "https://api.github.com/repos/laravel/scout/zipball/61ce79ce87fbebb28dcc0dd8f95776aa0dec00c8",
|
||||
"reference": "61ce79ce87fbebb28dcc0dd8f95776aa0dec00c8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3602,7 +3602,7 @@
|
||||
"issues": "https://github.com/laravel/scout/issues",
|
||||
"source": "https://github.com/laravel/scout"
|
||||
},
|
||||
"time": "2022-04-06T09:38:17+00:00"
|
||||
"time": "2022-05-05T14:24:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
@@ -4051,16 +4051,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem",
|
||||
"version": "3.0.17",
|
||||
"version": "3.0.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem.git",
|
||||
"reference": "29eb78cac0be0c22237c5e0f6f98234d97037d79"
|
||||
"reference": "670df21225d68d165a8df38587ac3f41caf608f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/29eb78cac0be0c22237c5e0f6f98234d97037d79",
|
||||
"reference": "29eb78cac0be0c22237c5e0f6f98234d97037d79",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/670df21225d68d165a8df38587ac3f41caf608f8",
|
||||
"reference": "670df21225d68d165a8df38587ac3f41caf608f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4121,7 +4121,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.0.17"
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.0.19"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-14T14:57:13+00:00"
|
||||
"time": "2022-05-03T21:19:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-aws-s3-v3",
|
||||
@@ -4238,16 +4238,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-ftp",
|
||||
"version": "3.0.9",
|
||||
"version": "3.0.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem-ftp.git",
|
||||
"reference": "38d829f6bbb1a5368e9bf9117273df6aaaa51938"
|
||||
"reference": "aa86ee4643ae2093dac68d2821699ce686cd5689"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-ftp/zipball/38d829f6bbb1a5368e9bf9117273df6aaaa51938",
|
||||
"reference": "38d829f6bbb1a5368e9bf9117273df6aaaa51938",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-ftp/zipball/aa86ee4643ae2093dac68d2821699ce686cd5689",
|
||||
"reference": "aa86ee4643ae2093dac68d2821699ce686cd5689",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4282,7 +4282,7 @@
|
||||
"ftpd"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/thephpleague/flysystem-ftp/tree/3.0.9"
|
||||
"source": "https://github.com/thephpleague/flysystem-ftp/tree/3.0.19"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4298,7 +4298,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-22T07:15:18+00:00"
|
||||
"time": "2022-05-03T21:11:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/mime-type-detection",
|
||||
@@ -4505,16 +4505,16 @@
|
||||
},
|
||||
{
|
||||
"name": "makingcg/subscription",
|
||||
"version": "1.0.5",
|
||||
"version": "1.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:VueFileManager/subscription.git",
|
||||
"reference": "9e9e137c7e0a99cc40a46a8da64d479041a0105e"
|
||||
"reference": "73ef544e3c8f9a27904c4aaa53e39dccca5a8402"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/VueFileManager/subscription/zipball/9e9e137c7e0a99cc40a46a8da64d479041a0105e",
|
||||
"reference": "9e9e137c7e0a99cc40a46a8da64d479041a0105e",
|
||||
"url": "https://api.github.com/repos/VueFileManager/subscription/zipball/73ef544e3c8f9a27904c4aaa53e39dccca5a8402",
|
||||
"reference": "73ef544e3c8f9a27904c4aaa53e39dccca5a8402",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4600,7 +4600,7 @@
|
||||
"subscription"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/VueFileManager/subscription/tree/1.0.5",
|
||||
"source": "https://github.com/VueFileManager/subscription/tree/1.0.6",
|
||||
"issues": "https://github.com/VueFileManager/subscription/issues"
|
||||
},
|
||||
"funding": [
|
||||
@@ -4609,7 +4609,7 @@
|
||||
"url": "https://github.com/VueFileManager"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-19T16:04:20+00:00"
|
||||
"time": "2022-05-09T07:44:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "matthewbdaly/laravel-azure-storage",
|
||||
@@ -5049,16 +5049,16 @@
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "2.57.0",
|
||||
"version": "2.58.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "4a54375c21eea4811dbd1149fe6b246517554e78"
|
||||
"reference": "97a34af22bde8d0ac20ab34b29d7bfe360902055"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4a54375c21eea4811dbd1149fe6b246517554e78",
|
||||
"reference": "4a54375c21eea4811dbd1149fe6b246517554e78",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/97a34af22bde8d0ac20ab34b29d7bfe360902055",
|
||||
"reference": "97a34af22bde8d0ac20ab34b29d7bfe360902055",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5076,7 +5076,8 @@
|
||||
"phpmd/phpmd": "^2.9",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^0.12.54 || ^1.0",
|
||||
"phpunit/phpunit": "^7.5.20 || ^8.5.14",
|
||||
"phpunit/php-file-iterator": "^2.0.5",
|
||||
"phpunit/phpunit": "^7.5.20 || ^8.5.23",
|
||||
"squizlabs/php_codesniffer": "^3.4"
|
||||
},
|
||||
"bin": [
|
||||
@@ -5141,7 +5142,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-13T18:13:33+00:00"
|
||||
"time": "2022-04-25T19:31:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "netresearch/jsonmapper",
|
||||
@@ -7002,16 +7003,16 @@
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.11.2",
|
||||
"version": "v0.11.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "7f7da640d68b9c9fec819caae7c744a213df6514"
|
||||
"reference": "05c544b339b112226ad14803e1e5b09a61957454"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/7f7da640d68b9c9fec819caae7c744a213df6514",
|
||||
"reference": "7f7da640d68b9c9fec819caae7c744a213df6514",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/05c544b339b112226ad14803e1e5b09a61957454",
|
||||
"reference": "05c544b339b112226ad14803e1e5b09a61957454",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7026,15 +7027,13 @@
|
||||
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.2",
|
||||
"hoa/console": "3.17.05.02"
|
||||
"bamarni/composer-bin-plugin": "^1.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
|
||||
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
|
||||
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
|
||||
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
|
||||
"hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
|
||||
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
|
||||
},
|
||||
"bin": [
|
||||
"bin/psysh"
|
||||
@@ -7074,9 +7073,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/bobthecow/psysh/issues",
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.2"
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.4"
|
||||
},
|
||||
"time": "2022-02-28T15:28:54+00:00"
|
||||
"time": "2022-05-06T12:49:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pusher/pusher-php-server",
|
||||
@@ -9461,16 +9460,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-query-builder",
|
||||
"version": "5.0.1",
|
||||
"version": "5.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-query-builder.git",
|
||||
"reference": "2970e54b04306a6de586d23ac3e0bab994ef645a"
|
||||
"reference": "fceb1e1814b117494a277b765050a3a10bfc162f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/2970e54b04306a6de586d23ac3e0bab994ef645a",
|
||||
"reference": "2970e54b04306a6de586d23ac3e0bab994ef645a",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/fceb1e1814b117494a277b765050a3a10bfc162f",
|
||||
"reference": "fceb1e1814b117494a277b765050a3a10bfc162f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9529,7 +9528,7 @@
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-18T07:44:25+00:00"
|
||||
"time": "2022-04-25T07:07:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-queueable-action",
|
||||
@@ -9944,16 +9943,16 @@
|
||||
},
|
||||
{
|
||||
"name": "stripe/stripe-php",
|
||||
"version": "v7.124.0",
|
||||
"version": "v7.128.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/stripe/stripe-php.git",
|
||||
"reference": "548e8ef08a86c6c621446082393dc6a1af51076c"
|
||||
"reference": "c704949c49b72985c76cc61063aa26fefbd2724e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/548e8ef08a86c6c621446082393dc6a1af51076c",
|
||||
"reference": "548e8ef08a86c6c621446082393dc6a1af51076c",
|
||||
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/c704949c49b72985c76cc61063aa26fefbd2724e",
|
||||
"reference": "c704949c49b72985c76cc61063aa26fefbd2724e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9998,22 +9997,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/stripe/stripe-php/issues",
|
||||
"source": "https://github.com/stripe/stripe-php/tree/v7.124.0"
|
||||
"source": "https://github.com/stripe/stripe-php/tree/v7.128.0"
|
||||
},
|
||||
"time": "2022-04-18T23:07:08+00:00"
|
||||
"time": "2022-05-05T17:18:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "70dcf7b2ca2ea08ad6ebcc475f104a024fb5632e"
|
||||
"reference": "0d00aa289215353aa8746a31d101f8e60826285c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/70dcf7b2ca2ea08ad6ebcc475f104a024fb5632e",
|
||||
"reference": "70dcf7b2ca2ea08ad6ebcc475f104a024fb5632e",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c",
|
||||
"reference": "0d00aa289215353aa8746a31d101f8e60826285c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10079,7 +10078,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/console/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10095,7 +10094,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-31T17:18:25+00:00"
|
||||
"time": "2022-04-20T15:01:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
@@ -10231,16 +10230,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/error-handler.git",
|
||||
"reference": "e600c54e5b30555eecea3ffe4314e58f832e78ee"
|
||||
"reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/e600c54e5b30555eecea3ffe4314e58f832e78ee",
|
||||
"reference": "e600c54e5b30555eecea3ffe4314e58f832e78ee",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/5e2795163acbd13b3cd46835c9f8f6c5d0a3a280",
|
||||
"reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10282,7 +10281,7 @@
|
||||
"description": "Provides tools to manage errors and ease debugging PHP code",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/error-handler/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/error-handler/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10298,7 +10297,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-18T16:21:55+00:00"
|
||||
"time": "2022-04-12T16:11:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
@@ -10527,16 +10526,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v6.0.3",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "8661b74dbabc23223f38c9b99d3f8ade71170430"
|
||||
"reference": "af7edab28d17caecd1f40a9219fc646ae751c21f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/8661b74dbabc23223f38c9b99d3f8ade71170430",
|
||||
"reference": "8661b74dbabc23223f38c9b99d3f8ade71170430",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/af7edab28d17caecd1f40a9219fc646ae751c21f",
|
||||
"reference": "af7edab28d17caecd1f40a9219fc646ae751c21f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10568,7 +10567,7 @@
|
||||
"description": "Finds files and directories via an intuitive fluent interface",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/finder/tree/v6.0.3"
|
||||
"source": "https://github.com/symfony/finder/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10584,20 +10583,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-26T17:23:29+00:00"
|
||||
"time": "2022-04-15T08:07:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-client.git",
|
||||
"reference": "a7930c47248b9b57e9d0b8da100ffc1e031536dc"
|
||||
"reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/a7930c47248b9b57e9d0b8da100ffc1e031536dc",
|
||||
"reference": "a7930c47248b9b57e9d0b8da100ffc1e031536dc",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/d347895193283e08b4c3ebf2f2974a1df3e1f670",
|
||||
"reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10652,7 +10651,7 @@
|
||||
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-client/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/http-client/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10668,7 +10667,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-01T12:27:43+00:00"
|
||||
"time": "2022-04-12T16:11:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client-contracts",
|
||||
@@ -10750,16 +10749,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "c816b26f03b6902dba79b352c84a17f53d815f0d"
|
||||
"reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/c816b26f03b6902dba79b352c84a17f53d815f0d",
|
||||
"reference": "c816b26f03b6902dba79b352c84a17f53d815f0d",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/c9c86b02d7ef6f44f3154acc7de42831518afe7c",
|
||||
"reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10802,7 +10801,7 @@
|
||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10818,20 +10817,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-24T14:13:59+00:00"
|
||||
"time": "2022-04-22T08:18:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "9c03dab07a6aa336ffaadc15352b1d14f4ce01f5"
|
||||
"reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/9c03dab07a6aa336ffaadc15352b1d14f4ce01f5",
|
||||
"reference": "9c03dab07a6aa336ffaadc15352b1d14f4ce01f5",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/7aaf1cdc9cc2ad47e926f624efcb679883a39ca7",
|
||||
"reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10911,7 +10910,7 @@
|
||||
"description": "Provides a structured process for converting a Request into a Response",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10927,20 +10926,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-02T06:35:11+00:00"
|
||||
"time": "2022-04-27T17:26:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mailer",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mailer.git",
|
||||
"reference": "f7343f94e7afecca2ad840b078f9d80200e1bd27"
|
||||
"reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/f7343f94e7afecca2ad840b078f9d80200e1bd27",
|
||||
"reference": "f7343f94e7afecca2ad840b078f9d80200e1bd27",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/706af6b3e99ebcbc639c9c664f5579aaa869409b",
|
||||
"reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10985,7 +10984,7 @@
|
||||
"description": "Helps sending emails",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mailer/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/mailer/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -11001,7 +11000,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-18T16:06:28+00:00"
|
||||
"time": "2022-04-27T17:10:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mailgun-mailer",
|
||||
@@ -11070,16 +11069,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "74266e396f812a2301536397a6360b6e6913c0d8"
|
||||
"reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/74266e396f812a2301536397a6360b6e6913c0d8",
|
||||
"reference": "74266e396f812a2301536397a6360b6e6913c0d8",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1",
|
||||
"reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -11131,7 +11130,7 @@
|
||||
"mime-type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mime/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/mime/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -11147,7 +11146,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-13T20:10:05+00:00"
|
||||
"time": "2022-04-12T16:11:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/options-resolver",
|
||||
@@ -11938,16 +11937,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "e13f6757e267d687e20ec5b26ccfcbbe511cd8f4"
|
||||
"reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/e13f6757e267d687e20ec5b26ccfcbbe511cd8f4",
|
||||
"reference": "e13f6757e267d687e20ec5b26ccfcbbe511cd8f4",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/d074154ea8b1443a96391f6e39f9e547b2dd01b9",
|
||||
"reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -11979,7 +11978,7 @@
|
||||
"description": "Executes commands in sub-processes",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/process/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/process/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -11995,7 +11994,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-18T16:21:55+00:00"
|
||||
"time": "2022-04-12T16:11:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/psr-http-message-bridge",
|
||||
@@ -12087,16 +12086,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v6.0.5",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "a738b152426ac7fcb94bdab8188264652238bef1"
|
||||
"reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/a738b152426ac7fcb94bdab8188264652238bef1",
|
||||
"reference": "a738b152426ac7fcb94bdab8188264652238bef1",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/74c40c9fc334acc601a32fcf4274e74fb3bac11e",
|
||||
"reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12155,7 +12154,7 @@
|
||||
"url"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/routing/tree/v6.0.5"
|
||||
"source": "https://github.com/symfony/routing/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12171,7 +12170,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-31T19:46:53+00:00"
|
||||
"time": "2022-04-22T08:18:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
@@ -12319,16 +12318,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v6.0.3",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2"
|
||||
"reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/522144f0c4c004c80d56fa47e40e17028e2eefc2",
|
||||
"reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d",
|
||||
"reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12384,7 +12383,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v6.0.3"
|
||||
"source": "https://github.com/symfony/string/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12400,20 +12399,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-02T09:55:41+00:00"
|
||||
"time": "2022-04-22T08:18:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v6.0.7",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "b2792b39d74cf41ea3065f27fd2ddf0b556ac7a1"
|
||||
"reference": "3d38cf8f8834148c4457681d539bc204de701501"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/b2792b39d74cf41ea3065f27fd2ddf0b556ac7a1",
|
||||
"reference": "b2792b39d74cf41ea3065f27fd2ddf0b556ac7a1",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/3d38cf8f8834148c4457681d539bc204de701501",
|
||||
"reference": "3d38cf8f8834148c4457681d539bc204de701501",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12479,7 +12478,7 @@
|
||||
"description": "Provides tools to internationalize your application",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/translation/tree/v6.0.7"
|
||||
"source": "https://github.com/symfony/translation/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12495,7 +12494,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-31T17:18:25+00:00"
|
||||
"time": "2022-04-22T08:18:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
@@ -12577,16 +12576,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v6.0.6",
|
||||
"version": "v6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "38358405ae948963c50a3aae3dfea598223ba15e"
|
||||
"reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/38358405ae948963c50a3aae3dfea598223ba15e",
|
||||
"reference": "38358405ae948963c50a3aae3dfea598223ba15e",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/fa61dfb4bd3068df2492013dc65f3190e9f550c0",
|
||||
"reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12645,7 +12644,7 @@
|
||||
"dump"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v6.0.6"
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v6.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12661,7 +12660,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-02T12:58:14+00:00"
|
||||
"time": "2022-04-26T13:22:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "teamtnt/laravel-scout-tntsearch-driver",
|
||||
@@ -12916,16 +12915,16 @@
|
||||
},
|
||||
{
|
||||
"name": "vimeo/psalm",
|
||||
"version": "4.22.0",
|
||||
"version": "4.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vimeo/psalm.git",
|
||||
"reference": "fc2c6ab4d5fa5d644d8617089f012f3bb84b8703"
|
||||
"reference": "f1fe6ff483bf325c803df9f510d09a03fd796f88"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vimeo/psalm/zipball/fc2c6ab4d5fa5d644d8617089f012f3bb84b8703",
|
||||
"reference": "fc2c6ab4d5fa5d644d8617089f012f3bb84b8703",
|
||||
"url": "https://api.github.com/repos/vimeo/psalm/zipball/f1fe6ff483bf325c803df9f510d09a03fd796f88",
|
||||
"reference": "f1fe6ff483bf325c803df9f510d09a03fd796f88",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12950,6 +12949,7 @@
|
||||
"php": "^7.1|^8",
|
||||
"sebastian/diff": "^3.0 || ^4.0",
|
||||
"symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0",
|
||||
"symfony/polyfill-php80": "^1.25",
|
||||
"webmozart/path-util": "^2.3"
|
||||
},
|
||||
"provide": {
|
||||
@@ -13016,9 +13016,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/vimeo/psalm/issues",
|
||||
"source": "https://github.com/vimeo/psalm/tree/4.22.0"
|
||||
"source": "https://github.com/vimeo/psalm/tree/4.23.0"
|
||||
},
|
||||
"time": "2022-02-24T20:34:05+00:00"
|
||||
"time": "2022-04-28T17:35:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
@@ -14581,16 +14581,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/ignition",
|
||||
"version": "1.2.7",
|
||||
"version": "1.2.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/ignition.git",
|
||||
"reference": "2f059cf42b48f7c522efbba1c05ad59fc2c1a3f2"
|
||||
"reference": "db25202fab2d5c14613b8914a1bb374998bbf870"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/ignition/zipball/2f059cf42b48f7c522efbba1c05ad59fc2c1a3f2",
|
||||
"reference": "2f059cf42b48f7c522efbba1c05ad59fc2c1a3f2",
|
||||
"url": "https://api.github.com/repos/spatie/ignition/zipball/db25202fab2d5c14613b8914a1bb374998bbf870",
|
||||
"reference": "db25202fab2d5c14613b8914a1bb374998bbf870",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -14647,20 +14647,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-29T08:48:34+00:00"
|
||||
"time": "2022-04-23T20:37:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-ignition",
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-ignition.git",
|
||||
"reference": "924d1ae878874ad0bb49f63b69a9af759a34ee78"
|
||||
"reference": "51e5daaa7e43c154fe57f1ddfbba862f9fe57646"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/924d1ae878874ad0bb49f63b69a9af759a34ee78",
|
||||
"reference": "924d1ae878874ad0bb49f63b69a9af759a34ee78",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/51e5daaa7e43c154fe57f1ddfbba862f9fe57646",
|
||||
"reference": "51e5daaa7e43c154fe57f1ddfbba862f9fe57646",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -14737,7 +14737,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-14T18:04:51+00:00"
|
||||
"time": "2022-05-05T15:53:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php73",
|
||||
|
||||
@@ -39,12 +39,13 @@ return [
|
||||
'visibility' => 'public',
|
||||
],
|
||||
's3' => [
|
||||
'driver' => 's3',
|
||||
'key' => env('S3_ACCESS_KEY_ID'),
|
||||
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||
'region' => env('S3_DEFAULT_REGION'),
|
||||
'bucket' => env('S3_BUCKET'),
|
||||
'endpoint' => env('S3_URL'),
|
||||
'driver' => 's3',
|
||||
'key' => env('S3_ACCESS_KEY_ID'),
|
||||
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||
'region' => env('S3_DEFAULT_REGION'),
|
||||
'bucket' => env('S3_BUCKET'),
|
||||
'endpoint' => env('S3_URL'),
|
||||
'visibility' => 'private',
|
||||
],
|
||||
'ftp' => [
|
||||
'driver' => 'ftp',
|
||||
|
||||
@@ -263,6 +263,10 @@ return [
|
||||
'Description' => 'description',
|
||||
'description' => 'description',
|
||||
'generated_by' => 'Generated by',
|
||||
'synchronize_plans' => 'Synchronize Plans',
|
||||
'synchronizing_plans' => 'Synchronizing Plans...',
|
||||
'plans_are_synchronizing' => 'Your plans are synchronizing with the payment gateways',
|
||||
'plans_was_synchronized' => 'Plans was successfully synchronized',
|
||||
],
|
||||
'regular' => [
|
||||
'type' => 'Type',
|
||||
@@ -821,7 +825,7 @@ return [
|
||||
'allow_homepage' => 'Allow Homepage',
|
||||
'allow_homepage_note' => 'When this is turned on, your visitors can visit your default homepage.',
|
||||
'storage_upload' => 'Storage & Upload',
|
||||
'allow_recaptcha' => 'Allow ReCaptcha',
|
||||
'allow_recaptcha' => 'Allow ReCaptcha v3',
|
||||
'allow_recaptcha_note' => 'ReCaptcha will be allowed on Registration and Contact Us forms.',
|
||||
'login_and_registration' => 'Login & Registration',
|
||||
'account' => 'Account',
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ return [
|
||||
'facebook' => [
|
||||
'client_id' => env('FACEBOOK_CLIENT_ID'),
|
||||
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
|
||||
'redirect' => env('APP_URL') . '/socialite/facebook/callback',
|
||||
'redirect' => env('APP_URL') . '/socialite/facebook/callback/',
|
||||
],
|
||||
|
||||
'recaptcha' => [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'version' => '2.1.0.1',
|
||||
'version' => '2.1.3',
|
||||
|
||||
'is_demo' => env('APP_DEMO', false),
|
||||
|
||||
@@ -68,5 +68,6 @@ return [
|
||||
'2_0_14',
|
||||
'2_0_16',
|
||||
'2_1_1',
|
||||
'2_1_2',
|
||||
],
|
||||
];
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('exifs', function (Blueprint $table) {
|
||||
$table->uuid('file_id')->nullable()->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
|
||||
}
|
||||
};
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
@@ -0,0 +1 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5867],{5713:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(3645),s=n.n(r)()((function(t){return t[1]}));s.push([t.id,".sync-alt[data-v-0c7f3326]{-webkit-animation:spin-data-v-0c7f3326 1s linear infinite;animation:spin-data-v-0c7f3326 1s linear infinite}@-webkit-keyframes spin-data-v-0c7f3326{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin-data-v-0c7f3326{0%{transform:rotate(0)}to{transform:rotate(1turn)}}",""]);const i=s},4026:(t,e,n)=>{n.d(e,{Z:()=>s});const r={name:"AuthContent",props:["visible","name"],data:function(){return{isVisible:!1}},created:function(){this.isVisible=this.visible}};const s=(0,n(1900).Z)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isVisible?n("div",{staticClass:"w-full max-w-xl text-center"},[t._t("default")],2):t._e()}),[],!1,null,null,null).exports},5111:(t,e,n)=>{n.d(e,{Z:()=>s});const r={name:"AuthContentWrapper"};const s=(0,n(1900).Z)(r,(function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{staticClass:"flex items-center justify-center px-2.5 md:px-6"},[t._t("default")],2)}),[],!1,null,null,null).exports},371:(t,e,n)=>{n.d(e,{Z:()=>c});var r=n(9101);const s={name:"AuthContent",props:["loading","icon","text"],components:{ChevronRightIcon:r.XCv,RefreshCwIcon:r.Iyk},data:function(){return{isVisible:!1}},created:function(){this.isVisible=this.visible}};var i=n(3379),o=n.n(i),a=n(5713),l={insert:"head",singleton:!1};o()(a.Z,l);a.Z.locals;const c=(0,n(1900).Z)(s,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("button",{staticClass:"group mx-auto inline-block flex items-center whitespace-nowrap rounded-lg border-2 border-black px-7 py-2.5 dark:border-gray-300"},[n("span",{staticClass:"pr-1 text-lg font-extrabold"},[t._v("\n "+t._s(t.text)+"\n ")]),t._v(" "),t.loading?n("refresh-cw-icon",{staticClass:"vue-feather text-theme sync-alt -mr-1",attrs:{size:"20"}}):t._e(),t._v(" "),!t.loading&&t.icon?n("chevron-right-icon",{staticClass:"vue-feather text-theme -mr-1",attrs:{size:"20"}}):t._e()],1)}),[],!1,null,"0c7f3326",null).exports},5993:(t,e,n)=>{n.d(e,{Z:()=>a});function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){i(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const o={name:"Headline",props:["description","title"],computed:s(s({},(0,n(629).Se)(["config","isDarkMode"])),{},{logoSrc:function(){return this.isDarkMode&&this.config.app_logo?this.config.app_logo_dark:this.config.app_logo}})};const a=(0,n(1900).Z)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mb-14"},[t._t("default"),t._v(" "),t.$slots.default?t._e():n("div",[t.config.app_logo?n("img",{staticClass:"mx-auto mb-6 h-16 md:h-20 mb-10",attrs:{src:t.$getImage(t.logoSrc),alt:t.config.app_name}}):t._e(),t._v(" "),t.config.app_logo?t._e():n("b",{staticClass:"mb-10 block text-xl font-bold"},[t._v("\n "+t._s(t.config.app_name)+"\n ")])]),t._v(" "),n("h1",{staticClass:"mb-0.5 text-3xl font-extrabold md:text-4xl"},[t._v("\n "+t._s(t.title)+"\n ")]),t._v(" "),n("h2",{staticClass:"text-xl font-normal md:text-2xl"},[t._v("\n "+t._s(t.description)+"\n ")])],2)}),[],!1,null,null,null).exports},9493:(t,e,n)=>{n.r(e),n.d(e,{default:()=>l});var r=n(5111),s=n(4026),i=n(371),o=n(5993);const a={name:"Demo",components:{AuthContentWrapper:r.Z,AuthContent:s.Z,AuthButton:i.Z,Headline:o.Z}};const l=(0,n(1900).Z)(a,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("AuthContentWrapper",{ref:"auth",staticClass:"h-screen"},[n("AuthContent",{attrs:{visible:!0}},[n("Headline",{attrs:{title:"You Are Nearly Here!",description:"Just click on the button below."}}),t._v(" "),n("a",{attrs:{href:t.$store.getters.config.host+"/sign-in",target:"_blank"}},[n("AuthButton",{staticClass:"mb-12 w-full justify-center md:w-min",attrs:{icon:"chevron-right",text:"Visit Demo"}})],1)],1)],1)}),[],!1,null,null,null).exports}}]);
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -131,6 +131,11 @@ export default {
|
||||
this.isLoaded = true
|
||||
})
|
||||
}
|
||||
|
||||
// Go to sign in page if homepage is disabled
|
||||
if (!this.$root.$data.config.allowHomepage && window.location.pathname === '/') {
|
||||
this.$router.push({ name: 'SignIn' })
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.$isWindows()) {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'grid-view-sidebar': itemViewType === 'grid' && isVisibleSidebar,
|
||||
}"
|
||||
class="px-4 lg:h-full lg:w-full lg:overflow-y-auto lg:px-0"
|
||||
@drop.stop.prevent="uploadDroppedItems($event)"
|
||||
@drop.prevent="dragStop($event)"
|
||||
@keydown.delete="deleteItems"
|
||||
@dragover="dragEnter"
|
||||
@dragleave="dragLeave"
|
||||
@@ -62,9 +62,7 @@ export default {
|
||||
this.$store.dispatch('deleteItem')
|
||||
}
|
||||
},
|
||||
uploadDroppedItems(event) {
|
||||
this.$uploadDraggedFiles(event, this.currentFolder.data.id)
|
||||
|
||||
dragStop() {
|
||||
this.isDragging = false
|
||||
},
|
||||
dragEnter() {
|
||||
|
||||
@@ -1,13 +1,27 @@
|
||||
<template>
|
||||
<transition name="popup">
|
||||
<div class="popup" v-if="processingPopup">
|
||||
<div class="popup-wrapper">
|
||||
<div class="popup-content">
|
||||
<div class="spinner-wrapper">
|
||||
<Spinner />
|
||||
<div
|
||||
v-if="processingPopup"
|
||||
class="popup fixed top-0 left-0 right-0 bottom-0 z-50 grid h-full overflow-y-auto p-10 lg:absolute"
|
||||
>
|
||||
<div
|
||||
class="fixed top-0 bottom-0 left-0 right-0 z-10 m-auto w-full bg-white shadow-xl dark:bg-dark-foreground md:relative md:w-[490px] md:rounded-xl"
|
||||
>
|
||||
<div
|
||||
class="flex h-full -translate-y-7 transform items-center justify-center px-8 text-center md:translate-y-0"
|
||||
>
|
||||
<div>
|
||||
<div class="relative pb-16 pt-10">
|
||||
<Spinner />
|
||||
</div>
|
||||
|
||||
<h1 v-if="processingPopup.title" class="mb-2 text-2xl font-bold">
|
||||
{{ processingPopup.title }}
|
||||
</h1>
|
||||
<p v-if="processingPopup.message" class="mb-4 text-sm">
|
||||
{{ processingPopup.message }}
|
||||
</p>
|
||||
</div>
|
||||
<h1 class="title">{{ processingPopup.title }}</h1>
|
||||
<p class="message">{{ processingPopup.message }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -17,10 +31,12 @@
|
||||
<script>
|
||||
import Spinner from '../UI/Others/Spinner'
|
||||
import { mapGetters } from 'vuex'
|
||||
import PopupWrapper from './Components/PopupWrapper'
|
||||
|
||||
export default {
|
||||
name: 'ProcessingPopup',
|
||||
components: {
|
||||
PopupWrapper,
|
||||
Spinner,
|
||||
},
|
||||
computed: {
|
||||
@@ -28,107 +44,3 @@ export default {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '../../../sass/vuefilemanager/variables';
|
||||
@import '../../../sass/vuefilemanager/mixins';
|
||||
|
||||
.spinner-wrapper {
|
||||
padding-bottom: 90px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.popup {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 20;
|
||||
overflow: auto;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.popup-wrapper {
|
||||
z-index: 12;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
max-width: 480px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%) scale(1);
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
box-shadow: $light_mode_popup_shadow;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
.title {
|
||||
@include font-size(22);
|
||||
font-weight: 700;
|
||||
color: $text;
|
||||
}
|
||||
|
||||
.message {
|
||||
@include font-size(16);
|
||||
color: #333;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 690px) {
|
||||
.popup-wrapper {
|
||||
padding: 20px;
|
||||
left: 15px;
|
||||
right: 15px;
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
.title {
|
||||
@include font-size(19);
|
||||
}
|
||||
|
||||
.message {
|
||||
@include font-size(15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dark {
|
||||
.popup-wrapper {
|
||||
background: $dark_mode_foreground;
|
||||
}
|
||||
.popup-content {
|
||||
.title {
|
||||
color: $dark_mode_text_primary;
|
||||
}
|
||||
|
||||
.message {
|
||||
color: $dark_mode_text_secondary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Animations
|
||||
.popup-enter-active {
|
||||
animation: popup-in 0.35s 0.15s ease both;
|
||||
}
|
||||
|
||||
.popup-leave-active {
|
||||
animation: popup-in 0.15s ease reverse;
|
||||
}
|
||||
|
||||
@keyframes popup-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(0.7);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -63,7 +63,7 @@ export default {
|
||||
|
||||
limitations.push({
|
||||
message: payload.message[key],
|
||||
isVisibleBar: item.total !== -1,
|
||||
isVisibleBar: item.total !== -1 && item.total !== 0,
|
||||
distribution: [
|
||||
{
|
||||
progress: item.percentage,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
'bg-light-background dark:bg-dark-foreground': isClicked && canHover,
|
||||
'dark:hover:bg-dark-foreground lg:hover:bg-light-background': canHover,
|
||||
}"
|
||||
class="relative z-0 flex h-48 select-none flex-wrap items-center justify-center rounded-lg border-2 border-dashed border-transparent px-1 pt-2 text-center sm:h-56 lg:h-60"
|
||||
class="relative z-0 flex h-48 select-none flex-wrap items-center justify-center rounded-lg border-2 border-dashed border-transparent px-1 pt-2 text-center sm:h-56 lg:h-60 cursor-pointer"
|
||||
:draggable="canDrag"
|
||||
spellcheck="false"
|
||||
>
|
||||
@@ -77,7 +77,7 @@
|
||||
<!--Item Title-->
|
||||
<span
|
||||
class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-sm font-bold leading-3 tracking-tight md:px-6"
|
||||
:class="{ 'hover:underline': canEditName }"
|
||||
:class="{ 'hover:underline cursor-text': canEditName }"
|
||||
ref="name"
|
||||
@input="renameItem"
|
||||
@keydown.delete.stop
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
'bg-light-background dark:bg-dark-foreground': isClicked && highlight,
|
||||
'hover:bg-light-background dark:hover:bg-dark-foreground': highlight,
|
||||
}"
|
||||
class="flex select-none items-center rounded-xl border-2 border-dashed border-transparent px-2.5 py-2"
|
||||
class="flex select-none items-center rounded-xl border-2 border-dashed border-transparent px-2.5 py-2 cursor-pointer"
|
||||
:draggable="canDrag"
|
||||
spellcheck="false"
|
||||
>
|
||||
@@ -55,7 +55,7 @@
|
||||
<!--Item Title-->
|
||||
<span
|
||||
class="mb-0.5 block overflow-hidden text-ellipsis whitespace-nowrap text-sm font-bold"
|
||||
:class="{ 'hover:underline': canEditName }"
|
||||
:class="{ 'hover:underline cursor-text': canEditName }"
|
||||
style="max-width: 240px"
|
||||
ref="name"
|
||||
@input="renameItem"
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
}"
|
||||
class="chart-wrapper"
|
||||
>
|
||||
<!--<DotLabel class="label" :class="{'offset-top': chart.progress < 5}" :color="chart.color" :title="chart.value" />-->
|
||||
|
||||
<!--Only singe line-->
|
||||
<span
|
||||
v-if="data.length === 1"
|
||||
|
||||
+8
-2
@@ -169,7 +169,7 @@ const FunctionHelpers = {
|
||||
})
|
||||
|
||||
// Start uploading if uploading process isn't running
|
||||
if (store.getters.filesInQueueTotal == 0) this.$handleUploading(store.getters.fileQueue[0])
|
||||
if (store.getters.filesInQueueTotal === 0) this.$handleUploading(store.getters.fileQueue[0])
|
||||
|
||||
// Increase total files in upload bar
|
||||
store.commit('INCREASE_FILES_IN_QUEUES_TOTAL', files.length)
|
||||
@@ -177,7 +177,7 @@ const FunctionHelpers = {
|
||||
|
||||
Vue.prototype.$uploadDraggedFiles = async function (event, parent_id) {
|
||||
// Show alert message when upload is disabled
|
||||
if (!store.getters.user.data.meta.restrictions.canUpload) {
|
||||
if (store.getters.user && !store.getters.user.data.meta.restrictions.canUpload) {
|
||||
Vue.prototype.$temporarilyDisabledUpload()
|
||||
|
||||
return
|
||||
@@ -427,6 +427,12 @@ const FunctionHelpers = {
|
||||
}
|
||||
|
||||
Vue.prototype.$goToFileView = function (id) {
|
||||
// If user is located in trash, then automatically after click on the navigator go to the Files view
|
||||
if (this.$router.currentRoute.name === 'Trash') {
|
||||
this.$router.push({ name: 'Files', params: { id: id } })
|
||||
return
|
||||
}
|
||||
|
||||
let locations = {
|
||||
RequestUpload: {name: 'RequestUpload', params: { token: this.$route.params.token, id: id }},
|
||||
Public: {name: 'Public', params: { token: this.$route.params.token, id: id }},
|
||||
|
||||
Vendored
+8
@@ -23,6 +23,14 @@ const routesIndex = [
|
||||
requiresAuth: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Demo',
|
||||
path: '/demo',
|
||||
component: () => import(/* webpackChunkName: "chunks/demo" */ '../views/Demo'),
|
||||
meta: {
|
||||
requiresAuth: false,
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
export default routesIndex
|
||||
|
||||
+3
-1
@@ -114,7 +114,7 @@ const actions = {
|
||||
})
|
||||
.catch((error) => {
|
||||
events.$emit('alert:open', {
|
||||
title: error.response.data.message,
|
||||
title: error.response.data.message || i18n.t('popup_error.title'),
|
||||
message: i18n.t('popup_error.message'),
|
||||
})
|
||||
})
|
||||
@@ -179,6 +179,8 @@ const actions = {
|
||||
if (response.data.data.id) {
|
||||
commit('PROCESSING_FILE', false)
|
||||
|
||||
commit('INCREASE_FOLDER_ITEM', response.data.data.attributes.parent_id)
|
||||
|
||||
// Remove first file from file queue
|
||||
commit('SHIFT_FROM_FILE_QUEUE')
|
||||
|
||||
|
||||
+6
-2
@@ -32,7 +32,7 @@ const actions = {
|
||||
})
|
||||
})
|
||||
},
|
||||
logOut: ({ commit }) => {
|
||||
logOut: ({ commit, getters }) => {
|
||||
|
||||
let popup = setTimeout(() => {
|
||||
commit('PROCESSING_POPUP', {
|
||||
@@ -50,7 +50,11 @@ const actions = {
|
||||
commit('DESTROY_DATA')
|
||||
commit('SET_AUTHORIZED', false)
|
||||
|
||||
router.push({name: 'Homepage'})
|
||||
// Get redirect location
|
||||
let redirectLocation = getters.config.allowHomepage ? 'Homepage' : 'SignIn'
|
||||
|
||||
// Redirect user
|
||||
router.push({name: redirectLocation})
|
||||
})
|
||||
},
|
||||
socialiteRedirect: ({ commit }, provider) => {
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
<!--ConfirmPopup Popup-->
|
||||
<ConfirmPopup />
|
||||
<ProcessingPopup />
|
||||
|
||||
<!-- Create language popup -->
|
||||
<CreateLanguage />
|
||||
@@ -88,6 +89,7 @@ import CreateUploadRequestPopup from "../components/UploadRequest/CreateUploadRe
|
||||
import CreateTeamFolderPopup from "../components/Teams/CreateTeamFolderPopup";
|
||||
import NotificationsPopup from "../components/Notifications/NotificationsPopup";
|
||||
import RemoteUploadPopup from "../components/RemoteUpload/RemoteUploadPopup";
|
||||
import ProcessingPopup from "../components/Popups/ProcessingPopup";
|
||||
|
||||
export default {
|
||||
name: 'Admin',
|
||||
@@ -192,6 +194,7 @@ export default {
|
||||
},
|
||||
},
|
||||
components: {
|
||||
ProcessingPopup,
|
||||
RemoteUploadPopup,
|
||||
NotificationsPopup,
|
||||
CreateTeamFolderPopup,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
:is-last="true"
|
||||
>
|
||||
<SwitchInput
|
||||
@input="$updateText('/admin/settings', 'allowed_payments', allowedPayments)"
|
||||
@input="updateAllowedPayments"
|
||||
v-model="allowedPayments"
|
||||
:state="allowedPayments"
|
||||
/>
|
||||
@@ -280,6 +280,17 @@
|
||||
<FormLabel v-if="!paystack.isConfigured" icon="shield">
|
||||
{{ $t('configure_your_credentials') }}
|
||||
</FormLabel>
|
||||
<ValidationProvider tag="div" mode="passive" name="Secret Key" rules="required" v-slot="{ errors }">
|
||||
<AppInputText :title="$t('admin_settings.payments.stripe_sec_key')" :error="errors[0]">
|
||||
<input
|
||||
v-model="paystack.credentials.secret"
|
||||
:placeholder="$t('admin_settings.payments.stripe_sec_key_plac')"
|
||||
type="text"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
class="focus-border-theme input-dark"
|
||||
/>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
<ValidationProvider
|
||||
tag="div"
|
||||
mode="passive"
|
||||
@@ -297,17 +308,6 @@
|
||||
/>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
<ValidationProvider tag="div" mode="passive" name="Secret Key" rules="required" v-slot="{ errors }">
|
||||
<AppInputText :title="$t('admin_settings.payments.stripe_sec_key')" :error="errors[0]">
|
||||
<input
|
||||
v-model="paystack.credentials.secret"
|
||||
:placeholder="$t('admin_settings.payments.stripe_sec_key_plac')"
|
||||
type="text"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
class="focus-border-theme input-dark"
|
||||
/>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
|
||||
<ButtonBase
|
||||
:disabled="isLoading"
|
||||
@@ -623,16 +623,33 @@ export default {
|
||||
})
|
||||
})
|
||||
.catch((error) => {
|
||||
if (error.response.status === 500) {
|
||||
this.isError = true
|
||||
this.errorMessage = error.response.data.message
|
||||
}
|
||||
if ([401, 500].includes(error.response.status)) {
|
||||
events.$emit('alert:open', {
|
||||
title: error.response.data.title,
|
||||
message: error.response.data.message,
|
||||
})
|
||||
} else {
|
||||
events.$emit('toaster', {
|
||||
type: 'danger',
|
||||
message: this.$t('popup_error.title'),
|
||||
})
|
||||
}
|
||||
})
|
||||
.finally(() => (this.isLoading = false))
|
||||
},
|
||||
getWebhookEndpoint(service) {
|
||||
return `${this.config.host}/api/subscriptions/${service}/webhooks`
|
||||
},
|
||||
updateAllowedPayments(val) {
|
||||
// Update value
|
||||
this.$updateText('/admin/settings', 'allowed_payments', val)
|
||||
|
||||
// Update config value
|
||||
this.$store.commit('REPLACE_CONFIG_VALUE', {
|
||||
key: 'allowed_payments',
|
||||
value: val,
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// Set payment description
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
{{ $t('create_plan') }}
|
||||
</MobileActionButton>
|
||||
</router-link>
|
||||
<MobileActionButton @click.native="synchronizePlans" icon="refresh">
|
||||
{{ $t('synchronize_plans') }}
|
||||
</MobileActionButton>
|
||||
</div>
|
||||
|
||||
<!--Datatable-->
|
||||
@@ -202,6 +205,7 @@ import ButtonBase from '../../components/UI/Buttons/ButtonBase'
|
||||
import ColorLabel from '../../components/UI/Labels/ColorLabel'
|
||||
import { Trash2Icon, Edit2Icon } from 'vue-feather-icons'
|
||||
import { mapGetters } from 'vuex'
|
||||
import {events} from "../../bus";
|
||||
|
||||
export default {
|
||||
name: 'Plans',
|
||||
@@ -296,5 +300,36 @@ export default {
|
||||
}[this.config.subscriptionType]
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
synchronizePlans() {
|
||||
let processingPopup = setTimeout(() => {
|
||||
this.$store.commit('PROCESSING_POPUP', {
|
||||
title: this.$t('synchronizing_plans'),
|
||||
message: this.$t('plans_are_synchronizing'),
|
||||
})
|
||||
}, 300)
|
||||
|
||||
axios.get('/api/subscriptions/admin/plans/synchronize')
|
||||
.then(() => {
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('plans_was_synchronized'),
|
||||
})
|
||||
})
|
||||
.catch((error) => {
|
||||
if (error.response.status === 500 && error.response.data.type) {
|
||||
events.$emit('alert:open', {
|
||||
title: error.response.data.title,
|
||||
message: error.response.data.message,
|
||||
})
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
clearTimeout(processingPopup)
|
||||
|
||||
this.$store.commit('PROCESSING_POPUP', undefined)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
v-model="plan.features.max_team_members"
|
||||
:placeholder="$t('add_max_team_members')"
|
||||
type="number"
|
||||
min="1"
|
||||
min="-1"
|
||||
max="999999999"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
class="focus-border-theme input-dark"
|
||||
|
||||
@@ -357,6 +357,10 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
getCallbackEndpoint(service) {
|
||||
if (service === 'facebook') {
|
||||
return `${this.config.host}/socialite/${service}/callback/`
|
||||
}
|
||||
|
||||
return `${this.config.host}/socialite/${service}/callback`
|
||||
},
|
||||
async storeCredentials(service) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<AuthContentWrapper ref="auth" class="h-screen">
|
||||
<AuthContentWrapper v-if="isVisible" ref="auth" class="h-screen">
|
||||
<!--Log In by Email-->
|
||||
<AuthContent name="log-in" :visible="true">
|
||||
<Headline :title="$t('welcome_back')" :description="$t('page_login.subtitle')" />
|
||||
@@ -256,6 +256,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isVisible: false,
|
||||
isLoading: false,
|
||||
validSignIn: false,
|
||||
checkedAccount: undefined,
|
||||
@@ -443,14 +444,20 @@ export default {
|
||||
}
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.$scrollTop()
|
||||
this.$store.commit('PROCESSING_POPUP', undefined)
|
||||
|
||||
mounted() {
|
||||
// Redirect if user is authenticated
|
||||
if (this.$root.$data.config.isAuthenticated) {
|
||||
this.$router.push({name: 'Files'})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// Show the page when user is not authenticated
|
||||
if (! this.$root.$data.config.isAuthenticated) {
|
||||
this.isVisible = true
|
||||
}
|
||||
|
||||
this.$scrollTop()
|
||||
this.$store.commit('PROCESSING_POPUP', undefined)
|
||||
|
||||
if (this.config.isDemo || this.config.isDev) {
|
||||
this.loginEmail = 'howdy@hi5ve.digital'
|
||||
|
||||
@@ -256,6 +256,12 @@ export default {
|
||||
'Your New Password': error.response.data.errors['password'],
|
||||
})
|
||||
}
|
||||
|
||||
if (error.response.data.errors['reCaptcha']) {
|
||||
events.$emit('alert:open', {
|
||||
title: error.response.data.message,
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<template>
|
||||
<AuthContentWrapper ref="auth" class="h-screen">
|
||||
<AuthContent :visible="true">
|
||||
<Headline
|
||||
title="You Are Nearly Here!"
|
||||
description="Just click on the button below."
|
||||
/>
|
||||
|
||||
<a :href="`${$store.getters.config.host}/sign-in`" target="_blank">
|
||||
<AuthButton
|
||||
class="mb-12 w-full justify-center md:w-min"
|
||||
icon="chevron-right"
|
||||
text="Visit Demo"
|
||||
/>
|
||||
</a>
|
||||
</AuthContent>
|
||||
</AuthContentWrapper>
|
||||
</template>
|
||||
<script>
|
||||
import AuthContentWrapper from '../components/Layout/AuthPages/AuthContentWrapper'
|
||||
import AuthContent from '../components/Layout/AuthPages/AuthContent'
|
||||
import AuthButton from '../components/UI/Buttons/AuthButton'
|
||||
import Headline from '../components/UI/Labels/LogoHeadline'
|
||||
|
||||
export default {
|
||||
name: 'Demo',
|
||||
components: {
|
||||
AuthContentWrapper,
|
||||
AuthContent,
|
||||
AuthButton,
|
||||
Headline,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -64,8 +64,6 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (!this.config.allowHomepage) this.$router.push({ name: 'SignIn' })
|
||||
|
||||
// Get page content
|
||||
axios
|
||||
.get('/api/settings', {
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<div v-if="config.allowedAdsense && config.adsenseBanner01" v-html="config.adsenseBanner01" class="mb-5 min-h-[120px]"></div>
|
||||
|
||||
<!--File list & info sidebar-->
|
||||
<div class="flex space-x-3 lg:overflow-hidden grow">
|
||||
<div class="flex space-x-3 lg:overflow-hidden grow" @drop.stop.prevent="uploadDroppedItems($event)" @dragenter.prevent @dragover.prevent>
|
||||
<router-view id="file-view" class="relative w-full" :key="$route.fullPath" />
|
||||
|
||||
<InfoSidebar v-if="isVisibleSidebar" />
|
||||
@@ -110,7 +110,7 @@ export default {
|
||||
DragUI,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['isVisibleSidebar', 'isLimitedUser', 'config']),
|
||||
...mapGetters(['isVisibleSidebar', 'isLimitedUser', 'config', 'currentFolder']),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -118,6 +118,9 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
uploadDroppedItems(event) {
|
||||
this.$uploadDraggedFiles(event, this.currentFolder?.data.id)
|
||||
},
|
||||
contextMenu(event, item) {
|
||||
events.$emit('context-menu:show', event, item)
|
||||
},
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
<input
|
||||
v-model="databaseCredentials.name"
|
||||
class="focus-border-theme input-dark"
|
||||
placeholder="Select your database name"
|
||||
placeholder="Type your database name"
|
||||
type="text"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
/>
|
||||
@@ -100,7 +100,7 @@
|
||||
<input
|
||||
v-model="databaseCredentials.username"
|
||||
class="focus-border-theme input-dark"
|
||||
placeholder="Select your database name"
|
||||
placeholder="Type your database name"
|
||||
type="text"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
/>
|
||||
@@ -111,14 +111,13 @@
|
||||
tag="div"
|
||||
mode="passive"
|
||||
name="Database Password"
|
||||
rules="required"
|
||||
v-slot="{ errors }"
|
||||
>
|
||||
<AppInputText title="Database Password" :error="errors[0]" :is-last="true">
|
||||
<AppInputText title="Database Password (optional)" :error="errors[0]" :is-last="true">
|
||||
<input
|
||||
v-model="databaseCredentials.password"
|
||||
class="focus-border-theme input-dark"
|
||||
placeholder="Select your database password"
|
||||
placeholder="Type your database password"
|
||||
type="text"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
/>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<a href="https://codecanyon.net/item/vue-file-manager-with-laravel-backend/25815986">
|
||||
<AlertBox color="rose" class="text-left">
|
||||
<p class="text-rose-500">Please make sure you have only legal copy of VueFileManager <b class="text-rose-500 underline">purchased from CodeCanyon</b>. Any illegal copy can contain malicious software, bugs and others security issues which exposes your files to abuse.</p>
|
||||
<p class="text-rose-500">Please make sure you have only legal copy of VueFileManager <b class="text-rose-500 underline">purchased from CodeCanyon</b>. Any illegal copy can contain malicious software, bugs and others security issues which exposes your files to data breach.</p>
|
||||
</AlertBox>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<div v-if="config.allowedAdsense && config.adsenseBanner01" v-html="config.adsenseBanner01" class="mb-5 min-h-[120px]"></div>
|
||||
|
||||
<!--File list & info sidebar-->
|
||||
<div class="flex space-x-3 lg:overflow-hidden grow">
|
||||
<div class="flex space-x-3 lg:overflow-hidden grow" @drop.stop.prevent="uploadDroppedItems($event)" @dragenter.prevent @dragover.prevent>
|
||||
<router-view id="file-view" class="relative w-full" :key="$route.fullPath" />
|
||||
|
||||
<InfoSidebar v-if="isVisibleSidebar" />
|
||||
@@ -87,7 +87,7 @@ export default {
|
||||
Alert,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['isVisibleSidebar', 'sharedDetail', 'config']),
|
||||
...mapGetters(['isVisibleSidebar', 'sharedDetail', 'config', 'currentFolder']),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -95,6 +95,9 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
uploadDroppedItems(event) {
|
||||
this.$uploadDraggedFiles(event, this.currentFolder?.data.id)
|
||||
},
|
||||
contextMenu(event, item) {
|
||||
events.$emit('context-menu:show', event, item)
|
||||
},
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<div v-if="config.allowedAdsense && config.adsenseBanner01" v-html="config.adsenseBanner01" class="mb-5 min-h-[120px]"></div>
|
||||
|
||||
<!--File list & info sidebar-->
|
||||
<div class="flex space-x-3 lg:overflow-hidden grow">
|
||||
<div class="flex space-x-3 lg:overflow-hidden grow" @drop.stop.prevent="uploadDroppedItems($event)" @dragenter.prevent @dragover.prevent>
|
||||
<router-view id="file-view" class="relative w-full" :key="$route.fullPath" />
|
||||
|
||||
<InfoSidebarUploadRequest v-if="canShowUI && isVisibleSidebar" />
|
||||
@@ -76,7 +76,7 @@ export default {
|
||||
DragUI,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['isVisibleSidebar', 'config', 'uploadRequest', 'fileQueue']),
|
||||
...mapGetters(['isVisibleSidebar', 'config', 'uploadRequest', 'fileQueue', 'currentFolder']),
|
||||
canShowUI() {
|
||||
return (this.uploadRequest && this.uploadRequest.data.attributes.status === 'filling') || this.fileQueue.length > 0
|
||||
}
|
||||
@@ -87,6 +87,9 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
uploadDroppedItems(event) {
|
||||
this.$uploadDraggedFiles(event, this.currentFolder?.data.id)
|
||||
},
|
||||
contextMenu(event, item) {
|
||||
events.$emit('context-menu:show', event, item)
|
||||
},
|
||||
|
||||
@@ -1,8 +1,34 @@
|
||||
@php
|
||||
use Monolog\Handler\MissingExtensionException;
|
||||
use VueFileManager\Subscription\Domain\Plans\Models\Plan;
|
||||
use VueFileManager\Subscription\Domain\Transactions\Models\Transaction;
|
||||
use VueFileManager\Subscription\Domain\Subscriptions\Models\Subscription;
|
||||
|
||||
try {
|
||||
// Bcmath Extension
|
||||
$storageDefaultSpaceFormatted = isset($settings->default_max_storage_amount)
|
||||
? format_gigabytes($settings->default_max_storage_amount)
|
||||
: format_gigabytes(5);
|
||||
|
||||
$uploadLimit = isset($settings->upload_limit)
|
||||
? format_bytes($settings->upload_limit)
|
||||
: 'undefined';
|
||||
|
||||
$chunkSize = isset($settings->chunk_size)
|
||||
? format_bytes($settings->chunk_size)
|
||||
: format_bytes(64);
|
||||
|
||||
$uploadLimitFormatted = isset($settings->upload_limit)
|
||||
? format_megabytes($settings->upload_limit)
|
||||
: null;
|
||||
|
||||
} catch (MissingExtensionException $exception) {
|
||||
$storageDefaultSpaceFormatted = '5GB';
|
||||
$uploadLimit = 'undefined';
|
||||
$uploadLimitFormatted = 5;
|
||||
$chunkSize = 64000000;
|
||||
}
|
||||
|
||||
try {
|
||||
// Subscription
|
||||
$isEmptySubscriptions = Subscription::count() === 0;
|
||||
@@ -98,11 +124,11 @@
|
||||
storageLimit: {{ $settings->storage_limitation ?? 1 }},
|
||||
teamsDefaultMembers: {{ $settings->default_max_team_member ?? 10 }},
|
||||
storageDefaultSpace: {{ $settings->default_max_storage_amount ?? 5 }},
|
||||
storageDefaultSpaceFormatted: '{{ isset($settings->default_max_storage_amount) ? format_gigabytes($settings->default_max_storage_amount) : format_gigabytes(5) }}',
|
||||
storageDefaultSpaceFormatted: '{{ $storageDefaultSpaceFormatted }}',
|
||||
mimetypesBlacklist: '{{ isset($settings->mimetypes_blacklist) ? $settings->mimetypes_blacklist: null}}',
|
||||
uploadLimit: {{ isset($settings->upload_limit) ? format_bytes($settings->upload_limit) : 'undefined' }},
|
||||
uploadLimitFormatted: '{{ isset($settings->upload_limit) ? format_megabytes($settings->upload_limit) : null }}',
|
||||
chunkSize: {{ isset($settings->chunk_size) ? format_bytes($settings->chunk_size) : format_bytes(64) }},
|
||||
uploadLimit: {{ $uploadLimit }},
|
||||
uploadLimitFormatted: '{{ $uploadLimitFormatted }}',
|
||||
chunkSize: {{ $chunkSize }},
|
||||
|
||||
isAuthenticated: {{ $isUser ? 1 : 0 }},
|
||||
isSaaS: {{ $settings && optional($settings)->license === 'extended' ? 1 : 0 }},
|
||||
|
||||
@@ -23,7 +23,7 @@ class SetupWebsocketEnvironment extends Command
|
||||
public function handle(): void
|
||||
{
|
||||
// Get allowed origins
|
||||
$origins = $this->ask('Type host of which you want to allow incoming requests. If you want to accept multiple hosts, separate them with comma(,)');
|
||||
$origins = $this->ask('Type the host of your VueFileManager front-end application to allow connection with your websocket server. If you want to accept multiple hosts, separate them with comma(,)');
|
||||
|
||||
// Store origins to the .env file
|
||||
setEnvironmentValue([
|
||||
|
||||
@@ -94,10 +94,15 @@ class UserLimitation extends Model
|
||||
$totalUsedEmails = $memberEmails->merge($InvitationEmails)
|
||||
->unique();
|
||||
|
||||
// Get usage in percent
|
||||
$percentage = (int) $this->max_team_members === 0
|
||||
? 100
|
||||
: ($totalUsedEmails->count() / $this->max_team_members) * 100;
|
||||
|
||||
return [
|
||||
'use' => $totalUsedEmails->count(),
|
||||
'total' => (int) $this->max_team_members,
|
||||
'percentage' => ($totalUsedEmails->count() / $this->max_team_members) * 100,
|
||||
'percentage' => $percentage,
|
||||
'meta' => [
|
||||
'allowed_emails' => $totalUsedEmails,
|
||||
],
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
namespace Domain\Files\Actions;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Domain\Traffic\Actions\RecordUploadAction;
|
||||
use League\Flysystem\UnableToRetrieveMetadata;
|
||||
|
||||
class ProcessFileAction
|
||||
{
|
||||
@@ -26,19 +26,29 @@ class ProcessFileAction
|
||||
public function __invoke(
|
||||
UploadRequest $request,
|
||||
User $user,
|
||||
string $chunkPath,
|
||||
) {
|
||||
string $name,
|
||||
): File {
|
||||
// Get local disk instance
|
||||
$localDisk = Storage::disk('local');
|
||||
|
||||
// Get file data
|
||||
$size = $localDisk->size($chunkPath);
|
||||
$mimetype = $localDisk->mimeType($chunkPath);
|
||||
$name = Str::uuid() . '.' . $request->input('extension');
|
||||
// Get file path
|
||||
$filePath = "files/$user->id/$name";
|
||||
|
||||
// Get upload limit
|
||||
// Get file size
|
||||
$size = $localDisk->size($filePath);
|
||||
|
||||
// Get upload limit size
|
||||
$uploadLimit = get_settings('upload_limit');
|
||||
|
||||
// Get mimetype
|
||||
try {
|
||||
$fileType = getFileType(
|
||||
$localDisk->mimeType($filePath)
|
||||
);
|
||||
} catch (UnableToRetrieveMetadata $e) {
|
||||
$fileType = 'file';
|
||||
}
|
||||
|
||||
// File size handling
|
||||
if ($uploadLimit && $size > format_bytes($uploadLimit)) {
|
||||
abort(413);
|
||||
@@ -47,26 +57,24 @@ class ProcessFileAction
|
||||
// Check if user has enough space to upload file
|
||||
if (! $user->canUpload($size)) {
|
||||
// Delete file from chunk directory
|
||||
$localDisk->delete($chunkPath);
|
||||
|
||||
// Set up response
|
||||
$response = response([
|
||||
'type' => 'error',
|
||||
'message' => __t('user_action_not_allowed'),
|
||||
], 401);
|
||||
$localDisk->delete($filePath);
|
||||
|
||||
// Abort code
|
||||
abort($response);
|
||||
abort(
|
||||
response([
|
||||
'type' => 'error',
|
||||
'message' => __t('user_action_not_allowed'),
|
||||
], 401)
|
||||
);
|
||||
}
|
||||
|
||||
// Move file to user directory
|
||||
$localDisk->move($chunkPath, "files/$user->id/$name");
|
||||
if ($fileType === 'image') {
|
||||
// Create multiple image thumbnails
|
||||
($this->createImageThumbnail)($name, $user->id);
|
||||
|
||||
// Create multiple image thumbnails
|
||||
($this->createImageThumbnail)($name, $user->id);
|
||||
|
||||
// Store exif data if exists
|
||||
$exif = ($this->storeExifData)("files/$user->id/$name");
|
||||
// Store exif data if exists
|
||||
$exif = ($this->storeExifData)($filePath);
|
||||
}
|
||||
|
||||
// Move file to external storage
|
||||
match (config('filesystems.default')) {
|
||||
@@ -78,7 +86,7 @@ class ProcessFileAction
|
||||
// Create new file
|
||||
$file = File::create([
|
||||
'mimetype' => $request->input('extension'),
|
||||
'type' => getFileType($mimetype),
|
||||
'type' => $fileType,
|
||||
'parent_id' => ($this->getFileParentId)($request, $user->id),
|
||||
'name' => $request->input('name'),
|
||||
'basename' => $name,
|
||||
@@ -88,7 +96,10 @@ class ProcessFileAction
|
||||
]);
|
||||
|
||||
// Attach file into the exif data
|
||||
$exif?->update(['file_id' => $file->id]);
|
||||
|
||||
if ($fileType === 'image') {
|
||||
$exif?->update(['file_id' => $file->id]);
|
||||
}
|
||||
|
||||
// Return new file
|
||||
return $file;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
namespace Domain\Files\Actions;
|
||||
|
||||
use Log;
|
||||
use Str;
|
||||
use Storage;
|
||||
use Exception;
|
||||
@@ -31,7 +30,7 @@ class StoreExifDataAction
|
||||
$exif = json_decode(json_encode($exifRaw));
|
||||
|
||||
return Exif::create([
|
||||
'file_id' => Str::uuid(), // TODO: temporary store to prevent crash before app will be successfully upgraded
|
||||
'file_id' => Str::uuid(),
|
||||
'date_time_original' => $exif->DateTimeOriginal ?? null,
|
||||
'artist' => $exif->OwnerName ?? null,
|
||||
'width' => $exif->COMPUTED->Width ?? null,
|
||||
@@ -53,8 +52,6 @@ class StoreExifDataAction
|
||||
'latitude_ref' => $exif->GPSLatitudeRef ?? null,
|
||||
]);
|
||||
} catch (Exception $error) {
|
||||
Log::error('Unable to get exif data');
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace Domain\Files\Controllers;
|
||||
|
||||
use Storage;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
@@ -42,8 +44,14 @@ class UploadFileController extends Controller
|
||||
->user
|
||||
: auth()->user();
|
||||
|
||||
// Get file name
|
||||
$name = Str::uuid() . '.' . $request->input('extension');
|
||||
|
||||
// Move file to user directory
|
||||
Storage::disk('local')->move($chunkPath, "files/$user->id/$name");
|
||||
|
||||
// Process file
|
||||
$file = ($this->processFie)($request, $user, $chunkPath);
|
||||
$file = ($this->processFie)($request, $user, $name);
|
||||
|
||||
return response(new FileResource($file), 201);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace Domain\Files\Controllers;
|
||||
|
||||
use Str;
|
||||
use Storage;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
@@ -53,8 +55,14 @@ class VisitorUploadFileController extends Controller
|
||||
|
||||
// Proceed after last chunk
|
||||
if ($request->boolean('is_last')) {
|
||||
// Get file name
|
||||
$name = Str::uuid() . '.' . $request->input('extension');
|
||||
|
||||
// Move file to user directory
|
||||
Storage::disk('local')->move($chunkPath, "files/{$shared->user->id}/$name");
|
||||
|
||||
// Process file
|
||||
$file = ($this->processFie)($request, $shared->user, $chunkPath);
|
||||
$file = ($this->processFie)($request, $shared->user, $name);
|
||||
|
||||
// Set public access url
|
||||
$file->setSharedPublicUrl($shared->token);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Localization\Actions;
|
||||
|
||||
use DB;
|
||||
use Artisan;
|
||||
|
||||
class UpdateLanguageTranslationsAction
|
||||
{
|
||||
@@ -10,9 +11,11 @@ class UpdateLanguageTranslationsAction
|
||||
collect($list)
|
||||
->each(
|
||||
fn (...$item) => DB::table('language_translations')
|
||||
->where('lang', 'en')
|
||||
->where('key', $item[1])
|
||||
->update(['value' => $item[0]])
|
||||
->where('lang', 'en')
|
||||
->where('key', $item[1])
|
||||
->update(['value' => $item[0]])
|
||||
);
|
||||
|
||||
Artisan::call('cache:clear');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
namespace Domain\Settings\Actions;
|
||||
|
||||
use ErrorException;
|
||||
use VueFileManager\Subscription\Support\EngineManager;
|
||||
use VueFileManager\Subscription\Domain\Plans\DTO\CreateFixedPlanData;
|
||||
|
||||
class TestPayPalConnectionAction
|
||||
{
|
||||
public function __construct(
|
||||
public EngineManager $subscription
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke($credentials)
|
||||
{
|
||||
try {
|
||||
// Set temporary stripe connection
|
||||
config([
|
||||
'subscription.credentials.paypal' => [
|
||||
'secret' => $credentials['secret'],
|
||||
'id' => $credentials['key'],
|
||||
'webhook_id' => $credentials['webhook'],
|
||||
'is_live' => $credentials['live'],
|
||||
],
|
||||
]);
|
||||
|
||||
// Define test plan
|
||||
$data = CreateFixedPlanData::fromArray([
|
||||
'type' => 'fixed',
|
||||
'name' => 'Test Plan',
|
||||
'description' => null,
|
||||
'features' => [
|
||||
'max_storage_amount' => 200,
|
||||
'max_team_members' => 20,
|
||||
],
|
||||
'currency' => 'EUR',
|
||||
'amount' => 99,
|
||||
'interval' => 'month',
|
||||
]);
|
||||
|
||||
// Create test plan
|
||||
$plan = $this->subscription
|
||||
->driver('paypal')
|
||||
->createFixedPlan($data);
|
||||
|
||||
// Delete plan
|
||||
$this->subscription
|
||||
->driver('paypal')
|
||||
->deletePlan($plan['id']);
|
||||
} catch (ErrorException $error) {
|
||||
abort(
|
||||
response()->json([
|
||||
'type' => 'service-connection-error',
|
||||
'title' => 'Service Connection Error',
|
||||
'message' => $error->getMessage(),
|
||||
], 401)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace Domain\Settings\Actions;
|
||||
|
||||
use ErrorException;
|
||||
use VueFileManager\Subscription\Support\EngineManager;
|
||||
use VueFileManager\Subscription\Domain\Plans\DTO\CreateFixedPlanData;
|
||||
|
||||
class TestPaystackConnectionAction
|
||||
{
|
||||
public function __construct(
|
||||
public EngineManager $subscription
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke($credentials)
|
||||
{
|
||||
try {
|
||||
// Set temporary paystack connection
|
||||
config([
|
||||
'subscription.credentials.paystack' => [
|
||||
'secret' => $credentials['secret'],
|
||||
'public_key' => $credentials['key'],
|
||||
],
|
||||
]);
|
||||
|
||||
// Define test plan
|
||||
$data = CreateFixedPlanData::fromArray([
|
||||
'type' => 'fixed',
|
||||
'name' => 'Test Plan',
|
||||
'description' => null,
|
||||
'features' => [
|
||||
'max_storage_amount' => 200,
|
||||
'max_team_members' => 20,
|
||||
],
|
||||
'currency' => 'ZAR',
|
||||
'amount' => 99999,
|
||||
'interval' => 'month',
|
||||
]);
|
||||
|
||||
// Create test plan
|
||||
$plan = $this->subscription
|
||||
->driver('paystack')
|
||||
->createFixedPlan($data);
|
||||
|
||||
// Delete plan
|
||||
$this->subscription
|
||||
->driver('paystack')
|
||||
->deletePlan($plan['id']);
|
||||
} catch (ErrorException $error) {
|
||||
abort(
|
||||
response()->json([
|
||||
'type' => 'service-connection-error',
|
||||
'title' => 'Service Connection Error',
|
||||
'message' => $error->getMessage(),
|
||||
], 401)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
namespace Domain\Settings\Actions;
|
||||
|
||||
use ErrorException;
|
||||
use VueFileManager\Subscription\Support\EngineManager;
|
||||
use VueFileManager\Subscription\Domain\Plans\DTO\CreateFixedPlanData;
|
||||
|
||||
class TestStripeConnectionAction
|
||||
{
|
||||
public function __construct(
|
||||
public EngineManager $subscription
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke($credentials)
|
||||
{
|
||||
try {
|
||||
// Set temporary stripe connection
|
||||
config([
|
||||
'subscription.credentials.stripe' => [
|
||||
'secret' => $credentials['secret'],
|
||||
'public_key' => $credentials['key'],
|
||||
'webhook_key' => $credentials['webhook'],
|
||||
],
|
||||
]);
|
||||
|
||||
// Define test plan
|
||||
$data = CreateFixedPlanData::fromArray([
|
||||
'type' => 'fixed',
|
||||
'name' => 'Test Plan',
|
||||
'description' => null,
|
||||
'features' => [
|
||||
'max_storage_amount' => 200,
|
||||
'max_team_members' => 20,
|
||||
],
|
||||
'currency' => 'EUR',
|
||||
'amount' => 99,
|
||||
'interval' => 'month',
|
||||
]);
|
||||
|
||||
// Create test plan
|
||||
$plan = $this->subscription
|
||||
->driver('stripe')
|
||||
->createFixedPlan($data);
|
||||
|
||||
// Delete plan
|
||||
$this->subscription
|
||||
->driver('stripe')
|
||||
->deletePlan($plan['id']);
|
||||
} catch (ErrorException $error) {
|
||||
abort(
|
||||
response()->json([
|
||||
'type' => 'service-connection-error',
|
||||
'title' => 'Service Connection Error',
|
||||
'message' => $error->getMessage(),
|
||||
], 401)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ class StoreBroadcastServiceCredentialsController
|
||||
'PUSHER_APP_CLUSTER' => $request->input('cluster'),
|
||||
'PUSHER_APP_HOST' => '',
|
||||
'PUSHER_APP_PORT' => '',
|
||||
'PUSHER_APP_TLS' => true,
|
||||
'PUSHER_APP_TLS' => 'true',
|
||||
],
|
||||
'native' => [
|
||||
'BROADCAST_DRIVER' => 'pusher',
|
||||
|
||||
@@ -4,10 +4,20 @@ namespace Domain\Settings\Controllers;
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Domain\Settings\Actions\TestPayPalConnectionAction;
|
||||
use Domain\Settings\Actions\TestStripeConnectionAction;
|
||||
use Domain\Settings\Actions\TestPaystackConnectionAction;
|
||||
use Domain\Settings\Requests\StorePaymentServiceCredentialsRequest;
|
||||
|
||||
class StorePaymentServiceCredentialsController
|
||||
{
|
||||
public function __construct(
|
||||
public TestPaystackConnectionAction $testPaystackConnection,
|
||||
public TestStripeConnectionAction $testStripeConnection,
|
||||
public TestPayPalConnectionAction $testPayPalConnection,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure stripe additionally
|
||||
*/
|
||||
@@ -43,6 +53,26 @@ class StorePaymentServiceCredentialsController
|
||||
|
||||
// Get and store credentials
|
||||
if (! app()->runningUnitTests()) {
|
||||
// Test payment gateway connection
|
||||
match ($request->input('service')) {
|
||||
'paystack' => ($this->testPaystackConnection)([
|
||||
'key' => $request->input('key'),
|
||||
'secret' => $request->input('secret'),
|
||||
]),
|
||||
'stripe' => ($this->testStripeConnection)([
|
||||
'key' => $request->input('key'),
|
||||
'secret' => $request->input('secret'),
|
||||
'webhook' => $request->input('webhook'),
|
||||
]),
|
||||
'paypal' => ($this->testPayPalConnection)([
|
||||
'key' => $request->input('key'),
|
||||
'secret' => $request->input('secret'),
|
||||
'webhook' => $request->input('webhook'),
|
||||
'live' => $request->has('live') ? (string) $request->input('live') : $PayPalDefaultMode,
|
||||
]),
|
||||
default => null
|
||||
};
|
||||
|
||||
$credentials = [
|
||||
'stripe' => [
|
||||
'STRIPE_PUBLIC_KEY' => $request->input('key'),
|
||||
|
||||
@@ -27,7 +27,7 @@ class StoreDatabaseCredentialsController extends Controller
|
||||
'port' => $request->input('port'),
|
||||
'database' => $request->input('name'),
|
||||
'username' => $request->input('username'),
|
||||
'password' => $request->input('password'),
|
||||
'password' => $request->input('password') ?? '',
|
||||
],
|
||||
]);
|
||||
|
||||
@@ -51,7 +51,7 @@ class StoreDatabaseCredentialsController extends Controller
|
||||
'DB_PORT' => $request->input('port'),
|
||||
'DB_DATABASE' => $request->input('name'),
|
||||
'DB_USERNAME' => $request->input('username'),
|
||||
'DB_PASSWORD' => $request->input('password'),
|
||||
'DB_PASSWORD' => $request->input('password') ?? '',
|
||||
]);
|
||||
|
||||
Artisan::call('config:cache');
|
||||
|
||||
@@ -92,7 +92,7 @@ class StoreEnvironmentSettingsController extends Controller
|
||||
'PUSHER_APP_CLUSTER' => $request->input('broadcast.cluster'),
|
||||
'PUSHER_APP_HOST' => '',
|
||||
'PUSHER_APP_PORT' => '',
|
||||
'PUSHER_APP_TLS' => true,
|
||||
'PUSHER_APP_TLS' => 'true',
|
||||
],
|
||||
'native' => [
|
||||
'BROADCAST_DRIVER' => 'pusher',
|
||||
|
||||
@@ -28,7 +28,7 @@ class StoreDatabaseCredentialsRequest extends FormRequest
|
||||
'port' => 'required|string',
|
||||
'name' => 'required|string',
|
||||
'username' => 'required|string',
|
||||
'password' => 'required|string',
|
||||
'password' => 'nullable|sometimes|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
namespace Domain\UploadRequest\Controllers;
|
||||
|
||||
use DB;
|
||||
use Storage;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
use Domain\Files\Actions\ProcessFileAction;
|
||||
@@ -40,8 +42,14 @@ class UploadFilesForUploadRequestController
|
||||
|
||||
// Proceed after last chunk
|
||||
if ($request->boolean('is_last')) {
|
||||
// Get file name
|
||||
$name = Str::uuid() . '.' . $request->input('extension');
|
||||
|
||||
// Move file to user directory
|
||||
Storage::disk('local')->move($chunkPath, "files/{$uploadRequest->user->id}/$name");
|
||||
|
||||
// Process file
|
||||
$file = ($this->processFie)($request, $uploadRequest->user, $chunkPath);
|
||||
$file = ($this->processFie)($request, $uploadRequest->user, $name);
|
||||
|
||||
// Set public access url
|
||||
$file->setUploadRequestPublicUrl($uploadRequest->id);
|
||||
|
||||
@@ -22,6 +22,13 @@ class UpgradingVersionsController
|
||||
) {
|
||||
}
|
||||
|
||||
public function upgrade_to_2_1_2(): void
|
||||
{
|
||||
($this->updateLanguageStrings)([
|
||||
'allow_recaptcha' => 'Allow ReCaptcha v3',
|
||||
]);
|
||||
}
|
||||
|
||||
public function upgrade_to_2_1_1(): void
|
||||
{
|
||||
($this->upgradeDatabase)();
|
||||
|
||||
@@ -236,9 +236,9 @@ if (! function_exists('setEnvironmentValue')) {
|
||||
if ($keyPosition) {
|
||||
$endOfLinePosition = strpos($str, "\n", $keyPosition);
|
||||
$oldLine = substr($str, $keyPosition, $endOfLinePosition - $keyPosition);
|
||||
$str = str_replace($oldLine, "{$envKey}={$envValue}", $str);
|
||||
$str = str_replace($oldLine, "{$envKey}=\"{$envValue}\"", $str);
|
||||
} else {
|
||||
$str .= "\n$envKey=$envValue";
|
||||
$str .= "\n$envKey=\"$envValue\"";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user