- Storage, users page refactoring

This commit is contained in:
Čarodej
2021-12-21 13:49:37 +01:00
parent f5e182baf6
commit 60b34e53a3
15 changed files with 611 additions and 219 deletions

72
composer.lock generated
View File

@@ -280,16 +280,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.208.5", "version": "3.208.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "58fa9d8b522b0afa260299179ff950c783ff0ee1" "reference": "6154edd0a34db103c69ec15e258ea73e4e45d471"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/58fa9d8b522b0afa260299179ff950c783ff0ee1", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6154edd0a34db103c69ec15e258ea73e4e45d471",
"reference": "58fa9d8b522b0afa260299179ff950c783ff0ee1", "reference": "6154edd0a34db103c69ec15e258ea73e4e45d471",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -365,9 +365,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.208.5" "source": "https://github.com/aws/aws-sdk-php/tree/3.208.6"
}, },
"time": "2021-12-13T20:17:56+00:00" "time": "2021-12-20T19:17:52+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@@ -2655,16 +2655,16 @@
}, },
{ {
"name": "intervention/image", "name": "intervention/image",
"version": "2.7.0", "version": "2.7.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Intervention/image.git", "url": "https://github.com/Intervention/image.git",
"reference": "9a8cc99d30415ec0b3f7649e1647d03a55698545" "reference": "744ebba495319501b873a4e48787759c72e3fb8c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Intervention/image/zipball/9a8cc99d30415ec0b3f7649e1647d03a55698545", "url": "https://api.github.com/repos/Intervention/image/zipball/744ebba495319501b873a4e48787759c72e3fb8c",
"reference": "9a8cc99d30415ec0b3f7649e1647d03a55698545", "reference": "744ebba495319501b873a4e48787759c72e3fb8c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2723,7 +2723,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/Intervention/image/issues", "issues": "https://github.com/Intervention/image/issues",
"source": "https://github.com/Intervention/image/tree/2.7.0" "source": "https://github.com/Intervention/image/tree/2.7.1"
}, },
"funding": [ "funding": [
{ {
@@ -2735,7 +2735,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-10-03T14:17:12+00:00" "time": "2021-12-16T16:49:26+00:00"
}, },
{ {
"name": "jaybizzle/crawler-detect", "name": "jaybizzle/crawler-detect",
@@ -2983,16 +2983,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v8.75.0", "version": "v8.76.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "0bb91d3176357da232da69762a64b0e0a0988637" "reference": "c67acfdc968f487b6235435080eef62a7e2ed055"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/0bb91d3176357da232da69762a64b0e0a0988637", "url": "https://api.github.com/repos/laravel/framework/zipball/c67acfdc968f487b6235435080eef62a7e2ed055",
"reference": "0bb91d3176357da232da69762a64b0e0a0988637", "reference": "c67acfdc968f487b6235435080eef62a7e2ed055",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3151,20 +3151,20 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-12-07T14:55:46+00:00" "time": "2021-12-15T14:02:14+00:00"
}, },
{ {
"name": "laravel/sanctum", "name": "laravel/sanctum",
"version": "v2.12.2", "version": "v2.13.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/sanctum.git", "url": "https://github.com/laravel/sanctum.git",
"reference": "76b2d552c00477d520338889160f80a0cfb5fc55" "reference": "b4c07d0014b78430a3c827064217f811f0708eaa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/sanctum/zipball/76b2d552c00477d520338889160f80a0cfb5fc55", "url": "https://api.github.com/repos/laravel/sanctum/zipball/b4c07d0014b78430a3c827064217f811f0708eaa",
"reference": "76b2d552c00477d520338889160f80a0cfb5fc55", "reference": "b4c07d0014b78430a3c827064217f811f0708eaa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3215,20 +3215,20 @@
"issues": "https://github.com/laravel/sanctum/issues", "issues": "https://github.com/laravel/sanctum/issues",
"source": "https://github.com/laravel/sanctum" "source": "https://github.com/laravel/sanctum"
}, },
"time": "2021-11-16T16:57:07+00:00" "time": "2021-12-14T17:49:47+00:00"
}, },
{ {
"name": "laravel/scout", "name": "laravel/scout",
"version": "v9.3.2", "version": "v9.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/scout.git", "url": "https://github.com/laravel/scout.git",
"reference": "0137c70efb164eeeb8115a9ebb1517263b6a64ac" "reference": "f8ddbc4c2a16da1a466df648c784b5771e6fb31e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/scout/zipball/0137c70efb164eeeb8115a9ebb1517263b6a64ac", "url": "https://api.github.com/repos/laravel/scout/zipball/f8ddbc4c2a16da1a466df648c784b5771e6fb31e",
"reference": "0137c70efb164eeeb8115a9ebb1517263b6a64ac", "reference": "f8ddbc4c2a16da1a466df648c784b5771e6fb31e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3287,7 +3287,7 @@
"issues": "https://github.com/laravel/scout/issues", "issues": "https://github.com/laravel/scout/issues",
"source": "https://github.com/laravel/scout" "source": "https://github.com/laravel/scout"
}, },
"time": "2021-11-16T16:59:12+00:00" "time": "2021-12-14T17:46:45+00:00"
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
@@ -3991,7 +3991,7 @@
"dist": { "dist": {
"type": "path", "type": "path",
"url": "../../PhpstormProjects/subscription", "url": "../../PhpstormProjects/subscription",
"reference": "1020aeafe8851d70db318d34ebdf276c1242e6bd" "reference": "cb13ab46e32d789ffad8ea909a26ab18496b9e1f"
}, },
"require": { "require": {
"friendsofphp/php-cs-fixer": "^3.3.2", "friendsofphp/php-cs-fixer": "^3.3.2",
@@ -7713,16 +7713,16 @@
}, },
{ {
"name": "spatie/laravel-package-tools", "name": "spatie/laravel-package-tools",
"version": "1.9.2", "version": "1.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/laravel-package-tools.git", "url": "https://github.com/spatie/laravel-package-tools.git",
"reference": "f710fe196c126fb9e0aee67eb5af49ad8f13f528" "reference": "97c24d0bc58e04d55e4a6a7b6d6102cb45b75789"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/f710fe196c126fb9e0aee67eb5af49ad8f13f528", "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/97c24d0bc58e04d55e4a6a7b6d6102cb45b75789",
"reference": "f710fe196c126fb9e0aee67eb5af49ad8f13f528", "reference": "97c24d0bc58e04d55e4a6a7b6d6102cb45b75789",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7731,8 +7731,8 @@
}, },
"require-dev": { "require-dev": {
"mockery/mockery": "^1.4", "mockery/mockery": "^1.4",
"orchestra/testbench": "^5.0|^6.0", "orchestra/testbench": "^5.0|^6.23",
"phpunit/phpunit": "^9.3", "phpunit/phpunit": "^9.4",
"spatie/test-time": "^1.2" "spatie/test-time": "^1.2"
}, },
"type": "library", "type": "library",
@@ -7761,7 +7761,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/spatie/laravel-package-tools/issues", "issues": "https://github.com/spatie/laravel-package-tools/issues",
"source": "https://github.com/spatie/laravel-package-tools/tree/1.9.2" "source": "https://github.com/spatie/laravel-package-tools/tree/1.10.0"
}, },
"funding": [ "funding": [
{ {
@@ -7769,7 +7769,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-09-21T13:06:51+00:00" "time": "2021-12-18T20:33:51+00:00"
}, },
{ {
"name": "spatie/laravel-query-builder", "name": "spatie/laravel-query-builder",

View File

@@ -635,7 +635,7 @@ return [
'user_box_password.title' => 'Change User Password', 'user_box_password.title' => 'Change User Password',
'user_box_role.description' => 'You can change role for current user. Admin role can edit or create new users, change storage capacity and any other application settings.', 'user_box_role.description' => 'You can change role for current user. Admin role can edit or create new users, change storage capacity and any other application settings.',
'user_box_role.title' => 'Change User Role', 'user_box_role.title' => 'Change User Role',
'user_box_storage.description' => "Change user storage capacity by input bellow. You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.", 'user_box_storage.description' => "Change user storage capacity by input above. You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
'user_box_storage.title' => 'Change User Storage Capacity', 'user_box_storage.title' => 'Change User Storage Capacity',
'user_password.title' => 'Change Your Password', 'user_password.title' => 'Change Your Password',
'user_settings.address' => 'Address', 'user_settings.address' => 'Address',

View File

@@ -2,7 +2,7 @@
"/js/main.js": "/js/main.js", "/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css", "/css/app.css": "/css/app.css",
"/css/tailwind.css": "/css/tailwind.css", "/css/tailwind.css": "/css/tailwind.css",
"/chunks/admin.js": "/chunks/admin.js?id=436b6fedf7f534eccaad", "/chunks/admin.js": "/chunks/admin.js?id=5014620eaa736d4d5cd7",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=759433a182f73618e9f4", "/chunks/admin-account.js": "/chunks/admin-account.js?id=759433a182f73618e9f4",
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=b6966627bd253eda63ba", "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=b6966627bd253eda63ba",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=d7a8e5b5b913858da427", "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=d7a8e5b5b913858da427",
@@ -12,9 +12,9 @@
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js?id=e2d818009a4e2c1fffdf", "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js?id=e2d818009a4e2c1fffdf",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js?id=510e6c1b1017a73a40a6", "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js?id=510e6c1b1017a73a40a6",
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=917aab9de16d3eb7039a", "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=917aab9de16d3eb7039a",
"/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=817867c331fb3943f0ff", "/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=fc826cd2543dfefc4bd3",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=8e89d2271b17b2d78177", "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=8e89d2271b17b2d78177",
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=0d6c4be667e46ea1303e", "/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=37121892ebaeb6d8986a",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=6035ca411b2c4239d964", "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=6035ca411b2c4239d964",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~5acee76d.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~5acee76d.js?id=b72bbc2e750c80377527", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~5acee76d.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~5acee76d.js?id=b72bbc2e750c80377527",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~fa9d08c1.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~fa9d08c1.js?id=741acf06489eac45774e", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~fa9d08c1.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~fa9d08c1.js?id=741acf06489eac45774e",
@@ -71,7 +71,7 @@
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=d3443e79b667f5b4b1d2", "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=d3443e79b667f5b4b1d2",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=049c3383e310392f966d", "/chunks/settings-password.js": "/chunks/settings-password.js?id=049c3383e310392f966d",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=093cc2fd918ee6a340d3", "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=093cc2fd918ee6a340d3",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=8ec1afafac5dcd26ae25", "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=05450719ccf4a5bf4fa9",
"/chunks/settings-storage~chunks/settings-subscription~chunks/user-storage~chunks/user-subscription.js": "/chunks/settings-storage~chunks/settings-subscription~chunks/user-storage~chunks/user-subscription.js?id=147afaac8c8bacfe6433", "/chunks/settings-storage~chunks/settings-subscription~chunks/user-storage~chunks/user-subscription.js": "/chunks/settings-storage~chunks/settings-subscription~chunks/user-storage~chunks/user-subscription.js?id=147afaac8c8bacfe6433",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=e2717eb836e334b41976", "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=e2717eb836e334b41976",
"/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=c33cd2341b9b04a732e5", "/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=c33cd2341b9b04a732e5",
@@ -94,19 +94,245 @@
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=b76762021d29da7cff97", "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=b76762021d29da7cff97",
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=8bd237c632018a537d76", "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=8bd237c632018a537d76",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=7ee9b84ffed9bf544997", "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=7ee9b84ffed9bf544997",
"/chunks/user.js": "/chunks/user.js?id=39f6998654fb8de52458", "/chunks/user.js": "/chunks/user.js?id=80d4433e6a0f1a2a940d",
"/chunks/user-create.js": "/chunks/user-create.js?id=6ec0f7a5f0166dbe52fd", "/chunks/user-create.js": "/chunks/user-create.js?id=6ec0f7a5f0166dbe52fd",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=97b9567df09384f7d303", "/chunks/user-delete.js": "/chunks/user-delete.js?id=97b9567df09384f7d303",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=a55ae1a545a65b92511d", "/chunks/user-detail.js": "/chunks/user-detail.js?id=51e4b17ff373d4e39a2c",
"/chunks/user-password.js": "/chunks/user-password.js?id=ce6c12a5b038f5481bd1", "/chunks/user-password.js": "/chunks/user-password.js?id=ce6c12a5b038f5481bd1",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=79173e014b57c893f4be", "/chunks/user-storage.js": "/chunks/user-storage.js?id=936f120357a4480e1bd5",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=15afb8585f5bd23d0f4b", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=15afb8585f5bd23d0f4b",
"/chunks/users.js": "/chunks/users.js?id=2ed4763745592f464cc2", "/chunks/users.js": "/chunks/users.js?id=ab7eeac6e8559dc1eb2b",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~35bc7519.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~35bc7519.js?id=ae06aafc3749254fe4aa", "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~35bc7519.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~35bc7519.js?id=ae06aafc3749254fe4aa",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~629342a0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~629342a0.js?id=cdefaa7800d04dafb07b", "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~629342a0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~629342a0.js?id=cdefaa7800d04dafb07b",
"/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js": "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js?id=37ce1e1ab9968c100712", "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js": "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js?id=37ce1e1ab9968c100712",
"/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=a0fa80db175709ba340a", "/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=a0fa80db175709ba340a",
"/vendors~chunks/settings.js": "/vendors~chunks/settings.js?id=0ad6bf4acae70c329adf", "/vendors~chunks/settings.js": "/vendors~chunks/settings.js?id=0ad6bf4acae70c329adf",
"/chunks/settings.3d3ecfe61247db4267d7.hot-update.js": "/chunks/settings.3d3ecfe61247db4267d7.hot-update.js", "/chunks/settings.3d3ecfe61247db4267d7.hot-update.js": "/chunks/settings.3d3ecfe61247db4267d7.hot-update.js",
"/chunks/user.44cb1ead006685aa0e46.hot-update.js": "/chunks/user.44cb1ead006685aa0e46.hot-update.js" "/chunks/user.44cb1ead006685aa0e46.hot-update.js": "/chunks/user.44cb1ead006685aa0e46.hot-update.js",
"/js/main.3c904c74f833ee843e54.hot-update.js": "/js/main.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin.3c904c74f833ee843e54.hot-update.js": "/chunks/admin.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin-account.3c904c74f833ee843e54.hot-update.js": "/chunks/admin-account.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.3c904c74f833ee843e54.hot-update.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/files~chunks/invitation~chunks/my-shared-items~chunks/platform~chunks/recent-upl~dfa67595.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/files~chunks/invitation~chunks/my-shared-items~chunks/platform~chunks/recent-upl~dfa67595.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/platform.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/platform.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings.3c904c74f833ee843e54.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.3c904c74f833ee843e54.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-appearance.3c904c74f833ee843e54.hot-update.js": "/chunks/app-appearance.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=aa284736dda7647d5c9e",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=6bd4516589f23ec25ae6",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=b1123c792a51f9b3ec11",
"/chunks/app-billings.3c904c74f833ee843e54.hot-update.js": "/chunks/app-billings.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-email.3c904c74f833ee843e54.hot-update.js": "/chunks/app-email.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-index.3c904c74f833ee843e54.hot-update.js": "/chunks/app-index.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-language.3c904c74f833ee843e54.hot-update.js": "/chunks/app-language.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js?id=38b2085e829a84df0e5f",
"/chunks/app-others.3c904c74f833ee843e54.hot-update.js": "/chunks/app-others.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-payments.3c904c74f833ee843e54.hot-update.js": "/chunks/app-payments.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-settings.3c904c74f833ee843e54.hot-update.js": "/chunks/app-settings.3c904c74f833ee843e54.hot-update.js",
"/chunks/app-setup.3c904c74f833ee843e54.hot-update.js": "/chunks/app-setup.3c904c74f833ee843e54.hot-update.js",
"/chunks/billings-detail.3c904c74f833ee843e54.hot-update.js": "/chunks/billings-detail.3c904c74f833ee843e54.hot-update.js",
"/chunks/contact-us.3c904c74f833ee843e54.hot-update.js": "/chunks/contact-us.3c904c74f833ee843e54.hot-update.js",
"/chunks/create-new-password.3c904c74f833ee843e54.hot-update.js": "/chunks/create-new-password.3c904c74f833ee843e54.hot-update.js",
"/chunks/dashboard.3c904c74f833ee843e54.hot-update.js": "/chunks/dashboard.3c904c74f833ee843e54.hot-update.js",
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=0391ad036c47d999f159",
"/chunks/database.3c904c74f833ee843e54.hot-update.js": "/chunks/database.3c904c74f833ee843e54.hot-update.js",
"/chunks/environment-setup.3c904c74f833ee843e54.hot-update.js": "/chunks/environment-setup.3c904c74f833ee843e54.hot-update.js",
"/chunks/files.3c904c74f833ee843e54.hot-update.js": "/chunks/files.3c904c74f833ee843e54.hot-update.js",
"/chunks/forgotten-password.3c904c74f833ee843e54.hot-update.js": "/chunks/forgotten-password.3c904c74f833ee843e54.hot-update.js",
"/chunks/installation-disclaimer.3c904c74f833ee843e54.hot-update.js": "/chunks/installation-disclaimer.3c904c74f833ee843e54.hot-update.js",
"/chunks/invoices.3c904c74f833ee843e54.hot-update.js": "/chunks/invoices.3c904c74f833ee843e54.hot-update.js",
"/chunks/my-shared-items.3c904c74f833ee843e54.hot-update.js": "/chunks/my-shared-items.3c904c74f833ee843e54.hot-update.js",
"/chunks/page-edit.3c904c74f833ee843e54.hot-update.js": "/chunks/page-edit.3c904c74f833ee843e54.hot-update.js",
"/chunks/pages.3c904c74f833ee843e54.hot-update.js": "/chunks/pages.3c904c74f833ee843e54.hot-update.js",
"/chunks/plan.3c904c74f833ee843e54.hot-update.js": "/chunks/plan.3c904c74f833ee843e54.hot-update.js",
"/chunks/plan-create.3c904c74f833ee843e54.hot-update.js": "/chunks/plan-create.3c904c74f833ee843e54.hot-update.js",
"/chunks/plan-delete.3c904c74f833ee843e54.hot-update.js": "/chunks/plan-delete.3c904c74f833ee843e54.hot-update.js",
"/chunks/plan-settings.3c904c74f833ee843e54.hot-update.js": "/chunks/plan-settings.3c904c74f833ee843e54.hot-update.js",
"/chunks/plan-subscribers.3c904c74f833ee843e54.hot-update.js": "/chunks/plan-subscribers.3c904c74f833ee843e54.hot-update.js",
"/chunks/plans.3c904c74f833ee843e54.hot-update.js": "/chunks/plans.3c904c74f833ee843e54.hot-update.js",
"/chunks/platform.3c904c74f833ee843e54.hot-update.js": "/chunks/platform.3c904c74f833ee843e54.hot-update.js",
"/chunks/platform~chunks/settings-subscription~chunks/shared~chunks/user-subscription.js": "/chunks/platform~chunks/settings-subscription~chunks/shared~chunks/user-subscription.js?id=8656b69a97cace919251",
"/chunks/platform~chunks/shared.3c904c74f833ee843e54.hot-update.js": "/chunks/platform~chunks/shared.3c904c74f833ee843e54.hot-update.js",
"/chunks/profile.3c904c74f833ee843e54.hot-update.js": "/chunks/profile.3c904c74f833ee843e54.hot-update.js",
"/chunks/profile~chunks/settings-password.3c904c74f833ee843e54.hot-update.js": "/chunks/profile~chunks/settings-password.3c904c74f833ee843e54.hot-update.js",
"/chunks/purchase-code.3c904c74f833ee843e54.hot-update.js": "/chunks/purchase-code.3c904c74f833ee843e54.hot-update.js",
"/chunks/recent-uploads.3c904c74f833ee843e54.hot-update.js": "/chunks/recent-uploads.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings.3c904c74f833ee843e54.hot-update.js": "/chunks/settings.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings-create-payment-methods.3c904c74f833ee843e54.hot-update.js": "/chunks/settings-create-payment-methods.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=a9a6286b9a416c949003",
"/chunks/settings-password.3c904c74f833ee843e54.hot-update.js": "/chunks/settings-password.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings-payment-methods.3c904c74f833ee843e54.hot-update.js": "/chunks/settings-payment-methods.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings-storage.3c904c74f833ee843e54.hot-update.js": "/chunks/settings-storage.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings-subscription.3c904c74f833ee843e54.hot-update.js": "/chunks/settings-subscription.3c904c74f833ee843e54.hot-update.js",
"/chunks/settings~chunks/settings-password.3c904c74f833ee843e54.hot-update.js": "/chunks/settings~chunks/settings-password.3c904c74f833ee843e54.hot-update.js",
"/chunks/shared-with-me.3c904c74f833ee843e54.hot-update.js": "/chunks/shared-with-me.3c904c74f833ee843e54.hot-update.js",
"/chunks/shared/authenticate.3c904c74f833ee843e54.hot-update.js": "/chunks/shared/authenticate.3c904c74f833ee843e54.hot-update.js",
"/chunks/shared/files.3c904c74f833ee843e54.hot-update.js": "/chunks/shared/files.3c904c74f833ee843e54.hot-update.js",
"/chunks/sign-in.3c904c74f833ee843e54.hot-update.js": "/chunks/sign-in.3c904c74f833ee843e54.hot-update.js",
"/chunks/sign-up.3c904c74f833ee843e54.hot-update.js": "/chunks/sign-up.3c904c74f833ee843e54.hot-update.js",
"/chunks/status-check.3c904c74f833ee843e54.hot-update.js": "/chunks/status-check.3c904c74f833ee843e54.hot-update.js",
"/chunks/stripe-credentials.3c904c74f833ee843e54.hot-update.js": "/chunks/stripe-credentials.3c904c74f833ee843e54.hot-update.js",
"/chunks/subscription-plans.3c904c74f833ee843e54.hot-update.js": "/chunks/subscription-plans.3c904c74f833ee843e54.hot-update.js",
"/chunks/team-folders.3c904c74f833ee843e54.hot-update.js": "/chunks/team-folders.3c904c74f833ee843e54.hot-update.js",
"/chunks/trash.3c904c74f833ee843e54.hot-update.js": "/chunks/trash.3c904c74f833ee843e54.hot-update.js",
"/chunks/upgrade-billing.3c904c74f833ee843e54.hot-update.js": "/chunks/upgrade-billing.3c904c74f833ee843e54.hot-update.js",
"/chunks/upgrade-billing~chunks/upgrade-plan.3c904c74f833ee843e54.hot-update.js": "/chunks/upgrade-billing~chunks/upgrade-plan.3c904c74f833ee843e54.hot-update.js",
"/chunks/upgrade-plan.3c904c74f833ee843e54.hot-update.js": "/chunks/upgrade-plan.3c904c74f833ee843e54.hot-update.js",
"/chunks/user.3c904c74f833ee843e54.hot-update.js": "/chunks/user.3c904c74f833ee843e54.hot-update.js",
"/chunks/user-create.3c904c74f833ee843e54.hot-update.js": "/chunks/user-create.3c904c74f833ee843e54.hot-update.js",
"/chunks/user-delete.3c904c74f833ee843e54.hot-update.js": "/chunks/user-delete.3c904c74f833ee843e54.hot-update.js",
"/chunks/user-detail.3c904c74f833ee843e54.hot-update.js": "/chunks/user-detail.3c904c74f833ee843e54.hot-update.js",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=386719adbd52708773ba",
"/chunks/user-password.3c904c74f833ee843e54.hot-update.js": "/chunks/user-password.3c904c74f833ee843e54.hot-update.js",
"/chunks/user-storage.3c904c74f833ee843e54.hot-update.js": "/chunks/user-storage.3c904c74f833ee843e54.hot-update.js",
"/chunks/user-subscription.3c904c74f833ee843e54.hot-update.js": "/chunks/user-subscription.3c904c74f833ee843e54.hot-update.js",
"/chunks/users.3c904c74f833ee843e54.hot-update.js": "/chunks/users.3c904c74f833ee843e54.hot-update.js",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~24b428d3.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~24b428d3.js?id=ee89932f7ee76e74483e",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~b505e62a.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~b505e62a.js?id=8163e0eab55c50f8afb8",
"/js/main.2eb9d4674e36ef08db90.hot-update.js": "/js/main.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin-account.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin-account.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/files~chunks/invitation~chunks/my-shared-items~chunks/platform~chunks/recent-upl~dfa67595.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/files~chunks/invitation~chunks/my-shared-items~chunks/platform~chunks/recent-upl~dfa67595.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/platform.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/platform.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.2eb9d4674e36ef08db90.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-appearance.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-appearance.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-billings.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-billings.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-email.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-email.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-index.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-index.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-language.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-language.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-others.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-others.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-payments.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-payments.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-settings.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-settings.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/app-setup.2eb9d4674e36ef08db90.hot-update.js": "/chunks/app-setup.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/billings-detail.2eb9d4674e36ef08db90.hot-update.js": "/chunks/billings-detail.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/contact-us.2eb9d4674e36ef08db90.hot-update.js": "/chunks/contact-us.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/create-new-password.2eb9d4674e36ef08db90.hot-update.js": "/chunks/create-new-password.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/dashboard.2eb9d4674e36ef08db90.hot-update.js": "/chunks/dashboard.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/database.2eb9d4674e36ef08db90.hot-update.js": "/chunks/database.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/environment-setup.2eb9d4674e36ef08db90.hot-update.js": "/chunks/environment-setup.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/files.2eb9d4674e36ef08db90.hot-update.js": "/chunks/files.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/forgotten-password.2eb9d4674e36ef08db90.hot-update.js": "/chunks/forgotten-password.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/installation-disclaimer.2eb9d4674e36ef08db90.hot-update.js": "/chunks/installation-disclaimer.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/invoices.2eb9d4674e36ef08db90.hot-update.js": "/chunks/invoices.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/my-shared-items.2eb9d4674e36ef08db90.hot-update.js": "/chunks/my-shared-items.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/page-edit.2eb9d4674e36ef08db90.hot-update.js": "/chunks/page-edit.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/pages.2eb9d4674e36ef08db90.hot-update.js": "/chunks/pages.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/plan.2eb9d4674e36ef08db90.hot-update.js": "/chunks/plan.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/plan-create.2eb9d4674e36ef08db90.hot-update.js": "/chunks/plan-create.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/plan-delete.2eb9d4674e36ef08db90.hot-update.js": "/chunks/plan-delete.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/plan-settings.2eb9d4674e36ef08db90.hot-update.js": "/chunks/plan-settings.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/plan-subscribers.2eb9d4674e36ef08db90.hot-update.js": "/chunks/plan-subscribers.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/plans.2eb9d4674e36ef08db90.hot-update.js": "/chunks/plans.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/platform.2eb9d4674e36ef08db90.hot-update.js": "/chunks/platform.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/platform~chunks/shared.2eb9d4674e36ef08db90.hot-update.js": "/chunks/platform~chunks/shared.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/profile.2eb9d4674e36ef08db90.hot-update.js": "/chunks/profile.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/profile~chunks/settings-password.2eb9d4674e36ef08db90.hot-update.js": "/chunks/profile~chunks/settings-password.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/purchase-code.2eb9d4674e36ef08db90.hot-update.js": "/chunks/purchase-code.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/recent-uploads.2eb9d4674e36ef08db90.hot-update.js": "/chunks/recent-uploads.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings-create-payment-methods.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings-create-payment-methods.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings-password.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings-password.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings-payment-methods.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings-payment-methods.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings-storage.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings-storage.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings-subscription.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings-subscription.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/settings~chunks/settings-password.2eb9d4674e36ef08db90.hot-update.js": "/chunks/settings~chunks/settings-password.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/shared-with-me.2eb9d4674e36ef08db90.hot-update.js": "/chunks/shared-with-me.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/shared/authenticate.2eb9d4674e36ef08db90.hot-update.js": "/chunks/shared/authenticate.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/shared/files.2eb9d4674e36ef08db90.hot-update.js": "/chunks/shared/files.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/sign-in.2eb9d4674e36ef08db90.hot-update.js": "/chunks/sign-in.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/sign-up.2eb9d4674e36ef08db90.hot-update.js": "/chunks/sign-up.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/status-check.2eb9d4674e36ef08db90.hot-update.js": "/chunks/status-check.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/stripe-credentials.2eb9d4674e36ef08db90.hot-update.js": "/chunks/stripe-credentials.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/subscription-plans.2eb9d4674e36ef08db90.hot-update.js": "/chunks/subscription-plans.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/team-folders.2eb9d4674e36ef08db90.hot-update.js": "/chunks/team-folders.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/trash.2eb9d4674e36ef08db90.hot-update.js": "/chunks/trash.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/upgrade-billing.2eb9d4674e36ef08db90.hot-update.js": "/chunks/upgrade-billing.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/upgrade-billing~chunks/upgrade-plan.2eb9d4674e36ef08db90.hot-update.js": "/chunks/upgrade-billing~chunks/upgrade-plan.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/upgrade-plan.2eb9d4674e36ef08db90.hot-update.js": "/chunks/upgrade-plan.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user-create.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user-create.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user-delete.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user-delete.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user-detail.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user-detail.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user-password.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user-password.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user-storage.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user-storage.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/user-subscription.2eb9d4674e36ef08db90.hot-update.js": "/chunks/user-subscription.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/users.2eb9d4674e36ef08db90.hot-update.js": "/chunks/users.2eb9d4674e36ef08db90.hot-update.js",
"/chunks/subscriptions.b326c6aaa7605a91753d.hot-update.js": "/chunks/subscriptions.b326c6aaa7605a91753d.hot-update.js",
"/chunks/subscriptions.253c8ec8d6eba1dfa7bd.hot-update.js": "/chunks/subscriptions.253c8ec8d6eba1dfa7bd.hot-update.js",
"/chunks/admin.26c2af66f0df12a585ba.hot-update.js": "/chunks/admin.26c2af66f0df12a585ba.hot-update.js",
"/chunks/admin.747a1fbeacd6e958db87.hot-update.js": "/chunks/admin.747a1fbeacd6e958db87.hot-update.js",
"/chunks/admin.a909cf51c9059f2e3327.hot-update.js": "/chunks/admin.a909cf51c9059f2e3327.hot-update.js",
"/chunks/admin.4994dcc5d2fefdd4215f.hot-update.js": "/chunks/admin.4994dcc5d2fefdd4215f.hot-update.js",
"/chunks/admin.0746ec28d89d68ad24b8.hot-update.js": "/chunks/admin.0746ec28d89d68ad24b8.hot-update.js",
"/chunks/admin.ea205db0d156845284f2.hot-update.js": "/chunks/admin.ea205db0d156845284f2.hot-update.js",
"/chunks/admin.a57465888b0afc225562.hot-update.js": "/chunks/admin.a57465888b0afc225562.hot-update.js",
"/chunks/admin~chunks/platform~chunks/shared.992c3cc3f89579defbd5.hot-update.js": "/chunks/admin~chunks/platform~chunks/shared.992c3cc3f89579defbd5.hot-update.js",
"/chunks/admin~chunks/platform~chunks/shared.cca1908b1344f103fc3d.hot-update.js": "/chunks/admin~chunks/platform~chunks/shared.cca1908b1344f103fc3d.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings.76e0e164f6216cf25ed1.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings.76e0e164f6216cf25ed1.hot-update.js",
"/chunks/subscriptions.8e2b6616ceb404510d35.hot-update.js": "/chunks/subscriptions.8e2b6616ceb404510d35.hot-update.js",
"/chunks/subscriptions.18c64ae5b94e81355688.hot-update.js": "/chunks/subscriptions.18c64ae5b94e81355688.hot-update.js",
"/chunks/users.65c36055c1d1706ce234.hot-update.js": "/chunks/users.65c36055c1d1706ce234.hot-update.js",
"/chunks/users.08699699b00d359ba241.hot-update.js": "/chunks/users.08699699b00d359ba241.hot-update.js",
"/chunks/users.bbbeb09769083200eba8.hot-update.js": "/chunks/users.bbbeb09769083200eba8.hot-update.js",
"/chunks/users.750d8616ad13e3f65e41.hot-update.js": "/chunks/users.750d8616ad13e3f65e41.hot-update.js",
"/chunks/users.0d7decddb9c8480a0050.hot-update.js": "/chunks/users.0d7decddb9c8480a0050.hot-update.js",
"/chunks/users.b282ed31151467ae527d.hot-update.js": "/chunks/users.b282ed31151467ae527d.hot-update.js",
"/chunks/users.e5087ee6469012f07d12.hot-update.js": "/chunks/users.e5087ee6469012f07d12.hot-update.js",
"/chunks/users.842ec0a32cd04d77ecbe.hot-update.js": "/chunks/users.842ec0a32cd04d77ecbe.hot-update.js",
"/chunks/users.9b7c1c0cd586b6c15df9.hot-update.js": "/chunks/users.9b7c1c0cd586b6c15df9.hot-update.js",
"/chunks/users.fedce59d3406ffd59ba1.hot-update.js": "/chunks/users.fedce59d3406ffd59ba1.hot-update.js",
"/chunks/users.69c83c9ba3cad194a71b.hot-update.js": "/chunks/users.69c83c9ba3cad194a71b.hot-update.js",
"/chunks/users.0cded9045540d77a050f.hot-update.js": "/chunks/users.0cded9045540d77a050f.hot-update.js",
"/chunks/users.beffacd4c1254f502c17.hot-update.js": "/chunks/users.beffacd4c1254f502c17.hot-update.js",
"/chunks/users.924fa8ed10072bd3026b.hot-update.js": "/chunks/users.924fa8ed10072bd3026b.hot-update.js",
"/chunks/users.83cd7438f5cf420aed32.hot-update.js": "/chunks/users.83cd7438f5cf420aed32.hot-update.js",
"/chunks/users.f7cea146214511e3f636.hot-update.js": "/chunks/users.f7cea146214511e3f636.hot-update.js",
"/chunks/users.04ed9306432a3c8fc007.hot-update.js": "/chunks/users.04ed9306432a3c8fc007.hot-update.js",
"/chunks/users.8c14e1fe6c58f3c07c8e.hot-update.js": "/chunks/users.8c14e1fe6c58f3c07c8e.hot-update.js",
"/chunks/users.8ac4d4bad5bfdd6ac123.hot-update.js": "/chunks/users.8ac4d4bad5bfdd6ac123.hot-update.js",
"/chunks/users.8a76156c9e8aac5fb1c0.hot-update.js": "/chunks/users.8a76156c9e8aac5fb1c0.hot-update.js",
"/chunks/users.40c334f791627b584825.hot-update.js": "/chunks/users.40c334f791627b584825.hot-update.js",
"/chunks/admin.956183b715ed6475a156.hot-update.js": "/chunks/admin.956183b715ed6475a156.hot-update.js",
"/chunks/users.aa2c24938ef50eb0a3fb.hot-update.js": "/chunks/users.aa2c24938ef50eb0a3fb.hot-update.js",
"/chunks/users.4a035126aadaae62534c.hot-update.js": "/chunks/users.4a035126aadaae62534c.hot-update.js",
"/chunks/users.680f28c968c92e1ce32f.hot-update.js": "/chunks/users.680f28c968c92e1ce32f.hot-update.js",
"/chunks/users.f262544f2747655a5de3.hot-update.js": "/chunks/users.f262544f2747655a5de3.hot-update.js",
"/chunks/users.1ae241de50d24b750369.hot-update.js": "/chunks/users.1ae241de50d24b750369.hot-update.js",
"/chunks/users.80a6bf70724693640de1.hot-update.js": "/chunks/users.80a6bf70724693640de1.hot-update.js",
"/chunks/users.30a47c9996cd46ed6f55.hot-update.js": "/chunks/users.30a47c9996cd46ed6f55.hot-update.js",
"/chunks/users.8aa4a92d39a5784f3266.hot-update.js": "/chunks/users.8aa4a92d39a5784f3266.hot-update.js",
"/js/main.1da539f0f3ca3960ba09.hot-update.js": "/js/main.1da539f0f3ca3960ba09.hot-update.js",
"/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~b60814f7.js": "/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~b60814f7.js?id=397d0aa8ad56d53e5023",
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-items~chunks/page~d479d642.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-items~chunks/page~d479d642.js?id=64f47ffebb4c592b15af",
"/chunks/app-language~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan-creat~55bdcb5c.js": "/chunks/app-language~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan-creat~55bdcb5c.js?id=6c8126d2f63019c22aa9",
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-p~2f55a967.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-p~2f55a967.js?id=68edee613a1dfda93ed9",
"/chunks/dashboard~chunks/invoices~chunks/plan-subscribers.js": "/chunks/dashboard~chunks/invoices~chunks/plan-subscribers.js?id=f4c3a3d302fcdb9963a2",
"/chunks/users.1da539f0f3ca3960ba09.hot-update.js": "/chunks/users.1da539f0f3ca3960ba09.hot-update.js",
"/js/main.725c30300a05f5b9cd90.hot-update.js": "/js/main.725c30300a05f5b9cd90.hot-update.js",
"/chunks/users.725c30300a05f5b9cd90.hot-update.js": "/chunks/users.725c30300a05f5b9cd90.hot-update.js",
"/chunks/user.2ec0e4e131f901d93151.hot-update.js": "/chunks/user.2ec0e4e131f901d93151.hot-update.js",
"/chunks/user.1b2852cabbb81b0ae1f2.hot-update.js": "/chunks/user.1b2852cabbb81b0ae1f2.hot-update.js",
"/chunks/user-storage.ab6d54587b7e74808bb3.hot-update.js": "/chunks/user-storage.ab6d54587b7e74808bb3.hot-update.js",
"/chunks/user-detail.8a2333a948e5f3f9feee.hot-update.js": "/chunks/user-detail.8a2333a948e5f3f9feee.hot-update.js",
"/chunks/user-detail.4165678525725f398e49.hot-update.js": "/chunks/user-detail.4165678525725f398e49.hot-update.js",
"/chunks/admin.b42eed1ec04a710c596e.hot-update.js": "/chunks/admin.b42eed1ec04a710c596e.hot-update.js",
"/chunks/admin.83aa13290ae44ccb8f70.hot-update.js": "/chunks/admin.83aa13290ae44ccb8f70.hot-update.js",
"/chunks/user-storage.28332f836b1322b017b1.hot-update.js": "/chunks/user-storage.28332f836b1322b017b1.hot-update.js",
"/chunks/user-storage.9f93636f198e831993b8.hot-update.js": "/chunks/user-storage.9f93636f198e831993b8.hot-update.js",
"/chunks/user-storage.bfe52a4b4a3721a91cc1.hot-update.js": "/chunks/user-storage.bfe52a4b4a3721a91cc1.hot-update.js",
"/chunks/settings-storage.9e03980e81526b2f4606.hot-update.js": "/chunks/settings-storage.9e03980e81526b2f4606.hot-update.js",
"/chunks/user-storage.f4b57544b641141ee9b5.hot-update.js": "/chunks/user-storage.f4b57544b641141ee9b5.hot-update.js",
"/chunks/user-storage.6dca3784c062b05677e7.hot-update.js": "/chunks/user-storage.6dca3784c062b05677e7.hot-update.js",
"/chunks/user-storage.f37703378d8d1e016193.hot-update.js": "/chunks/user-storage.f37703378d8d1e016193.hot-update.js",
"/chunks/user-storage.f21876fba8ece97bbccd.hot-update.js": "/chunks/user-storage.f21876fba8ece97bbccd.hot-update.js",
"/chunks/user-storage.cbdde32513dd1279ac78.hot-update.js": "/chunks/user-storage.cbdde32513dd1279ac78.hot-update.js",
"/chunks/user-storage.1dc4b69b30fef14a8ce2.hot-update.js": "/chunks/user-storage.1dc4b69b30fef14a8ce2.hot-update.js"
} }

View File

@@ -1,5 +1,5 @@
<template> <template>
<section class="content-sidebar flex-none xl:w-56 w-52 lg:block hidden overflow-y-auto pt-6 select-none dark:bg-dark-background bg-light-background" id="content-sidebar"> <section class="content-sidebar flex-none xl:w-56 w-52 lg:block hidden overflow-y-auto pt-6 select-none dark:bg-dark-background" id="content-sidebar">
<slot></slot> <slot></slot>
</section> </section>
</template> </template>
@@ -9,3 +9,9 @@
name: 'ContentSidebar', name: 'ContentSidebar',
} }
</script> </script>
<style scoped lang="scss">
.content-sidebar {
background: linear-gradient(0deg, rgba(246, 245, 241, 0.4) 0%, rgba(243, 244, 246, 0.4) 100%);
}
</style>

View File

@@ -1,5 +1,5 @@
<template> <template>
<nav class="pt-7 select-none dark:bg-dark-foreground bg-light-background flex-none xl:w-20 w-16 lg:grid hidden"> <nav class="menu-bar pt-7 select-none dark:bg-dark-foreground bg-light-background flex-none xl:w-20 w-16 lg:grid hidden">
<!--Navigation--> <!--Navigation-->
<div v-if="user" class="mb-auto text-center"> <div v-if="user" class="mb-auto text-center">
@@ -147,6 +147,10 @@
<style scoped lang="scss"> <style scoped lang="scss">
@import '/resources/sass/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
.menu-bar {
background: linear-gradient(180deg, rgba(246, 245, 241, 0.8) 0%, rgba(243, 244, 246, 0.8) 100%);
}
.router-link-active { .router-link-active {
&.home .button-icon { &.home .button-icon {

View File

@@ -56,65 +56,22 @@
</div> </div>
</ContentGroup> </ContentGroup>
<!--SaaS--> <!-- Assets -->
<ContentGroup :title="$t('Assets')" class="navigator"> <ContentGroup :title="$t('Assets')" class="navigator">
<div class="menu-list-wrapper vertical"> <div class="menu-list-wrapper vertical">
<router-link :to="{name: 'Users'}" class="menu-list-item link"> <router-link v-for="(menu, i) in assetMenu" :key="i" :to="{name: menu.route}" class="menu-list-item link">
<div class="icon text-theme"> <div class="icon text-theme">
<users-icon size="17" /> <users-icon v-if="menu.icon === 'users'" size="17" />
<database-icon v-if="menu.icon === 'database'" size="17" />
<dollar-sign-icon v-if="menu.icon === 'dollar'" size="17" />
<file-text-icon v-if="menu.icon === 'file-text'" size="17" />
</div> </div>
<div class="label text-theme"> <div class="label text-theme">
{{ $t('admin_menu.users') }} {{ menu.title }}
</div>
</router-link>
<router-link :to="{name: 'Subscriptions'}" class="menu-list-item link">
<div class="icon text-theme">
<dollar-sign-icon size="17" />
</div>
<div class="label text-theme">
{{ $t('Subscriptions') }}
</div>
</router-link>
<router-link :to="{name: 'Plans'}" class="menu-list-item link">
<div class="icon text-theme">
<database-icon size="17" />
</div>
<div class="label text-theme">
{{ $t('admin_menu.plans') }}
</div>
</router-link>
<router-link :to="{name: 'Invoices'}" class="menu-list-item link">
<div class="icon text-theme">
<file-text-icon size="17" />
</div>
<div class="label text-theme">
{{ $t('Transactions') }}
</div> </div>
</router-link> </router-link>
</div> </div>
</ContentGroup> </ContentGroup>
<!--Others-->
<!-- <ContentGroup :title="$t('Assets')" class="navigator">
<div class="menu-list-wrapper vertical">
<router-link :to="{name: 'Users'}" class="menu-list-item link">
<div class="icon text-theme">
<refresh-cw-icon size="17" />
</div>
<div class="label text-theme">
{{ $t('Changelog') }}
</div>
</router-link>
<router-link :to="{name: 'Plans'}" class="menu-list-item link">
<div class="icon text-theme">
<help-circle-icon size="17" />
</div>
<div class="label text-theme">
{{ $t('Support') }}
</div>
</router-link>
</div>
</ContentGroup>-->
</ContentSidebar> </ContentSidebar>
<router-view class="lg:pl-0 pl-6 pr-6 w-full overflow-x-hidden relative lg:pt-6 pt-4" /> <router-view class="lg:pl-0 pl-6 pr-6 w-full overflow-x-hidden relative lg:pt-6 pt-4" />
@@ -134,11 +91,61 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
name: 'Settings', name: 'Admin',
computed: { computed: {
...mapGetters([ ...mapGetters([
'config' 'config'
]), ]),
assetMenu() {
return {
metered: [
{
title: this.$t('admin_menu.users'),
route: 'Users',
icon: 'users',
},
{
title: this.$t('admin_menu.plans'),
route: 'Plans',
icon: 'database',
},
{
title: this.$t('Transactions'),
route: 'Invoices',
icon: 'file-text',
},
],
fixed: [
{
title: this.$t('admin_menu.users'),
route: 'Users',
icon: 'users',
},
{
title: this.$t('Subscriptions'),
route: 'Subscriptions',
icon: 'dollar',
},
{
title: this.$t('admin_menu.plans'),
route: 'Plans',
icon: 'database',
},
{
title: this.$t('Transactions'),
route: 'Invoices',
icon: 'file-text',
},
],
none: [
{
title: this.$t('admin_menu.users'),
route: 'Users',
icon: 'users',
},
],
}[this.config.subscriptionType]
}
}, },
components: { components: {
FilePreview, FilePreview,
@@ -163,10 +170,3 @@
}, },
} }
</script> </script>
<style lang="scss" scoped>
.user-headline {
margin-bottom: 38px;
}
</style>

View File

@@ -16,7 +16,67 @@
<!--Datatable--> <!--Datatable-->
<DatatableWrapper @init="isLoading = false" api="/api/admin/users" :paginator="true" :columns="columns" class="table table-users"> <DatatableWrapper @init="isLoading = false" api="/api/admin/users" :paginator="true" :columns="columns" class="table table-users">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<tr class="border-b dark:border-opacity-5 border-light border-dashed"> <!--Not a subscription-->
<tr v-if="config.subscriptionType === 'none'" class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-3">
<router-link :to="{name: 'UserDetail', params: {id: row.data.id}}">
<div class="flex items-center">
<MemberAvatar
:is-border="false"
:size="44"
:member="row.data.relationships.settings"
/>
<div class="ml-3">
<b class="text-sm font-bold block max-w-1 overflow-hidden overflow-ellipsis whitespace-nowrap" style="max-width: 155px;">
{{ row.data.relationships.settings.data.attributes.name }}
</b>
<span class="block text-xs dark:text-gray-500 text-gray-600">
{{ row.data.attributes.email }}
</span>
</div>
</div>
</router-link>
</td>
<td>
<ColorLabel :color="getRoleColor(row.data.attributes.role)">
{{ row.data.attributes.role }}
</ColorLabel>
</td>
<td>
<span v-if="row.data.attributes.storage.capacity !== 0" class="text-sm font-bold">
{{ row.data.attributes.storage.used_formatted }}
</span>
<span v-if="row.data.attributes.storage.capacity === 0" class="text-sm font-bold">
-
</span>
</td>
<td v-if="config.storageLimit">
<span v-if="row.data.attributes.storage.capacity !== 0" class="text-sm font-bold">
{{ row.data.attributes.storage.capacity_formatted }}
</span>
<span v-if="row.data.attributes.storage.capacity === 0" class="text-sm font-bold">
-
</span>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.attributes.created_at }}
</span>
</td>
<td>
<div class="flex space-x-2 w-full justify-end">
<router-link class="flex items-center justify-center w-8 h-8 rounded-md hover:bg-green-100 dark:bg-2x-dark-foreground bg-light-background transition-colors" :to="{name: 'UserDetail', params: {id: row.data.id}}">
<Edit2Icon size="15" class="opacity-75" />
</router-link>
<router-link class="flex items-center justify-center w-8 h-8 rounded-md hover:bg-red-100 dark:bg-2x-dark-foreground bg-light-background transition-colors" :to="{name: 'UserDelete', params: {id: row.data.id}}">
<Trash2Icon size="15" class="opacity-75" />
</router-link>
</div>
</td>
</tr>
<!--Fixed subscription-->
<tr v-if="config.subscriptionType === 'fixed'" class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-3"> <td class="py-3">
<router-link :to="{name: 'UserDetail', params: {id: row.data.id}}"> <router-link :to="{name: 'UserDetail', params: {id: row.data.id}}">
<div class="flex items-center"> <div class="flex items-center">
@@ -77,6 +137,59 @@
</router-link> </router-link>
</div> </div>
</td> </td>
</tr>
<!--Metered subscription-->
<tr v-if="config.subscriptionType === 'metered'" class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-3">
<router-link :to="{name: 'UserDetail', params: {id: row.data.id}}">
<div class="flex items-center">
<MemberAvatar
:is-border="false"
:size="44"
:member="row.data.relationships.settings"
/>
<div class="ml-3">
<b class="text-sm font-bold block max-w-1 overflow-hidden overflow-ellipsis whitespace-nowrap" style="max-width: 155px;">
{{ row.data.relationships.settings.data.attributes.name }}
</b>
<span class="block text-xs dark:text-gray-500 text-gray-600">
{{ row.data.attributes.email }}
</span>
</div>
</div>
</router-link>
</td>
<td>
<ColorLabel :color="getRoleColor(row.data.attributes.role)">
{{ row.data.attributes.role }}
</ColorLabel>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.meta.usages.featureEstimates.storage.usage }}
</span>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.meta.usages.costEstimate }}
</span>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.attributes.created_at }}
</span>
</td>
<td>
<div class="flex space-x-2 w-full justify-end">
<router-link class="flex items-center justify-center w-8 h-8 rounded-md hover:bg-green-100 dark:bg-2x-dark-foreground bg-light-background transition-colors" :to="{name: 'UserDetail', params: {id: row.data.id}}">
<Edit2Icon size="15" class="opacity-75" />
</router-link>
<router-link class="flex items-center justify-center w-8 h-8 rounded-md hover:bg-red-100 dark:bg-2x-dark-foreground bg-light-background transition-colors" :to="{name: 'UserDelete', params: {id: row.data.id}}">
<Trash2Icon size="15" class="opacity-75" />
</router-link>
</div>
</td>
</tr> </tr>
</template> </template>
</DatatableWrapper> </DatatableWrapper>
@@ -103,7 +216,7 @@
import axios from 'axios' import axios from 'axios'
export default { export default {
name: 'Profile', name: 'Users',
components: { components: {
DatatableCellImage, DatatableCellImage,
MobileActionButton, MobileActionButton,
@@ -119,98 +232,119 @@
Spinner, Spinner,
}, },
computed: { computed: {
...mapGetters(['config']), ...mapGetters([
'config'
]),
columns() {
return {
metered: [
{
label: this.$t('admin_page_user.table.name'),
field: 'email',
sortable: true
},
{
label: this.$t('admin_page_user.table.role'),
field: 'role',
sortable: true
},
{
label: this.$t('admin_page_user.table.storage_used'),
sortable: false
},
{
label: this.$t('Billing Est.'),
sortable: false,
},
{
label: this.$t('admin_page_user.table.created_at'),
field: 'created_at',
sortable: true
},
{
label: this.$t('admin_page_user.table.action'),
sortable: false
},
],
fixed: [
{
label: this.$t('admin_page_user.table.name'),
field: 'email',
sortable: true
},
{
label: this.$t('admin_page_user.table.role'),
field: 'role',
sortable: true
},
{
label: this.$t('admin_page_user.table.plan'),
sortable: false,
},
{
label: this.$t('admin_page_user.table.storage_used'),
sortable: false
},
{
label: this.$t('Max Storage'),
sortable: false,
hidden: ! this.config.storageLimit,
},
{
label: this.$t('admin_page_user.table.created_at'),
field: 'created_at',
sortable: true
},
{
label: this.$t('admin_page_user.table.action'),
sortable: false
},
],
none: [
{
label: this.$t('admin_page_user.table.name'),
field: 'email',
sortable: true
},
{
label: this.$t('admin_page_user.table.role'),
field: 'role',
sortable: true
},
{
label: this.$t('admin_page_user.table.storage_used'),
sortable: false
},
{
label: this.$t('Max Storage'),
sortable: false,
hidden: ! this.config.storageLimit,
},
{
label: this.$t('admin_page_user.table.created_at'),
field: 'created_at',
sortable: true
},
{
label: this.$t('admin_page_user.table.action'),
sortable: false
},
],
}[this.config.subscriptionType]
}
}, },
data() { data() {
return { return {
isLoading: true, isLoading: true,
columns: undefined,
} }
}, },
methods: { methods: {
getRoleColor(role) { getRoleColor(role) {
switch(role) { return {
case 'admin': admin: 'purple',
return 'purple' user: 'green',
break; }[role]
case 'user':
return 'green'
break;
}
} }
},
created() {
this.columns = [
{
label: this.$t('admin_page_user.table.name'),
field: 'email',
sortable: true
},
{
label: this.$t('admin_page_user.table.role'),
field: 'role',
sortable: true
},
{
label: this.$t('admin_page_user.table.plan'),
sortable: false,
},
{
label: this.$t('admin_page_user.table.storage_used'),
sortable: false
},
{
label: this.$t('Max Storage'),
sortable: false,
hidden: ! this.config.storageLimit,
},
{
label: this.$t('admin_page_user.table.created_at'),
field: 'created_at',
sortable: true
},
{
label: this.$t('admin_page_user.table.action'),
sortable: false
},
]
} }
} }
</script> </script>
<style lang="scss" scoped>
@import '/resources/sass/vuefilemanager/_variables';
@import '/resources/sass/vuefilemanager/_mixins';
.table-tools {
background: white;
display: flex;
justify-content: space-between;
padding: 15px 0 10px;
position: sticky;
top: 40px;
z-index: 9;
}
.table {
.cell-item {
@include font-size(15);
white-space: nowrap;
}
}
@media only screen and (max-width: 690px) {
.table-tools {
padding: 0 0 5px;
}
}
.dark {
.table-tools {
background: $dark_mode_background;
}
}
</style>

View File

@@ -66,12 +66,29 @@
admin() { admin() {
return this.$store.getters.user ? this.$store.getters.user : undefined return this.$store.getters.user ? this.$store.getters.user : undefined
}, },
}, pages() {
data() { if (this.config.subscriptionType === 'none') {
return { return [
isLoading: true, {
user: undefined, title: this.$t('admin_page_user.tabs.detail'),
pages: [ route: 'UserDetail',
},
{
title: this.$t('Storage'),
route: 'UserStorage',
},
{
title: this.$t('admin_page_user.tabs.password'),
route: 'UserPassword',
},
{
title: this.$t('Delete Account'),
route: 'UserDelete',
},
]
}
return [
{ {
title: this.$t('admin_page_user.tabs.detail'), title: this.$t('admin_page_user.tabs.detail'),
route: 'UserDetail', route: 'UserDetail',
@@ -93,6 +110,12 @@
route: 'UserDelete', route: 'UserDelete',
}, },
] ]
}
},
data() {
return {
isLoading: true,
user: undefined,
} }
}, },
methods: { methods: {

View File

@@ -5,12 +5,9 @@
<FormLabel> <FormLabel>
{{ $t('user_box_role.title') }} {{ $t('user_box_role.title') }}
</FormLabel> </FormLabel>
<InfoBox>
<p>{{ $t('user_box_role.description') }}</p>
</InfoBox>
<ValidationObserver ref="changeRole" @submit.prevent="changeRole" v-slot="{ invalid }" tag="form"> <ValidationObserver ref="changeRole" @submit.prevent="changeRole" v-slot="{ invalid }" tag="form">
<ValidationProvider tag="div" v-slot="{ errors }" mode="passive" name="Role" rules="required"> <ValidationProvider tag="div" v-slot="{ errors }" mode="passive" name="Role" rules="required">
<AppInputText :title="$t('admin_page_user.select_role')" :error="errors[0]" :is-last="true"> <AppInputText :title="$t('admin_page_user.select_role')" :description="$t('user_box_role.description')" :error="errors[0]" :is-last="true">
<div class="flex space-x-4"> <div class="flex space-x-4">
<SelectInput v-model="userRole" :options="$translateSelectOptions(roles)" :placeholder="$t('admin_page_user.select_role')" :isError="errors[0]" /> <SelectInput v-model="userRole" :options="$translateSelectOptions(roles)" :placeholder="$t('admin_page_user.select_role')" :isError="errors[0]" />
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit" button-style="theme" class="submit-button"> <ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit" button-style="theme" class="submit-button">

View File

@@ -1,6 +1,7 @@
<template> <template>
<PageTab :is-loading="isLoading" v-if="storage"> <PageTab :is-loading="isLoading" v-if="storage">
<!--Storage Usage-->
<div v-if="distribution" class="card shadow-card"> <div v-if="distribution" class="card shadow-card">
<FormLabel icon="hard-drive"> <FormLabel icon="hard-drive">
{{ $t('Storage Usage') }} {{ $t('Storage Usage') }}
@@ -10,12 +11,14 @@
{{ storage.data.attributes.used }} {{ storage.data.attributes.used }}
</b> </b>
<b class="mb-3 block text-sm text-gray-400 mb-5"> <b v-if="['fixed', 'none'].includes(config.subscriptionType)" class="mt-0.5 block text-sm text-gray-400">
{{ $t('Total of') }} {{ storage.data.attributes.capacity }} {{ $t('Used') }} {{ $t('Total of') }} {{ storage.data.attributes.capacity }} {{ $t('Used') }}
</b> </b>
<ProgressLine :data="distribution" /> <ProgressLine v-if="storage.data.attributes.used !== '0B'" :data="distribution" class="mt-5" />
</div> </div>
<!--Upload-->
<div v-if="distribution" class="card shadow-card"> <div v-if="distribution" class="card shadow-card">
<FormLabel icon="hard-drive"> <FormLabel icon="hard-drive">
{{ $t('Upload') }} {{ $t('Upload') }}
@@ -31,6 +34,8 @@
<BarChart :data="storage.data.meta.traffic.chart.upload" color="#FFBD2D" /> <BarChart :data="storage.data.meta.traffic.chart.upload" color="#FFBD2D" />
</div> </div>
<!--Download-->
<div v-if="distribution" class="card shadow-card"> <div v-if="distribution" class="card shadow-card">
<FormLabel icon="hard-drive"> <FormLabel icon="hard-drive">
{{ $t('Download') }} {{ $t('Download') }}
@@ -47,16 +52,14 @@
<BarChart :data="storage.data.meta.traffic.chart.download" color="#9d66fe" /> <BarChart :data="storage.data.meta.traffic.chart.download" color="#9d66fe" />
</div> </div>
<div v-if="config.storageLimit && ! user.data.attributes.subscription" class="card shadow-card"> <!--Set Storage Size-->
<div v-if="config.storageLimit && ! user.data.attributes.subscription && config.subscriptionType !== 'metered'" class="card shadow-card">
<FormLabel> <FormLabel>
{{ $t('user_box_storage.title') }} {{ $t('user_box_storage.title') }}
</FormLabel> </FormLabel>
<InfoBox>
<p>{{ $t('user_box_storage.description') }}</p>
</InfoBox>
<ValidationObserver ref="changeStorageCapacity" @submit.prevent="changeStorageCapacity" v-slot="{ invalid }" tag="form"> <ValidationObserver ref="changeStorageCapacity" @submit.prevent="changeStorageCapacity" v-slot="{ invalid }" tag="form">
<ValidationProvider tag="div" v-slot="{ errors }" mode="passive" name="Capacity" rules="required"> <ValidationProvider tag="div" v-slot="{ errors }" mode="passive" name="Capacity" rules="required">
<AppInputText :title="$t('admin_page_user.label_change_capacity')" :error="errors[0]" :is-last="true"> <AppInputText :title="$t('admin_page_user.label_change_capacity')" :description="$t('user_box_storage.description')" :error="errors[0]" :is-last="true">
<div class="flex space-x-4"> <div class="flex space-x-4">
<input v-model="capacity" <input v-model="capacity"
:placeholder="$t('admin_page_user.label_change_capacity')" :placeholder="$t('admin_page_user.label_change_capacity')"

View File

@@ -9,7 +9,7 @@
{{ storage.data.attributes.used }} {{ storage.data.attributes.used }}
</b> </b>
<b v-if="config.subscriptionType !== 'metered'" class="mt-0.5 block text-sm text-gray-400"> <b v-if="['fixed', 'none'].includes(config.subscriptionType)" class="mt-0.5 block text-sm text-gray-400">
{{ $t('Total of') }} {{ storage.data.attributes.capacity }} {{ $t('Used') }} {{ $t('Total of') }} {{ storage.data.attributes.capacity }} {{ $t('Used') }}
</b> </b>

View File

@@ -56,7 +56,7 @@
stripe_public_key: '{{ config('cashier.key') ?? null }}', stripe_public_key: '{{ config('cashier.key') ?? null }}',
app_payments_active: {{ $settings->payments_active ?? 0 }}, app_payments_active: {{ $settings->payments_active ?? 0 }},
subscriptionType: '{{ $settings->subscription_type ?? null }}', subscriptionType: '{{ $settings->subscription_type ?? 'none' }}',
allowHomepage: {{ $settings->allow_homepage ?? 1 }}, allowHomepage: {{ $settings->allow_homepage ?? 1 }},
userRegistration: {{ $settings->registration ?? 1 }}, userRegistration: {{ $settings->registration ?? 1 }},

View File

@@ -956,10 +956,6 @@ class SetupDevEnvironment extends Command
{ {
// Get options // Get options
collect([ collect([
[
'name' => 'subscription_type', // TODO: add to setup wizard
'value' => 'metered',
],
[ [
'name' => 'setup_wizard_database', 'name' => 'setup_wizard_database',
'value' => 1, 'value' => 1,

View File

@@ -8,7 +8,7 @@ class FormatUsageEstimatesAction
{ {
public function __invoke(string $currency, Collection $usage) public function __invoke(string $currency, Collection $usage)
{ {
return $usage->map(function ($estimate) use ($currency) { return $usage->mapWithKeys(function ($estimate) use ($currency) {
// Format usage // Format usage
$usage = match ($estimate['feature']) { $usage = match ($estimate['feature']) {
'bandwidth' => Metric::megabytes($estimate['usage'])->format(), 'bandwidth' => Metric::megabytes($estimate['usage'])->format(),
@@ -19,10 +19,12 @@ class FormatUsageEstimatesAction
$amount = $estimate['amount'] / 1000; $amount = $estimate['amount'] / 1000;
return [ return [
'feature' => $estimate['feature'], $estimate['feature'] => [
'amount' => $amount, 'feature' => $estimate['feature'],
'cost' => format_currency($amount, $currency), 'amount' => $amount,
'usage' => $usage, 'cost' => format_currency($amount, $currency),
'usage' => $usage,
]
]; ];
}); });
} }

View File

@@ -21,6 +21,7 @@ class UserStorageResource extends JsonResource
$totalCapacity = match (get_settings('subscription_type')) { $totalCapacity = match (get_settings('subscription_type')) {
'metered' => $this->usedCapacity / 1000000000, 'metered' => $this->usedCapacity / 1000000000,
'fixed' => $this->limitations->max_storage_amount, 'fixed' => $this->limitations->max_storage_amount,
default => $this->limitations->max_storage_amount,
}; };
return [ return [