translations update

This commit is contained in:
carodej
2020-07-12 11:02:21 +02:00
parent 3c3a18cf6b
commit a74c1c7b6e
46 changed files with 13226 additions and 2018 deletions

View File

@@ -77,6 +77,9 @@ class SubscriptionController extends Controller
// Get user
$user = Auth::user();
// Forget user subscription
Cache::forget('subscription-user-' . $user->id);
// Get requested plan
$plan = $this->stripe->getPlan($request->input('plan.data.id'));
@@ -104,8 +107,13 @@ class SubscriptionController extends Controller
*/
public function cancel()
{
$user = Auth::user();
// Cancel subscription
Auth::user()->subscription('main')->cancel();
$user->subscription('main')->cancel();
// Forget user subscription
Cache::forget('subscription-user-' . $user->id);
return response('Done!', 204);
}
@@ -117,8 +125,13 @@ class SubscriptionController extends Controller
*/
public function resume()
{
$user = Auth::user();
// Resume subscription
Auth::user()->subscription('main')->resume();
$user->subscription('main')->resume();
// Forget user subscription
Cache::forget('subscription-user-' . $user->id);
return response('Done!', 204);
}

325
composer.lock generated
View File

@@ -60,16 +60,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.143.0",
"version": "3.145.4",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "ce52251b25c83e225fc04043e6ee376465b6ae8f"
"reference": "3c5a921f0de917f9fc3d51b2970106d3abfc6b8f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ce52251b25c83e225fc04043e6ee376465b6ae8f",
"reference": "ce52251b25c83e225fc04043e6ee376465b6ae8f",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/3c5a921f0de917f9fc3d51b2970106d3abfc6b8f",
"reference": "3c5a921f0de917f9fc3d51b2970106d3abfc6b8f",
"shasum": ""
},
"require": {
@@ -141,7 +141,7 @@
"s3",
"sdk"
],
"time": "2020-06-24T19:09:03+00:00"
"time": "2020-07-09T18:13:42+00:00"
},
{
"name": "brick/math",
@@ -403,16 +403,16 @@
},
{
"name": "doctrine/cache",
"version": "1.10.1",
"version": "1.10.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3"
"reference": "13e3381b25847283a91948d04640543941309727"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
"reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
"url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727",
"reference": "13e3381b25847283a91948d04640543941309727",
"shasum": ""
},
"require": {
@@ -481,7 +481,7 @@
"redis",
"xcache"
],
"time": "2020-05-27T16:24:54+00:00"
"time": "2020-07-07T18:54:01+00:00"
},
{
"name": "doctrine/dbal",
@@ -1455,16 +1455,16 @@
},
{
"name": "laminas/laminas-diactoros",
"version": "2.3.0",
"version": "2.3.1",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
"reference": "5ab185dba63ec655a2380c97711b09adc7061f89"
"reference": "2ffc7cc816f6207b27923ee15edf6fac668390aa"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/5ab185dba63ec655a2380c97711b09adc7061f89",
"reference": "5ab185dba63ec655a2380c97711b09adc7061f89",
"url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/2ffc7cc816f6207b27923ee15edf6fac668390aa",
"reference": "2ffc7cc816f6207b27923ee15edf6fac668390aa",
"shasum": ""
},
"require": {
@@ -1536,9 +1536,10 @@
"http",
"laminas",
"psr",
"psr-17",
"psr-7"
],
"time": "2020-04-27T17:07:01+00:00"
"time": "2020-07-07T15:34:31+00:00"
},
{
"name": "laminas/laminas-zendframework-bridge",
@@ -1594,16 +1595,16 @@
},
{
"name": "laravel/cashier",
"version": "v12.0.1",
"version": "v12.1.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/cashier.git",
"reference": "e3479f548a7d167ff1c241e718041162e66306a5"
"reference": "3faad324f8f37e27a05bf455c1f5b326738676e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/cashier/zipball/e3479f548a7d167ff1c241e718041162e66306a5",
"reference": "e3479f548a7d167ff1c241e718041162e66306a5",
"url": "https://api.github.com/repos/laravel/cashier/zipball/3faad324f8f37e27a05bf455c1f5b326738676e6",
"reference": "3faad324f8f37e27a05bf455c1f5b326738676e6",
"shasum": ""
},
"require": {
@@ -1620,7 +1621,7 @@
"moneyphp/money": "^3.2",
"nesbot/carbon": "^2.0",
"php": "^7.2",
"stripe/stripe-php": "^7.0",
"stripe/stripe-php": "^7.29",
"symfony/http-kernel": "^4.3|^5.0",
"symfony/intl": "^4.3|^5.0"
},
@@ -1664,20 +1665,20 @@
"laravel",
"stripe"
],
"time": "2020-06-16T18:54:05+00:00"
"time": "2020-06-30T19:47:11+00:00"
},
{
"name": "laravel/framework",
"version": "v7.17.2",
"version": "v7.19.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "d16ff3a0a66d98e04163456b39c4b7302cf50a40"
"reference": "4f373c373915ec828e3374029919a6fe946ed6d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/d16ff3a0a66d98e04163456b39c4b7302cf50a40",
"reference": "d16ff3a0a66d98e04163456b39c4b7302cf50a40",
"url": "https://api.github.com/repos/laravel/framework/zipball/4f373c373915ec828e3374029919a6fe946ed6d9",
"reference": "4f373c373915ec828e3374029919a6fe946ed6d9",
"shasum": ""
},
"require": {
@@ -1821,7 +1822,7 @@
"framework",
"laravel"
],
"time": "2020-06-24T13:11:25+00:00"
"time": "2020-07-10T16:41:39+00:00"
},
{
"name": "laravel/passport",
@@ -1963,16 +1964,16 @@
},
{
"name": "laravel/tinker",
"version": "v2.4.0",
"version": "v2.4.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
"reference": "cde90a7335a2130a4488beb68f4b2141869241db"
"reference": "3c9ef136ca59366bc1b50b7f2500a946d5149c62"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/tinker/zipball/cde90a7335a2130a4488beb68f4b2141869241db",
"reference": "cde90a7335a2130a4488beb68f4b2141869241db",
"url": "https://api.github.com/repos/laravel/tinker/zipball/3c9ef136ca59366bc1b50b7f2500a946d5149c62",
"reference": "3c9ef136ca59366bc1b50b7f2500a946d5149c62",
"shasum": ""
},
"require": {
@@ -2023,20 +2024,20 @@
"laravel",
"psysh"
],
"time": "2020-04-07T15:01:31+00:00"
"time": "2020-07-07T15:10:00+00:00"
},
{
"name": "laravel/ui",
"version": "v2.0.3",
"version": "v2.1.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/ui.git",
"reference": "15368c5328efb7ce94f35ca750acde9b496ab1b1"
"reference": "da9350533d0da60d5dc42fb7de9c561c72129bba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/ui/zipball/15368c5328efb7ce94f35ca750acde9b496ab1b1",
"reference": "15368c5328efb7ce94f35ca750acde9b496ab1b1",
"url": "https://api.github.com/repos/laravel/ui/zipball/da9350533d0da60d5dc42fb7de9c561c72129bba",
"reference": "da9350533d0da60d5dc42fb7de9c561c72129bba",
"shasum": ""
},
"require": {
@@ -2078,7 +2079,7 @@
"laravel",
"ui"
],
"time": "2020-04-29T15:06:45+00:00"
"time": "2020-06-30T20:56:33+00:00"
},
{
"name": "lcobucci/jwt",
@@ -2137,16 +2138,16 @@
},
{
"name": "league/commonmark",
"version": "1.5.0",
"version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "fc33ca12575e98e57cdce7d5f38b2ca5335714b3"
"reference": "6d74caf6abeed5fd85d6ec20da23d7269cd0b46f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/fc33ca12575e98e57cdce7d5f38b2ca5335714b3",
"reference": "fc33ca12575e98e57cdce7d5f38b2ca5335714b3",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6d74caf6abeed5fd85d6ec20da23d7269cd0b46f",
"reference": "6d74caf6abeed5fd85d6ec20da23d7269cd0b46f",
"shasum": ""
},
"require": {
@@ -2202,7 +2203,7 @@
"md",
"parser"
],
"time": "2020-06-21T20:50:13+00:00"
"time": "2020-06-27T12:50:08+00:00"
},
{
"name": "league/event",
@@ -2434,16 +2435,16 @@
},
{
"name": "league/oauth2-server",
"version": "8.1.0",
"version": "8.1.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-server.git",
"reference": "b53d324f774eb782250f7d8973811a33a75ecdef"
"reference": "09f22e8121fa1832962dba18213b80d4267ef8a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/b53d324f774eb782250f7d8973811a33a75ecdef",
"reference": "b53d324f774eb782250f7d8973811a33a75ecdef",
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/09f22e8121fa1832962dba18213b80d4267ef8a3",
"reference": "09f22e8121fa1832962dba18213b80d4267ef8a3",
"shasum": ""
},
"require": {
@@ -2507,7 +2508,7 @@
"secure",
"server"
],
"time": "2020-04-29T22:14:38+00:00"
"time": "2020-07-01T11:33:50+00:00"
},
{
"name": "moneyphp/money",
@@ -2731,16 +2732,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.35.0",
"version": "2.36.1",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "4b9bd835261ef23d36397a46a76b496a458305e5"
"reference": "ee7378a36cc62952100e718bcc58be4c7210e55f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4b9bd835261ef23d36397a46a76b496a458305e5",
"reference": "4b9bd835261ef23d36397a46a76b496a458305e5",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/ee7378a36cc62952100e718bcc58be4c7210e55f",
"reference": "ee7378a36cc62952100e718bcc58be4c7210e55f",
"shasum": ""
},
"require": {
@@ -2752,9 +2753,10 @@
"require-dev": {
"doctrine/orm": "^2.7",
"friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
"kylekatarnls/multi-tester": "^1.1",
"kylekatarnls/multi-tester": "^2.0",
"phpmd/phpmd": "^2.8",
"phpstan/phpstan": "^0.11",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12.30",
"phpunit/phpunit": "^7.5 || ^8.0",
"squizlabs/php_codesniffer": "^3.4"
},
@@ -2771,6 +2773,11 @@
"providers": [
"Carbon\\Laravel\\ServiceProvider"
]
},
"phpstan": {
"includes": [
"extension.neon"
]
}
},
"autoload": {
@@ -2800,20 +2807,20 @@
"datetime",
"time"
],
"time": "2020-05-24T18:27:52+00:00"
"time": "2020-07-04T12:29:56+00:00"
},
{
"name": "nikic/php-parser",
"version": "v4.5.0",
"version": "v4.6.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "53c2753d756f5adb586dca79c2ec0e2654dd9463"
"reference": "c346bbfafe2ff60680258b631afb730d186ed864"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/53c2753d756f5adb586dca79c2ec0e2654dd9463",
"reference": "53c2753d756f5adb586dca79c2ec0e2654dd9463",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c346bbfafe2ff60680258b631afb730d186ed864",
"reference": "c346bbfafe2ff60680258b631afb730d186ed864",
"shasum": ""
},
"require": {
@@ -2852,7 +2859,7 @@
"parser",
"php"
],
"time": "2020-06-03T07:24:19+00:00"
"time": "2020-07-02T17:12:47+00:00"
},
{
"name": "nyholm/psr7",
@@ -3207,16 +3214,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "2.0.27",
"version": "2.0.28",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc"
"reference": "d1ca58cf33cb21046d702ae3a7b14fdacd9f3260"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc",
"reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d1ca58cf33cb21046d702ae3a7b14fdacd9f3260",
"reference": "d1ca58cf33cb21046d702ae3a7b14fdacd9f3260",
"shasum": ""
},
"require": {
@@ -3295,7 +3302,7 @@
"x.509",
"x509"
],
"time": "2020-04-04T23:17:33+00:00"
"time": "2020-07-08T09:08:33+00:00"
},
{
"name": "psr/cache",
@@ -3936,16 +3943,16 @@
},
{
"name": "stripe/stripe-php",
"version": "v7.38.0",
"version": "v7.40.0",
"source": {
"type": "git",
"url": "https://github.com/stripe/stripe-php.git",
"reference": "65264cace7787083f6c3026d543fa002cc17e2af"
"reference": "04aedea5ad95b9722aa394a41787751b2b478310"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/65264cace7787083f6c3026d543fa002cc17e2af",
"reference": "65264cace7787083f6c3026d543fa002cc17e2af",
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/04aedea5ad95b9722aa394a41787751b2b478310",
"reference": "04aedea5ad95b9722aa394a41787751b2b478310",
"shasum": ""
},
"require": {
@@ -3989,7 +3996,7 @@
"payment processing",
"stripe"
],
"time": "2020-06-25T04:38:46+00:00"
"time": "2020-07-06T17:51:30+00:00"
},
{
"name": "swiftmailer/swiftmailer",
@@ -4187,16 +4194,16 @@
},
{
"name": "symfony/deprecation-contracts",
"version": "v2.1.2",
"version": "v2.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "dd99cb3a0aff6cadd2a8d7d7ed72c2161e218337"
"reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/dd99cb3a0aff6cadd2a8d7d7ed72c2161e218337",
"reference": "dd99cb3a0aff6cadd2a8d7d7ed72c2161e218337",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14",
"reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14",
"shasum": ""
},
"require": {
@@ -4206,6 +4213,10 @@
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -4229,7 +4240,7 @@
],
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"time": "2020-05-27T08:34:37+00:00"
"time": "2020-06-06T08:49:21+00:00"
},
{
"name": "symfony/error-handler",
@@ -4362,16 +4373,16 @@
},
{
"name": "symfony/event-dispatcher-contracts",
"version": "v2.1.2",
"version": "v2.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "405952c4e90941a17e52ef7489a2bd94870bb290"
"reference": "f6f613d74cfc5a623fc36294d3451eb7fa5a042b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/405952c4e90941a17e52ef7489a2bd94870bb290",
"reference": "405952c4e90941a17e52ef7489a2bd94870bb290",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f6f613d74cfc5a623fc36294d3451eb7fa5a042b",
"reference": "f6f613d74cfc5a623fc36294d3451eb7fa5a042b",
"shasum": ""
},
"require": {
@@ -4385,6 +4396,10 @@
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -4416,7 +4431,7 @@
"interoperability",
"standards"
],
"time": "2020-05-20T17:43:50+00:00"
"time": "2020-07-06T13:23:11+00:00"
},
{
"name": "symfony/finder",
@@ -5590,16 +5605,16 @@
},
{
"name": "symfony/service-contracts",
"version": "v2.1.2",
"version": "v2.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b"
"reference": "58c7475e5457c5492c26cc740cc0ad7464be9442"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/66a8f0957a3ca54e4f724e49028ab19d75a8918b",
"reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442",
"reference": "58c7475e5457c5492c26cc740cc0ad7464be9442",
"shasum": ""
},
"require": {
@@ -5613,6 +5628,10 @@
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -5644,7 +5663,7 @@
"interoperability",
"standards"
],
"time": "2020-05-20T17:43:50+00:00"
"time": "2020-07-06T13:23:11+00:00"
},
{
"name": "symfony/string",
@@ -5797,16 +5816,16 @@
},
{
"name": "symfony/translation-contracts",
"version": "v2.1.2",
"version": "v2.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e"
"reference": "616a9773c853097607cf9dd6577d5b143ffdcd63"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e5ca07c8f817f865f618aa072c2fe8e0e637340e",
"reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/616a9773c853097607cf9dd6577d5b143ffdcd63",
"reference": "616a9773c853097607cf9dd6577d5b143ffdcd63",
"shasum": ""
},
"require": {
@@ -5819,6 +5838,10 @@
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -5850,7 +5873,7 @@
"interoperability",
"standards"
],
"time": "2020-05-20T17:43:50+00:00"
"time": "2020-07-06T13:23:11+00:00"
},
{
"name": "symfony/var-dumper",
@@ -6973,20 +6996,20 @@
},
{
"name": "hamcrest/hamcrest-php",
"version": "v2.0.0",
"version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/hamcrest/hamcrest-php.git",
"reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
"reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
"shasum": ""
},
"require": {
"php": "^5.3|^7.0"
"php": "^5.3|^7.0|^8.0"
},
"replace": {
"cordoval/hamcrest-php": "*",
@@ -6994,14 +7017,13 @@
"kodova/hamcrest-php": "*"
},
"require-dev": {
"phpunit/php-file-iterator": "1.3.3",
"phpunit/phpunit": "~4.0",
"satooshi/php-coveralls": "^1.0"
"phpunit/php-file-iterator": "^1.4 || ^2.0",
"phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
"dev-master": "2.1-dev"
}
},
"autoload": {
@@ -7011,13 +7033,13 @@
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD"
"BSD-3-Clause"
],
"description": "This is the PHP port of Hamcrest Matchers",
"keywords": [
"test"
],
"time": "2016-01-20T08:20:44+00:00"
"time": "2020-07-09T08:09:16+00:00"
},
{
"name": "justinrainbow/json-schema",
@@ -7087,28 +7109,28 @@
},
{
"name": "mockery/mockery",
"version": "1.4.0",
"version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
"reference": "6c6a7c533469873deacf998237e7649fc6b36223"
"reference": "1404386ca3410b04fe58b9517e85d702ab33b2c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mockery/mockery/zipball/6c6a7c533469873deacf998237e7649fc6b36223",
"reference": "6c6a7c533469873deacf998237e7649fc6b36223",
"url": "https://api.github.com/repos/mockery/mockery/zipball/1404386ca3410b04fe58b9517e85d702ab33b2c6",
"reference": "1404386ca3410b04fe58b9517e85d702ab33b2c6",
"shasum": ""
},
"require": {
"hamcrest/hamcrest-php": "~2.0",
"hamcrest/hamcrest-php": "^2.0.1",
"lib-pcre": ">=7.0",
"php": "^7.3.0"
"php": "^7.3 || ^8.0"
},
"conflict": {
"phpunit/phpunit": "<8.0"
},
"require-dev": {
"phpunit/phpunit": "^8.0.0 || ^9.0.0"
"phpunit/phpunit": "^8.5 || ^9.0"
},
"type": "library",
"extra": {
@@ -7151,24 +7173,24 @@
"test double",
"testing"
],
"time": "2020-05-19T14:25:16+00:00"
"time": "2020-07-09T08:31:54+00:00"
},
{
"name": "myclabs/deep-copy",
"version": "1.9.5",
"version": "1.10.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
"reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
"reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
"reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
"reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
"shasum": ""
},
"require": {
"php": "^7.1"
"php": "^7.1 || ^8.0"
},
"replace": {
"myclabs/deep-copy": "self.version"
@@ -7199,7 +7221,7 @@
"object",
"object graph"
],
"time": "2020-01-17T21:11:47+00:00"
"time": "2020-06-29T13:22:24+00:00"
},
{
"name": "nunomaduro/collision",
@@ -7375,25 +7397,25 @@
},
{
"name": "phpdocumentor/reflection-common",
"version": "2.1.0",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
"reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b"
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
"reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
"dev-2.x": "2.x-dev"
}
},
"autoload": {
@@ -7420,7 +7442,7 @@
"reflection",
"static analysis"
],
"time": "2020-04-27T09:25:28+00:00"
"time": "2020-06-27T09:03:43+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
@@ -7477,25 +7499,24 @@
},
{
"name": "phpdocumentor/type-resolver",
"version": "1.2.0",
"version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "30441f2752e493c639526b215ed81d54f369d693"
"reference": "e878a14a65245fbe78f8080eba03b47c3b705651"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/30441f2752e493c639526b215ed81d54f369d693",
"reference": "30441f2752e493c639526b215ed81d54f369d693",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651",
"reference": "e878a14a65245fbe78f8080eba03b47c3b705651",
"shasum": ""
},
"require": {
"php": "^7.2",
"php": "^7.2 || ^8.0",
"phpdocumentor/reflection-common": "^2.0"
},
"require-dev": {
"ext-tokenizer": "^7.2",
"mockery/mockery": "~1"
"ext-tokenizer": "*"
},
"type": "library",
"extra": {
@@ -7519,37 +7540,37 @@
}
],
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"time": "2020-06-19T20:22:09+00:00"
"time": "2020-06-27T10:12:23+00:00"
},
{
"name": "phpspec/prophecy",
"version": "v1.10.3",
"version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
"reference": "451c3cd1418cf640de218914901e51b064abb093"
"reference": "b20034be5efcdab4fb60ca3a29cba2949aead160"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
"reference": "451c3cd1418cf640de218914901e51b064abb093",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/b20034be5efcdab4fb60ca3a29cba2949aead160",
"reference": "b20034be5efcdab4fb60ca3a29cba2949aead160",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0",
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
"sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
"doctrine/instantiator": "^1.2",
"php": "^7.2",
"phpdocumentor/reflection-docblock": "^5.0",
"sebastian/comparator": "^3.0 || ^4.0",
"sebastian/recursion-context": "^3.0 || ^4.0"
},
"require-dev": {
"phpspec/phpspec": "^2.5 || ^3.2",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
"phpspec/phpspec": "^6.0",
"phpunit/phpunit": "^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.10.x-dev"
"dev-master": "1.11.x-dev"
}
},
"autoload": {
@@ -7582,7 +7603,7 @@
"spy",
"stub"
],
"time": "2020-03-05T15:02:03+00:00"
"time": "2020-07-08T12:44:21+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -8654,16 +8675,16 @@
},
{
"name": "seld/phar-utils",
"version": "1.1.0",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/phar-utils.git",
"reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0"
"reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0",
"reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0",
"url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796",
"reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796",
"shasum": ""
},
"require": {
@@ -8694,7 +8715,7 @@
"keywords": [
"phar"
],
"time": "2020-02-14T15:25:33+00:00"
"time": "2020-07-07T18:42:57+00:00"
},
{
"name": "symfony/filesystem",
@@ -8788,20 +8809,20 @@
},
{
"name": "webmozart/assert",
"version": "1.9.0",
"version": "1.9.1",
"source": {
"type": "git",
"url": "https://github.com/webmozart/assert.git",
"reference": "9dc4f203e36f2b486149058bade43c851dd97451"
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webmozart/assert/zipball/9dc4f203e36f2b486149058bade43c851dd97451",
"reference": "9dc4f203e36f2b486149058bade43c851dd97451",
"url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
"shasum": ""
},
"require": {
"php": "^5.3.3 || ^7.0",
"php": "^5.3.3 || ^7.0 || ^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -8833,7 +8854,7 @@
"check",
"validate"
],
"time": "2020-06-16T10:16:42+00:00"
"time": "2020-07-08T17:02:28+00:00"
}
],
"aliases": [],

View File

@@ -80,7 +80,7 @@ return [
|
*/
'locale' => 'en',
'locale' => 'sk',
/*
|--------------------------------------------------------------------------
@@ -239,28 +239,55 @@ return [
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_USERNAME',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_PASSWORD',
'PUSHER_APP_KEY',
'PUSHER_APP_SECRET',
'PASSPORT_CLIENT_ID',
'PASSPORT_CLIENT_SECRET',
'AWS_SECRET_ACCESS_KEY',
'AWS_ACCESS_KEY_ID',
'AWS_SECRET_ACCESS_KEY',
'DO_SPACES_KEY',
'DO_SPACES_SECRET',
'WASABI_KEY',
'WASABI_SECRET',
'BACKBLAZE_KEY',
'BACKBLAZE_SECRET',
],
'_SERVER' => [
'APP_KEY',
'DB_USERNAME',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_PASSWORD',
'PUSHER_APP_KEY',
'PUSHER_APP_SECRET',
'PASSPORT_CLIENT_ID',
'PASSPORT_CLIENT_SECRET',
'AWS_ACCESS_KEY_ID',
'AWS_SECRET_ACCESS_KEY',
'AWS_ACCESS_KEY_ID',
'DO_SPACES_KEY',
'DO_SPACES_SECRET',
'WASABI_KEY',
'WASABI_SECRET',
'BACKBLAZE_KEY',
'BACKBLAZE_SECRET',
],
'_POST' => [
'password',

View File

@@ -1,297 +1,115 @@
{
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/js/main.16976b0d5706c2a00092.hot-update.js": "/js/main.16976b0d5706c2a00092.hot-update.js",
"/js/main.a211c0d72c6ded875d15.hot-update.js": "/js/main.a211c0d72c6ded875d15.hot-update.js",
"/js/main.2f7ed2be33be8a628c94.hot-update.js": "/js/main.2f7ed2be33be8a628c94.hot-update.js",
"/js/main.41ebe4de6b7379b19aae.hot-update.js": "/js/main.41ebe4de6b7379b19aae.hot-update.js",
"/js/main.0f3a90b8f378f32dcefd.hot-update.js": "/js/main.0f3a90b8f378f32dcefd.hot-update.js",
"/js/main.8061b41cbff2c99e8892.hot-update.js": "/js/main.8061b41cbff2c99e8892.hot-update.js",
"/js/main.8bbdafddac84c5216bf2.hot-update.js": "/js/main.8bbdafddac84c5216bf2.hot-update.js",
"/js/main.874276679a5cc2310cb2.hot-update.js": "/js/main.874276679a5cc2310cb2.hot-update.js",
"/js/main.fb0e89a13e3bccb562c6.hot-update.js": "/js/main.fb0e89a13e3bccb562c6.hot-update.js",
"/js/main.0c3be53e15ad4f96bc41.hot-update.js": "/js/main.0c3be53e15ad4f96bc41.hot-update.js",
"/js/main.bf1c3c4043845e03345e.hot-update.js": "/js/main.bf1c3c4043845e03345e.hot-update.js",
"/js/main.12e4b2cf981dcc9e768a.hot-update.js": "/js/main.12e4b2cf981dcc9e768a.hot-update.js",
"/js/main.0abf1dd52a2776a478b4.hot-update.js": "/js/main.0abf1dd52a2776a478b4.hot-update.js",
"/js/main.a18a08d3a28152cc7cb2.hot-update.js": "/js/main.a18a08d3a28152cc7cb2.hot-update.js",
"/js/main.6d3700ac99287979de27.hot-update.js": "/js/main.6d3700ac99287979de27.hot-update.js",
"/js/main.b134bc2a66c059fdf792.hot-update.js": "/js/main.b134bc2a66c059fdf792.hot-update.js",
"/js/main.d75cde21608d40f79776.hot-update.js": "/js/main.d75cde21608d40f79776.hot-update.js",
"/js/main.77ff21263b76989532ed.hot-update.js": "/js/main.77ff21263b76989532ed.hot-update.js",
"/js/main.40151b0bcd05a234189b.hot-update.js": "/js/main.40151b0bcd05a234189b.hot-update.js",
"/js/main.79c0c46b3144482d3bb0.hot-update.js": "/js/main.79c0c46b3144482d3bb0.hot-update.js",
"/js/main.469486322ed7679225b6.hot-update.js": "/js/main.469486322ed7679225b6.hot-update.js",
"/js/main.518685d7fe77c54be3c6.hot-update.js": "/js/main.518685d7fe77c54be3c6.hot-update.js",
"/js/main.083746580fffb67d9ebe.hot-update.js": "/js/main.083746580fffb67d9ebe.hot-update.js",
"/js/main.a0341dd65fdef07c70b7.hot-update.js": "/js/main.a0341dd65fdef07c70b7.hot-update.js",
"/js/main.42c5f08f687d8e7f5911.hot-update.js": "/js/main.42c5f08f687d8e7f5911.hot-update.js",
"/js/main.7e3b0de5a8e587da220b.hot-update.js": "/js/main.7e3b0de5a8e587da220b.hot-update.js",
"/js/main.6b99f5562239841fa03c.hot-update.js": "/js/main.6b99f5562239841fa03c.hot-update.js",
"/js/main.3ffbbb278020dcc4a63d.hot-update.js": "/js/main.3ffbbb278020dcc4a63d.hot-update.js",
"/js/main.4a0368537496905355bd.hot-update.js": "/js/main.4a0368537496905355bd.hot-update.js",
"/js/main.5f9c7ff63834ee297ed7.hot-update.js": "/js/main.5f9c7ff63834ee297ed7.hot-update.js",
"/js/main.a02e07e032a4351c3dfe.hot-update.js": "/js/main.a02e07e032a4351c3dfe.hot-update.js",
"/js/main.489f7ed6cf9c4e6982be.hot-update.js": "/js/main.489f7ed6cf9c4e6982be.hot-update.js",
"/js/main.872bcf53000f970576df.hot-update.js": "/js/main.872bcf53000f970576df.hot-update.js",
"/js/main.2ef085884a7fa44278ce.hot-update.js": "/js/main.2ef085884a7fa44278ce.hot-update.js",
"/js/main.34d56f38fca2e433cacf.hot-update.js": "/js/main.34d56f38fca2e433cacf.hot-update.js",
"/js/main.466d710b501a93abd7f4.hot-update.js": "/js/main.466d710b501a93abd7f4.hot-update.js",
"/js/main.f7dae3809a9f3583ff34.hot-update.js": "/js/main.f7dae3809a9f3583ff34.hot-update.js",
"/js/main.0862ece8be796e0f6195.hot-update.js": "/js/main.0862ece8be796e0f6195.hot-update.js",
"/js/main.9f95c61a9ca0721e3738.hot-update.js": "/js/main.9f95c61a9ca0721e3738.hot-update.js",
"/js/main.fa1dc34dabcbab87344b.hot-update.js": "/js/main.fa1dc34dabcbab87344b.hot-update.js",
"/js/main.c2c02a0db55681a7e541.hot-update.js": "/js/main.c2c02a0db55681a7e541.hot-update.js",
"/js/main.8d5d79b5e894c5402f7d.hot-update.js": "/js/main.8d5d79b5e894c5402f7d.hot-update.js",
"/js/main.8f82060e41947c1e7cb3.hot-update.js": "/js/main.8f82060e41947c1e7cb3.hot-update.js",
"/js/main.4ca1a3f33fff650214d0.hot-update.js": "/js/main.4ca1a3f33fff650214d0.hot-update.js",
"/js/main.5bb6544e8c6b09359550.hot-update.js": "/js/main.5bb6544e8c6b09359550.hot-update.js",
"/js/main.6d1ef470bed9b4cb265c.hot-update.js": "/js/main.6d1ef470bed9b4cb265c.hot-update.js",
"/js/main.757827785a635bc21758.hot-update.js": "/js/main.757827785a635bc21758.hot-update.js",
"/js/main.6e7f1e2f8ca70c6ad7e2.hot-update.js": "/js/main.6e7f1e2f8ca70c6ad7e2.hot-update.js",
"/js/main.1c06b4e4f740aae1077b.hot-update.js": "/js/main.1c06b4e4f740aae1077b.hot-update.js",
"/js/main.df9fd59943447226f3c6.hot-update.js": "/js/main.df9fd59943447226f3c6.hot-update.js",
"/js/main.9c621ba4eed601c0f6f0.hot-update.js": "/js/main.9c621ba4eed601c0f6f0.hot-update.js",
"/js/main.709335aea3a22987ac1a.hot-update.js": "/js/main.709335aea3a22987ac1a.hot-update.js",
"/js/main.98ae78a0faa3eaede224.hot-update.js": "/js/main.98ae78a0faa3eaede224.hot-update.js",
"/js/main.974ca0ca6760f28c54c4.hot-update.js": "/js/main.974ca0ca6760f28c54c4.hot-update.js",
"/js/main.ec16e154c799de466efe.hot-update.js": "/js/main.ec16e154c799de466efe.hot-update.js",
"/js/main.3cb2aeec0e03ba8e9c47.hot-update.js": "/js/main.3cb2aeec0e03ba8e9c47.hot-update.js",
"/js/main.fe54d34c7b97f29d9594.hot-update.js": "/js/main.fe54d34c7b97f29d9594.hot-update.js",
"/js/main.a8eb63020d7c840892c7.hot-update.js": "/js/main.a8eb63020d7c840892c7.hot-update.js",
"/js/main.23704e19cb7454c18696.hot-update.js": "/js/main.23704e19cb7454c18696.hot-update.js",
"/js/main.f5d7cf948058831397f3.hot-update.js": "/js/main.f5d7cf948058831397f3.hot-update.js",
"/js/main.f3f9f32c61e45753a3fb.hot-update.js": "/js/main.f3f9f32c61e45753a3fb.hot-update.js",
"/js/main.2b20a5b95235d5895759.hot-update.js": "/js/main.2b20a5b95235d5895759.hot-update.js",
"/js/main.256e1f115ce42c71dedf.hot-update.js": "/js/main.256e1f115ce42c71dedf.hot-update.js",
"/js/main.f92a4dfa091e4476483e.hot-update.js": "/js/main.f92a4dfa091e4476483e.hot-update.js",
"/js/main.8e577ec9da5c134f5921.hot-update.js": "/js/main.8e577ec9da5c134f5921.hot-update.js",
"/js/main.3afcbe74ecf0967bae12.hot-update.js": "/js/main.3afcbe74ecf0967bae12.hot-update.js",
"/js/main.b4e361a0f5fadbed2b91.hot-update.js": "/js/main.b4e361a0f5fadbed2b91.hot-update.js",
"/js/main.ab71a9d67bf80623241c.hot-update.js": "/js/main.ab71a9d67bf80623241c.hot-update.js",
"/js/main.822404ed31e1c7a4da54.hot-update.js": "/js/main.822404ed31e1c7a4da54.hot-update.js",
"/js/main.263161964edff3d3e929.hot-update.js": "/js/main.263161964edff3d3e929.hot-update.js",
"/js/main.9768f88e7907d660548e.hot-update.js": "/js/main.9768f88e7907d660548e.hot-update.js",
"/js/main.3b39c7f507f5bf626c96.hot-update.js": "/js/main.3b39c7f507f5bf626c96.hot-update.js",
"/js/main.5696b1aeae48d4332cb7.hot-update.js": "/js/main.5696b1aeae48d4332cb7.hot-update.js",
"/js/main.8ead1856944b29ac775e.hot-update.js": "/js/main.8ead1856944b29ac775e.hot-update.js",
"/js/main.74bd951352632ad0f3b8.hot-update.js": "/js/main.74bd951352632ad0f3b8.hot-update.js",
"/js/main.24aa72d9f5df957773f4.hot-update.js": "/js/main.24aa72d9f5df957773f4.hot-update.js",
"/js/main.ee9cc233513282294067.hot-update.js": "/js/main.ee9cc233513282294067.hot-update.js",
"/js/main.2fb019a238db5fe0b57a.hot-update.js": "/js/main.2fb019a238db5fe0b57a.hot-update.js",
"/js/main.b0747b0026aa12d82148.hot-update.js": "/js/main.b0747b0026aa12d82148.hot-update.js",
"/js/main.3eb95def6e309e869065.hot-update.js": "/js/main.3eb95def6e309e869065.hot-update.js",
"/js/main.68bc8f304c03b87bde6c.hot-update.js": "/js/main.68bc8f304c03b87bde6c.hot-update.js",
"/js/main.eea0a3863d4444122387.hot-update.js": "/js/main.eea0a3863d4444122387.hot-update.js",
"/js/main.8e63403d4cb05270cda8.hot-update.js": "/js/main.8e63403d4cb05270cda8.hot-update.js",
"/js/main.7eaa97adb1c24aa10ee7.hot-update.js": "/js/main.7eaa97adb1c24aa10ee7.hot-update.js",
"/js/main.677a29997da90d239321.hot-update.js": "/js/main.677a29997da90d239321.hot-update.js",
"/js/main.f31a178ed458429a6029.hot-update.js": "/js/main.f31a178ed458429a6029.hot-update.js",
"/js/main.08051bae45414ea3e737.hot-update.js": "/js/main.08051bae45414ea3e737.hot-update.js",
"/js/main.db9c4a61a85ec1c723ff.hot-update.js": "/js/main.db9c4a61a85ec1c723ff.hot-update.js",
"/js/main.e80c3665c97cbe2f9c99.hot-update.js": "/js/main.e80c3665c97cbe2f9c99.hot-update.js",
"/js/main.a8c70e3e9d306a653fdd.hot-update.js": "/js/main.a8c70e3e9d306a653fdd.hot-update.js",
"/js/main.01ea8fc57e9ee32f3511.hot-update.js": "/js/main.01ea8fc57e9ee32f3511.hot-update.js",
"/js/main.a96a397b546de0bdaefe.hot-update.js": "/js/main.a96a397b546de0bdaefe.hot-update.js",
"/js/main.cd37c076ef4b6ffa1066.hot-update.js": "/js/main.cd37c076ef4b6ffa1066.hot-update.js",
"/js/main.c3934e1fb8ae435bccdf.hot-update.js": "/js/main.c3934e1fb8ae435bccdf.hot-update.js",
"/js/main.0c60592eb4d7e3df5065.hot-update.js": "/js/main.0c60592eb4d7e3df5065.hot-update.js",
"/js/main.8411b90746a4fe9cffc3.hot-update.js": "/js/main.8411b90746a4fe9cffc3.hot-update.js",
"/js/main.0976a48abb2d771f18ef.hot-update.js": "/js/main.0976a48abb2d771f18ef.hot-update.js",
"/js/main.73c95c3b8a566985ba89.hot-update.js": "/js/main.73c95c3b8a566985ba89.hot-update.js",
"/js/main.30a4931b93d799ac9cde.hot-update.js": "/js/main.30a4931b93d799ac9cde.hot-update.js",
"/js/main.752f09bcab9312df80f7.hot-update.js": "/js/main.752f09bcab9312df80f7.hot-update.js",
"/js/main.9673279bcb4703b7047d.hot-update.js": "/js/main.9673279bcb4703b7047d.hot-update.js",
"/js/main.48ad6363e8988b13af7e.hot-update.js": "/js/main.48ad6363e8988b13af7e.hot-update.js",
"/js/main.a1cd261ccf13dfef9842.hot-update.js": "/js/main.a1cd261ccf13dfef9842.hot-update.js",
"/js/main.90a02c322e17b55f2aa0.hot-update.js": "/js/main.90a02c322e17b55f2aa0.hot-update.js",
"/js/main.d0998bfa55ba80b05ce2.hot-update.js": "/js/main.d0998bfa55ba80b05ce2.hot-update.js",
"/js/main.fc2c589ac28b34cd86c1.hot-update.js": "/js/main.fc2c589ac28b34cd86c1.hot-update.js",
"/js/main.5f73c9e4aaba706cc8bf.hot-update.js": "/js/main.5f73c9e4aaba706cc8bf.hot-update.js",
"/js/main.6266a430210a222231af.hot-update.js": "/js/main.6266a430210a222231af.hot-update.js",
"/js/main.16fe81256d3096ee719a.hot-update.js": "/js/main.16fe81256d3096ee719a.hot-update.js",
"/js/main.c0405a10917592b127c1.hot-update.js": "/js/main.c0405a10917592b127c1.hot-update.js",
"/js/main.1b4aa9a9619777869eec.hot-update.js": "/js/main.1b4aa9a9619777869eec.hot-update.js",
"/js/main.588d9ece8b504c93737f.hot-update.js": "/js/main.588d9ece8b504c93737f.hot-update.js",
"/js/main.b2f8de27a3bd67ac35a4.hot-update.js": "/js/main.b2f8de27a3bd67ac35a4.hot-update.js",
"/js/main.70a024f32874574bb991.hot-update.js": "/js/main.70a024f32874574bb991.hot-update.js",
"/js/main.fb7331769c4c6f65f074.hot-update.js": "/js/main.fb7331769c4c6f65f074.hot-update.js",
"/js/main.1694a9416fde14785a9c.hot-update.js": "/js/main.1694a9416fde14785a9c.hot-update.js",
"/js/main.7173937d4f7649a45a43.hot-update.js": "/js/main.7173937d4f7649a45a43.hot-update.js",
"/js/main.dd40aef833b706962974.hot-update.js": "/js/main.dd40aef833b706962974.hot-update.js",
"/js/main.b2a3fc96d076b23c0665.hot-update.js": "/js/main.b2a3fc96d076b23c0665.hot-update.js",
"/js/main.bb840bc1aa63dd116b8a.hot-update.js": "/js/main.bb840bc1aa63dd116b8a.hot-update.js",
"/js/main.d7b93a6fdc4801343643.hot-update.js": "/js/main.d7b93a6fdc4801343643.hot-update.js",
"/js/main.52be778aa7edc57c429c.hot-update.js": "/js/main.52be778aa7edc57c429c.hot-update.js",
"/js/main.839fbc8892a0e6201d14.hot-update.js": "/js/main.839fbc8892a0e6201d14.hot-update.js",
"/js/main.a5a78e0748f1a1b63dab.hot-update.js": "/js/main.a5a78e0748f1a1b63dab.hot-update.js",
"/js/main.212af0d35ad85b31a916.hot-update.js": "/js/main.212af0d35ad85b31a916.hot-update.js",
"/js/main.7a91e002c87b8af6a536.hot-update.js": "/js/main.7a91e002c87b8af6a536.hot-update.js",
"/js/main.668b6d168627c849b0e4.hot-update.js": "/js/main.668b6d168627c849b0e4.hot-update.js",
"/js/main.a93b6be9df0525809026.hot-update.js": "/js/main.a93b6be9df0525809026.hot-update.js",
"/js/main.d0b2d48845c07a042505.hot-update.js": "/js/main.d0b2d48845c07a042505.hot-update.js",
"/js/main.e4253ee3fab1d1fff214.hot-update.js": "/js/main.e4253ee3fab1d1fff214.hot-update.js",
"/js/main.91d9e11b1efe7c7d0d15.hot-update.js": "/js/main.91d9e11b1efe7c7d0d15.hot-update.js",
"/js/main.dc0fab4176fb7c6813b2.hot-update.js": "/js/main.dc0fab4176fb7c6813b2.hot-update.js",
"/js/main.d11c3b0e0d7cc1e48dca.hot-update.js": "/js/main.d11c3b0e0d7cc1e48dca.hot-update.js",
"/js/main.2a529cddc98e893a2a92.hot-update.js": "/js/main.2a529cddc98e893a2a92.hot-update.js",
"/js/main.c1ccc04443059ee81bbd.hot-update.js": "/js/main.c1ccc04443059ee81bbd.hot-update.js",
"/js/main.3591683cbd6405141621.hot-update.js": "/js/main.3591683cbd6405141621.hot-update.js",
"/js/main.edc3e8d79e6f7dbcd78a.hot-update.js": "/js/main.edc3e8d79e6f7dbcd78a.hot-update.js",
"/js/main.bcb98702fe5f148ca99b.hot-update.js": "/js/main.bcb98702fe5f148ca99b.hot-update.js",
"/js/main.d93739d96e7f0dd63a6e.hot-update.js": "/js/main.d93739d96e7f0dd63a6e.hot-update.js",
"/js/main.21982489490b8b1f053b.hot-update.js": "/js/main.21982489490b8b1f053b.hot-update.js",
"/js/main.f78fd5f2e6fdd875629a.hot-update.js": "/js/main.f78fd5f2e6fdd875629a.hot-update.js",
"/js/main.7879315093b155e70be2.hot-update.js": "/js/main.7879315093b155e70be2.hot-update.js",
"/js/main.e0b6de1f5c9fbd6385ae.hot-update.js": "/js/main.e0b6de1f5c9fbd6385ae.hot-update.js",
"/js/main.fc88d4d7925a25cd3ca8.hot-update.js": "/js/main.fc88d4d7925a25cd3ca8.hot-update.js",
"/js/main.53bde087ad2b4a5fb326.hot-update.js": "/js/main.53bde087ad2b4a5fb326.hot-update.js",
"/js/main.70e0952ecd6228de217a.hot-update.js": "/js/main.70e0952ecd6228de217a.hot-update.js",
"/js/main.b694752c4beb49d17887.hot-update.js": "/js/main.b694752c4beb49d17887.hot-update.js",
"/js/main.ca80fbb07d0f0f1ace38.hot-update.js": "/js/main.ca80fbb07d0f0f1ace38.hot-update.js",
"/js/main.b124350f9f734bcfe2ee.hot-update.js": "/js/main.b124350f9f734bcfe2ee.hot-update.js",
"/js/main.e748be3883e9de32b0fb.hot-update.js": "/js/main.e748be3883e9de32b0fb.hot-update.js",
"/js/main.278019b6c6b74a339884.hot-update.js": "/js/main.278019b6c6b74a339884.hot-update.js",
"/js/main.41107c8e3c7ad87b0d64.hot-update.js": "/js/main.41107c8e3c7ad87b0d64.hot-update.js",
"/js/main.3703f4c70eac63efbd9f.hot-update.js": "/js/main.3703f4c70eac63efbd9f.hot-update.js",
"/js/main.d749219e06421131ba5f.hot-update.js": "/js/main.d749219e06421131ba5f.hot-update.js",
"/js/main.20fa819c4cd22e824f75.hot-update.js": "/js/main.20fa819c4cd22e824f75.hot-update.js",
"/js/main.d1d52ee2fab59c6a91e1.hot-update.js": "/js/main.d1d52ee2fab59c6a91e1.hot-update.js",
"/js/main.db26cc4c20789df44aa2.hot-update.js": "/js/main.db26cc4c20789df44aa2.hot-update.js",
"/js/main.d5307c561d3c930ab7e5.hot-update.js": "/js/main.d5307c561d3c930ab7e5.hot-update.js",
"/js/main.d3041f453ecd615aae72.hot-update.js": "/js/main.d3041f453ecd615aae72.hot-update.js",
"/js/main.004d7e6d77ccc3b781b4.hot-update.js": "/js/main.004d7e6d77ccc3b781b4.hot-update.js",
"/js/main.ef2eab6e7f29b856cb04.hot-update.js": "/js/main.ef2eab6e7f29b856cb04.hot-update.js",
"/js/main.dfaaa4609f908dc952c1.hot-update.js": "/js/main.dfaaa4609f908dc952c1.hot-update.js",
"/js/main.931d8fb7c032b784e10d.hot-update.js": "/js/main.931d8fb7c032b784e10d.hot-update.js",
"/js/main.b8cd688a2fe891c59ab7.hot-update.js": "/js/main.b8cd688a2fe891c59ab7.hot-update.js",
"/js/main.ac3c8bc2323e792340fc.hot-update.js": "/js/main.ac3c8bc2323e792340fc.hot-update.js",
"/js/main.c87dd72cd5100c869612.hot-update.js": "/js/main.c87dd72cd5100c869612.hot-update.js",
"/js/main.641ff08404b2dce38497.hot-update.js": "/js/main.641ff08404b2dce38497.hot-update.js",
"/js/main.12c8a38776fc5151961a.hot-update.js": "/js/main.12c8a38776fc5151961a.hot-update.js",
"/js/main.566920d55522102802f9.hot-update.js": "/js/main.566920d55522102802f9.hot-update.js",
"/js/main.a9cbd3028594009ac18d.hot-update.js": "/js/main.a9cbd3028594009ac18d.hot-update.js",
"/js/main.1056b30c917d55f286db.hot-update.js": "/js/main.1056b30c917d55f286db.hot-update.js",
"/js/main.67b45271e6bc3ef59224.hot-update.js": "/js/main.67b45271e6bc3ef59224.hot-update.js",
"/js/main.5647a13b5606291fe87f.hot-update.js": "/js/main.5647a13b5606291fe87f.hot-update.js",
"/js/main.5c7c0c5a8555b3ca3861.hot-update.js": "/js/main.5c7c0c5a8555b3ca3861.hot-update.js",
"/js/main.6fed08595674209484cc.hot-update.js": "/js/main.6fed08595674209484cc.hot-update.js",
"/js/main.dbf95742a1c6b10fef82.hot-update.js": "/js/main.dbf95742a1c6b10fef82.hot-update.js",
"/js/main.d2cd2dbbeededfde4747.hot-update.js": "/js/main.d2cd2dbbeededfde4747.hot-update.js",
"/js/main.8c8ab7ee8f110a6778e7.hot-update.js": "/js/main.8c8ab7ee8f110a6778e7.hot-update.js",
"/js/main.0a9830dfaadcac43ad90.hot-update.js": "/js/main.0a9830dfaadcac43ad90.hot-update.js",
"/js/main.c52f09db76f6521311d0.hot-update.js": "/js/main.c52f09db76f6521311d0.hot-update.js",
"/js/main.5eaadb8ade32028e6d9c.hot-update.js": "/js/main.5eaadb8ade32028e6d9c.hot-update.js",
"/js/main.5ea1c209e4ba1a66191b.hot-update.js": "/js/main.5ea1c209e4ba1a66191b.hot-update.js",
"/js/main.fb81adae93ae1109a054.hot-update.js": "/js/main.fb81adae93ae1109a054.hot-update.js",
"/js/main.d27bcdc0e934cd992fea.hot-update.js": "/js/main.d27bcdc0e934cd992fea.hot-update.js",
"/js/main.9621e68a9cec93315d6f.hot-update.js": "/js/main.9621e68a9cec93315d6f.hot-update.js",
"/js/main.ff0be9f89c5168bdaba6.hot-update.js": "/js/main.ff0be9f89c5168bdaba6.hot-update.js",
"/js/main.d9598c910569aa83148d.hot-update.js": "/js/main.d9598c910569aa83148d.hot-update.js",
"/js/main.44f644f118d7704b24ec.hot-update.js": "/js/main.44f644f118d7704b24ec.hot-update.js",
"/js/main.5bdaa56d5aed6e8f6364.hot-update.js": "/js/main.5bdaa56d5aed6e8f6364.hot-update.js",
"/js/main.ec01a51e0e5a53cfb359.hot-update.js": "/js/main.ec01a51e0e5a53cfb359.hot-update.js",
"/js/main.f92016b969ed908c935d.hot-update.js": "/js/main.f92016b969ed908c935d.hot-update.js",
"/js/main.41abc6ba9aeb74e7c3c7.hot-update.js": "/js/main.41abc6ba9aeb74e7c3c7.hot-update.js",
"/js/main.b1b6d51330cfc5041bc5.hot-update.js": "/js/main.b1b6d51330cfc5041bc5.hot-update.js",
"/js/main.fd77c3c1cf870493480b.hot-update.js": "/js/main.fd77c3c1cf870493480b.hot-update.js",
"/js/main.fd9df7267c2d99bc893d.hot-update.js": "/js/main.fd9df7267c2d99bc893d.hot-update.js",
"/js/main.45dd13d09dae058ba872.hot-update.js": "/js/main.45dd13d09dae058ba872.hot-update.js",
"/js/main.0a8395c1069ccefb0943.hot-update.js": "/js/main.0a8395c1069ccefb0943.hot-update.js",
"/js/main.6d554f4a3c4ec827a959.hot-update.js": "/js/main.6d554f4a3c4ec827a959.hot-update.js",
"/js/main.1a5c4ad2b6aef192ec4f.hot-update.js": "/js/main.1a5c4ad2b6aef192ec4f.hot-update.js",
"/js/main.bc3a88e8bd8844326875.hot-update.js": "/js/main.bc3a88e8bd8844326875.hot-update.js",
"/js/main.308b3b0df2e2e3948dbc.hot-update.js": "/js/main.308b3b0df2e2e3948dbc.hot-update.js",
"/js/main.9d1cc0ccb868d3967f71.hot-update.js": "/js/main.9d1cc0ccb868d3967f71.hot-update.js",
"/js/main.25a21955766150c76941.hot-update.js": "/js/main.25a21955766150c76941.hot-update.js",
"/js/main.b0b92dd5c8138a4c9b98.hot-update.js": "/js/main.b0b92dd5c8138a4c9b98.hot-update.js",
"/js/main.69ad6d1e840ce22281bf.hot-update.js": "/js/main.69ad6d1e840ce22281bf.hot-update.js",
"/js/main.a48d4c1a19b0cba22963.hot-update.js": "/js/main.a48d4c1a19b0cba22963.hot-update.js",
"/js/main.1aab1718cf149559392f.hot-update.js": "/js/main.1aab1718cf149559392f.hot-update.js",
"/js/main.9dde85f6fcc4f8bd6631.hot-update.js": "/js/main.9dde85f6fcc4f8bd6631.hot-update.js",
"/js/main.88aa9e8c3f4a6006af43.hot-update.js": "/js/main.88aa9e8c3f4a6006af43.hot-update.js",
"/js/main.fa53519359fcec31b8fc.hot-update.js": "/js/main.fa53519359fcec31b8fc.hot-update.js",
"/js/main.8ab31299c3202def3b72.hot-update.js": "/js/main.8ab31299c3202def3b72.hot-update.js",
"/js/main.4fea33b8e211270b52b7.hot-update.js": "/js/main.4fea33b8e211270b52b7.hot-update.js",
"/js/main.e1d361c0e8bc17114e8e.hot-update.js": "/js/main.e1d361c0e8bc17114e8e.hot-update.js",
"/js/main.9bfef48d6b70ca5aa783.hot-update.js": "/js/main.9bfef48d6b70ca5aa783.hot-update.js",
"/js/main.1586788eaae954e1e4d3.hot-update.js": "/js/main.1586788eaae954e1e4d3.hot-update.js",
"/js/main.e166fc5ed7f56f97e136.hot-update.js": "/js/main.e166fc5ed7f56f97e136.hot-update.js",
"/js/main.4891a453eab2e3fca61f.hot-update.js": "/js/main.4891a453eab2e3fca61f.hot-update.js",
"/js/main.845b32877e889a928971.hot-update.js": "/js/main.845b32877e889a928971.hot-update.js",
"/js/main.daf67585052f46540fe1.hot-update.js": "/js/main.daf67585052f46540fe1.hot-update.js",
"/js/main.37eae3f9ced48c056d91.hot-update.js": "/js/main.37eae3f9ced48c056d91.hot-update.js",
"/js/main.5795b0e3d8ccd0a35746.hot-update.js": "/js/main.5795b0e3d8ccd0a35746.hot-update.js",
"/js/main.4827f3616eb69595e599.hot-update.js": "/js/main.4827f3616eb69595e599.hot-update.js",
"/js/main.ce9404ad0a7c39e16bda.hot-update.js": "/js/main.ce9404ad0a7c39e16bda.hot-update.js",
"/js/main.13dad5c43211389f15a7.hot-update.js": "/js/main.13dad5c43211389f15a7.hot-update.js",
"/js/main.df868c27dae73ae76e5a.hot-update.js": "/js/main.df868c27dae73ae76e5a.hot-update.js",
"/js/main.44d076b285147195d904.hot-update.js": "/js/main.44d076b285147195d904.hot-update.js",
"/js/main.c47875f1460781df96c2.hot-update.js": "/js/main.c47875f1460781df96c2.hot-update.js",
"/js/main.f61d813cccaa3b1273bc.hot-update.js": "/js/main.f61d813cccaa3b1273bc.hot-update.js",
"/js/main.9802b7239d9a230b2dca.hot-update.js": "/js/main.9802b7239d9a230b2dca.hot-update.js",
"/js/main.fa187f65e1bd71f69699.hot-update.js": "/js/main.fa187f65e1bd71f69699.hot-update.js",
"/js/main.633617e8eba3821c3bac.hot-update.js": "/js/main.633617e8eba3821c3bac.hot-update.js",
"/js/main.f6fb49e311ffff953243.hot-update.js": "/js/main.f6fb49e311ffff953243.hot-update.js",
"/js/main.dc7221de894747bb892e.hot-update.js": "/js/main.dc7221de894747bb892e.hot-update.js",
"/js/main.6c8903b924fa7a9a70bb.hot-update.js": "/js/main.6c8903b924fa7a9a70bb.hot-update.js",
"/js/main.67ca2888e104841b449d.hot-update.js": "/js/main.67ca2888e104841b449d.hot-update.js",
"/js/main.f7ea32b1bdd7d5893101.hot-update.js": "/js/main.f7ea32b1bdd7d5893101.hot-update.js",
"/js/main.bb919bf230ccfd1da5ad.hot-update.js": "/js/main.bb919bf230ccfd1da5ad.hot-update.js",
"/js/main.c339a8942aeb56673ce8.hot-update.js": "/js/main.c339a8942aeb56673ce8.hot-update.js",
"/js/main.666b5bd039ecb83ba849.hot-update.js": "/js/main.666b5bd039ecb83ba849.hot-update.js",
"/js/main.5d6bd6229cad21177b5d.hot-update.js": "/js/main.5d6bd6229cad21177b5d.hot-update.js",
"/js/main.1314bd7b0155050142db.hot-update.js": "/js/main.1314bd7b0155050142db.hot-update.js",
"/js/main.c55d0aaf47449e57f28f.hot-update.js": "/js/main.c55d0aaf47449e57f28f.hot-update.js",
"/js/main.1ebff55b9a709134bdf9.hot-update.js": "/js/main.1ebff55b9a709134bdf9.hot-update.js",
"/js/main.d9e14c4f874d9aae2991.hot-update.js": "/js/main.d9e14c4f874d9aae2991.hot-update.js",
"/js/main.6aad28750a58dc8a1a84.hot-update.js": "/js/main.6aad28750a58dc8a1a84.hot-update.js",
"/js/main.a4a5e491361ca05ac530.hot-update.js": "/js/main.a4a5e491361ca05ac530.hot-update.js",
"/js/main.ab40d76d1114a2a348d9.hot-update.js": "/js/main.ab40d76d1114a2a348d9.hot-update.js",
"/js/main.272e7fc5df78185ef223.hot-update.js": "/js/main.272e7fc5df78185ef223.hot-update.js",
"/js/main.3980c9d6032f6d9893d6.hot-update.js": "/js/main.3980c9d6032f6d9893d6.hot-update.js",
"/js/main.3fd1ae93571bb5fe8493.hot-update.js": "/js/main.3fd1ae93571bb5fe8493.hot-update.js",
"/js/main.c9097f4a153e7fd3e0bd.hot-update.js": "/js/main.c9097f4a153e7fd3e0bd.hot-update.js",
"/js/main.89cbccfdfb280c101229.hot-update.js": "/js/main.89cbccfdfb280c101229.hot-update.js",
"/js/main.3a92cbc41ec25d8e2018.hot-update.js": "/js/main.3a92cbc41ec25d8e2018.hot-update.js",
"/js/main.2a86157426eb177cc6f2.hot-update.js": "/js/main.2a86157426eb177cc6f2.hot-update.js",
"/js/main.411caab58470390ff0bd.hot-update.js": "/js/main.411caab58470390ff0bd.hot-update.js",
"/js/main.d594e00eec3ae4abd751.hot-update.js": "/js/main.d594e00eec3ae4abd751.hot-update.js",
"/js/main.70d17783fe28bf990276.hot-update.js": "/js/main.70d17783fe28bf990276.hot-update.js",
"/js/main.c7bc397e2e421f0141fc.hot-update.js": "/js/main.c7bc397e2e421f0141fc.hot-update.js",
"/js/main.815d02e7f3f9f8841915.hot-update.js": "/js/main.815d02e7f3f9f8841915.hot-update.js",
"/js/main.d40b9abc043ed8480a8a.hot-update.js": "/js/main.d40b9abc043ed8480a8a.hot-update.js",
"/js/main.19a9789de3de21c4b8eb.hot-update.js": "/js/main.19a9789de3de21c4b8eb.hot-update.js",
"/js/main.8be11c6045cb66da58d1.hot-update.js": "/js/main.8be11c6045cb66da58d1.hot-update.js",
"/js/main.1983ca165da1e65707ed.hot-update.js": "/js/main.1983ca165da1e65707ed.hot-update.js",
"/js/main.7a29b122f46980bbd2ef.hot-update.js": "/js/main.7a29b122f46980bbd2ef.hot-update.js",
"/js/main.ddb45dcd7b4091c5ac5f.hot-update.js": "/js/main.ddb45dcd7b4091c5ac5f.hot-update.js",
"/js/main.7d7ac6845f8c792a4476.hot-update.js": "/js/main.7d7ac6845f8c792a4476.hot-update.js",
"/js/main.ae16004d1621864211e7.hot-update.js": "/js/main.ae16004d1621864211e7.hot-update.js",
"/js/main.84b099565f7cb44a5aae.hot-update.js": "/js/main.84b099565f7cb44a5aae.hot-update.js",
"/js/main.61d6dc70f0b4a8d69347.hot-update.js": "/js/main.61d6dc70f0b4a8d69347.hot-update.js",
"/js/main.6d77e25fc48e11872fb5.hot-update.js": "/js/main.6d77e25fc48e11872fb5.hot-update.js",
"/js/main.e52f1368604fe28cad40.hot-update.js": "/js/main.e52f1368604fe28cad40.hot-update.js",
"/js/main.0d074a932a774d85ed24.hot-update.js": "/js/main.0d074a932a774d85ed24.hot-update.js",
"/js/main.9372920546a93ccc4f10.hot-update.js": "/js/main.9372920546a93ccc4f10.hot-update.js",
"/js/main.e865592c8390a29c196a.hot-update.js": "/js/main.e865592c8390a29c196a.hot-update.js",
"/js/main.a405908c3c0bda177afe.hot-update.js": "/js/main.a405908c3c0bda177afe.hot-update.js",
"/js/main.40ee7f6bbbdb4944b217.hot-update.js": "/js/main.40ee7f6bbbdb4944b217.hot-update.js",
"/js/main.0ca213bc260327e5c44c.hot-update.js": "/js/main.0ca213bc260327e5c44c.hot-update.js",
"/js/main.1917f89d4150ee8fa356.hot-update.js": "/js/main.1917f89d4150ee8fa356.hot-update.js",
"/js/main.f61541d93f712f3870ca.hot-update.js": "/js/main.f61541d93f712f3870ca.hot-update.js",
"/js/main.ebf234ddd5de8b436e8c.hot-update.js": "/js/main.ebf234ddd5de8b436e8c.hot-update.js",
"/js/main.fb8288157f51ae2a8545.hot-update.js": "/js/main.fb8288157f51ae2a8545.hot-update.js",
"/js/main.16962ba62f72f7247d29.hot-update.js": "/js/main.16962ba62f72f7247d29.hot-update.js",
"/js/main.039a8cc665108287b217.hot-update.js": "/js/main.039a8cc665108287b217.hot-update.js",
"/js/main.ee47b865bc9872684964.hot-update.js": "/js/main.ee47b865bc9872684964.hot-update.js",
"/js/main.63b6901d1d22c6ac0984.hot-update.js": "/js/main.63b6901d1d22c6ac0984.hot-update.js",
"/js/main.45cbdbd7827041cbf512.hot-update.js": "/js/main.45cbdbd7827041cbf512.hot-update.js",
"/js/main.3e33271a12bfec030777.hot-update.js": "/js/main.3e33271a12bfec030777.hot-update.js",
"/js/main.5dbd0ab9a4c5232667e8.hot-update.js": "/js/main.5dbd0ab9a4c5232667e8.hot-update.js",
"/js/main.04e901a4b402b51a750f.hot-update.js": "/js/main.04e901a4b402b51a750f.hot-update.js",
"/js/main.4558580a594cbc8eff6c.hot-update.js": "/js/main.4558580a594cbc8eff6c.hot-update.js",
"/js/main.dba2bd0ad2b7d3512714.hot-update.js": "/js/main.dba2bd0ad2b7d3512714.hot-update.js",
"/js/main.5a7ca08ce1752a485326.hot-update.js": "/js/main.5a7ca08ce1752a485326.hot-update.js",
"/js/main.1a592bc84a9da2723333.hot-update.js": "/js/main.1a592bc84a9da2723333.hot-update.js"
"/js/main.3525fa8ecdcc4619c499.hot-update.js": "/js/main.3525fa8ecdcc4619c499.hot-update.js",
"/js/main.a023b02bace4b2a4fc8a.hot-update.js": "/js/main.a023b02bace4b2a4fc8a.hot-update.js",
"/js/main.10f095559968534606b1.hot-update.js": "/js/main.10f095559968534606b1.hot-update.js",
"/js/main.fef7313a472bf0496440.hot-update.js": "/js/main.fef7313a472bf0496440.hot-update.js",
"/js/main.4449cd64f120d4102f7d.hot-update.js": "/js/main.4449cd64f120d4102f7d.hot-update.js",
"/js/main.f83e378de6f06a7f56a4.hot-update.js": "/js/main.f83e378de6f06a7f56a4.hot-update.js",
"/js/main.8995597ef4c17bc29600.hot-update.js": "/js/main.8995597ef4c17bc29600.hot-update.js",
"/js/main.aad2736ee53b292e518e.hot-update.js": "/js/main.aad2736ee53b292e518e.hot-update.js",
"/js/main.30ad4be540d1d27ff7a1.hot-update.js": "/js/main.30ad4be540d1d27ff7a1.hot-update.js",
"/js/main.5fa35f99ca5551c0e31a.hot-update.js": "/js/main.5fa35f99ca5551c0e31a.hot-update.js",
"/js/main.6320e6ed76381e1d5458.hot-update.js": "/js/main.6320e6ed76381e1d5458.hot-update.js",
"/js/main.7a6783b381e12ae73c03.hot-update.js": "/js/main.7a6783b381e12ae73c03.hot-update.js",
"/js/main.5af22b51d8cdf841796b.hot-update.js": "/js/main.5af22b51d8cdf841796b.hot-update.js",
"/js/main.df160e291453c41ecd5f.hot-update.js": "/js/main.df160e291453c41ecd5f.hot-update.js",
"/js/main.c16d31123ba7d7108155.hot-update.js": "/js/main.c16d31123ba7d7108155.hot-update.js",
"/js/main.f5a0ee886545063ab195.hot-update.js": "/js/main.f5a0ee886545063ab195.hot-update.js",
"/js/main.b00122ec0cf03aeecf1d.hot-update.js": "/js/main.b00122ec0cf03aeecf1d.hot-update.js",
"/js/main.6a7f6fd4cd348d9db704.hot-update.js": "/js/main.6a7f6fd4cd348d9db704.hot-update.js",
"/js/main.3e58a722d181e6d112dd.hot-update.js": "/js/main.3e58a722d181e6d112dd.hot-update.js",
"/js/main.e9cff7c5c5e6f6c2e0ef.hot-update.js": "/js/main.e9cff7c5c5e6f6c2e0ef.hot-update.js",
"/js/main.32c945709059ac338172.hot-update.js": "/js/main.32c945709059ac338172.hot-update.js",
"/js/main.b33392dae528781b46cb.hot-update.js": "/js/main.b33392dae528781b46cb.hot-update.js",
"/js/main.8283e01b581c364df275.hot-update.js": "/js/main.8283e01b581c364df275.hot-update.js",
"/js/main.d7085624260c95f4a7bb.hot-update.js": "/js/main.d7085624260c95f4a7bb.hot-update.js",
"/js/main.7d531c678f1eb2072c7a.hot-update.js": "/js/main.7d531c678f1eb2072c7a.hot-update.js",
"/js/main.cff2e29eb9dc8da55e08.hot-update.js": "/js/main.cff2e29eb9dc8da55e08.hot-update.js",
"/js/main.03e3003550132bd5e0fe.hot-update.js": "/js/main.03e3003550132bd5e0fe.hot-update.js",
"/js/main.2b19a87471c5bef94340.hot-update.js": "/js/main.2b19a87471c5bef94340.hot-update.js",
"/js/main.6a96e4ea51ac28f3ebac.hot-update.js": "/js/main.6a96e4ea51ac28f3ebac.hot-update.js",
"/js/main.93198022cc3d89187bc6.hot-update.js": "/js/main.93198022cc3d89187bc6.hot-update.js",
"/js/main.83a71ab76c9a875c636e.hot-update.js": "/js/main.83a71ab76c9a875c636e.hot-update.js",
"/js/main.7efb8a14accdc5fbc61d.hot-update.js": "/js/main.7efb8a14accdc5fbc61d.hot-update.js",
"/js/main.159357ada5cb55417e7c.hot-update.js": "/js/main.159357ada5cb55417e7c.hot-update.js",
"/js/main.91a833e79281617fbb82.hot-update.js": "/js/main.91a833e79281617fbb82.hot-update.js",
"/js/main.0b87dcae3eb86e267825.hot-update.js": "/js/main.0b87dcae3eb86e267825.hot-update.js",
"/js/main.7a7b09c202d1458d0deb.hot-update.js": "/js/main.7a7b09c202d1458d0deb.hot-update.js",
"/js/main.283f28e2888a1a101f0d.hot-update.js": "/js/main.283f28e2888a1a101f0d.hot-update.js",
"/js/main.6964f772a47463f49daa.hot-update.js": "/js/main.6964f772a47463f49daa.hot-update.js",
"/js/main.4a73c73c83e02e91b574.hot-update.js": "/js/main.4a73c73c83e02e91b574.hot-update.js",
"/js/main.b2350eb32acfd276a1ac.hot-update.js": "/js/main.b2350eb32acfd276a1ac.hot-update.js",
"/js/main.231f719bd8c639c2f4c5.hot-update.js": "/js/main.231f719bd8c639c2f4c5.hot-update.js",
"/js/main.e21f84fbb118e4676b68.hot-update.js": "/js/main.e21f84fbb118e4676b68.hot-update.js",
"/js/main.a6b4d6105ab684174e1a.hot-update.js": "/js/main.a6b4d6105ab684174e1a.hot-update.js",
"/js/main.b10ac2849385c9e5ea15.hot-update.js": "/js/main.b10ac2849385c9e5ea15.hot-update.js",
"/js/main.317ccb0e533bbda72734.hot-update.js": "/js/main.317ccb0e533bbda72734.hot-update.js",
"/js/main.6b13272deac3f9988a11.hot-update.js": "/js/main.6b13272deac3f9988a11.hot-update.js",
"/js/main.c2372924d699f6bcfc3a.hot-update.js": "/js/main.c2372924d699f6bcfc3a.hot-update.js",
"/js/main.a62a3b68177622e9f7fb.hot-update.js": "/js/main.a62a3b68177622e9f7fb.hot-update.js",
"/js/main.b8f7fdbe57ba8dcb2369.hot-update.js": "/js/main.b8f7fdbe57ba8dcb2369.hot-update.js",
"/js/main.e83947f3bc68af45bfba.hot-update.js": "/js/main.e83947f3bc68af45bfba.hot-update.js",
"/js/main.e7ba67817f80b9f1d0d3.hot-update.js": "/js/main.e7ba67817f80b9f1d0d3.hot-update.js",
"/js/main.b58f13eec45cd59894f5.hot-update.js": "/js/main.b58f13eec45cd59894f5.hot-update.js",
"/js/main.98627e1e2b15195f9d49.hot-update.js": "/js/main.98627e1e2b15195f9d49.hot-update.js",
"/js/main.0f6fe6aa10d74df489fd.hot-update.js": "/js/main.0f6fe6aa10d74df489fd.hot-update.js",
"/js/main.bad3bd8f4a8cd0a1b98c.hot-update.js": "/js/main.bad3bd8f4a8cd0a1b98c.hot-update.js",
"/js/main.ed8694a62b0165be57bc.hot-update.js": "/js/main.ed8694a62b0165be57bc.hot-update.js",
"/js/main.467c51825c9390c10135.hot-update.js": "/js/main.467c51825c9390c10135.hot-update.js",
"/js/main.cfd7180a6e7a577b838e.hot-update.js": "/js/main.cfd7180a6e7a577b838e.hot-update.js",
"/js/main.8aab3644a5656e99c88c.hot-update.js": "/js/main.8aab3644a5656e99c88c.hot-update.js",
"/js/main.ef2bb422e5f16c647199.hot-update.js": "/js/main.ef2bb422e5f16c647199.hot-update.js",
"/js/main.edba4af712aefc4703d8.hot-update.js": "/js/main.edba4af712aefc4703d8.hot-update.js",
"/js/main.c522aa1544700fddfd8f.hot-update.js": "/js/main.c522aa1544700fddfd8f.hot-update.js",
"/js/main.afa094e4e88f903ba36d.hot-update.js": "/js/main.afa094e4e88f903ba36d.hot-update.js",
"/js/main.69be22e5650945a31be5.hot-update.js": "/js/main.69be22e5650945a31be5.hot-update.js",
"/js/main.6eed2a123ce023932058.hot-update.js": "/js/main.6eed2a123ce023932058.hot-update.js",
"/js/main.030a0efbcbd7c219cfef.hot-update.js": "/js/main.030a0efbcbd7c219cfef.hot-update.js",
"/js/main.596e2916617bf0866cf9.hot-update.js": "/js/main.596e2916617bf0866cf9.hot-update.js",
"/js/main.7d29e89392b12cd1b7dd.hot-update.js": "/js/main.7d29e89392b12cd1b7dd.hot-update.js",
"/js/main.2a609f8a4ba4834d326a.hot-update.js": "/js/main.2a609f8a4ba4834d326a.hot-update.js",
"/js/main.9facde67ab78651307da.hot-update.js": "/js/main.9facde67ab78651307da.hot-update.js",
"/js/main.3ca78979855481285bd4.hot-update.js": "/js/main.3ca78979855481285bd4.hot-update.js",
"/js/main.666698596cc1cccb6fba.hot-update.js": "/js/main.666698596cc1cccb6fba.hot-update.js",
"/js/main.4a596ca8a8df4b9822a8.hot-update.js": "/js/main.4a596ca8a8df4b9822a8.hot-update.js",
"/js/main.20f7307ec14adff9f5fd.hot-update.js": "/js/main.20f7307ec14adff9f5fd.hot-update.js",
"/js/main.58182232baae6731db0d.hot-update.js": "/js/main.58182232baae6731db0d.hot-update.js",
"/js/main.444ecd60b900b01a5f22.hot-update.js": "/js/main.444ecd60b900b01a5f22.hot-update.js",
"/js/main.662dcec9e999610f674f.hot-update.js": "/js/main.662dcec9e999610f674f.hot-update.js",
"/js/main.c98760eac35907f8310b.hot-update.js": "/js/main.c98760eac35907f8310b.hot-update.js",
"/js/main.c1878444b327def22e4d.hot-update.js": "/js/main.c1878444b327def22e4d.hot-update.js",
"/js/main.e02a4aa1ab5aad07141e.hot-update.js": "/js/main.e02a4aa1ab5aad07141e.hot-update.js",
"/js/main.c6909407bead3dd94d28.hot-update.js": "/js/main.c6909407bead3dd94d28.hot-update.js",
"/js/main.a612c6b1865939a43119.hot-update.js": "/js/main.a612c6b1865939a43119.hot-update.js",
"/js/main.1f56bc914fd5f11b9d51.hot-update.js": "/js/main.1f56bc914fd5f11b9d51.hot-update.js",
"/js/main.bcfed775e88011a9228a.hot-update.js": "/js/main.bcfed775e88011a9228a.hot-update.js",
"/js/main.1125dfcbaea1a10bc199.hot-update.js": "/js/main.1125dfcbaea1a10bc199.hot-update.js",
"/js/main.bd585548ba12071cbc92.hot-update.js": "/js/main.bd585548ba12071cbc92.hot-update.js",
"/js/main.bd53d6b265fb9f8fef12.hot-update.js": "/js/main.bd53d6b265fb9f8fef12.hot-update.js",
"/js/main.8b84499568cb04ec7397.hot-update.js": "/js/main.8b84499568cb04ec7397.hot-update.js",
"/js/main.c24fa7243d2e43ff603a.hot-update.js": "/js/main.c24fa7243d2e43ff603a.hot-update.js",
"/js/main.77b9cc7a1d9befea8662.hot-update.js": "/js/main.77b9cc7a1d9befea8662.hot-update.js",
"/js/main.d44b20fbd31efb19be07.hot-update.js": "/js/main.d44b20fbd31efb19be07.hot-update.js",
"/js/main.ebc2142a7139eb1643b9.hot-update.js": "/js/main.ebc2142a7139eb1643b9.hot-update.js",
"/js/main.d9c34f451a600a70ab75.hot-update.js": "/js/main.d9c34f451a600a70ab75.hot-update.js",
"/js/main.4d9123f29bb4c3f67f35.hot-update.js": "/js/main.4d9123f29bb4c3f67f35.hot-update.js",
"/js/main.91974174026f6fdb169d.hot-update.js": "/js/main.91974174026f6fdb169d.hot-update.js",
"/js/main.e8f5e28b26a68904fedb.hot-update.js": "/js/main.e8f5e28b26a68904fedb.hot-update.js",
"/js/main.3ce0940187780a62c501.hot-update.js": "/js/main.3ce0940187780a62c501.hot-update.js",
"/js/main.1d7b51b32d9c2e8c3257.hot-update.js": "/js/main.1d7b51b32d9c2e8c3257.hot-update.js",
"/js/main.9c4b2984408925b5cd55.hot-update.js": "/js/main.9c4b2984408925b5cd55.hot-update.js",
"/js/main.e907323d5c8f7433a2b6.hot-update.js": "/js/main.e907323d5c8f7433a2b6.hot-update.js",
"/js/main.3001d2290f27a879609f.hot-update.js": "/js/main.3001d2290f27a879609f.hot-update.js",
"/js/main.dc0b517fb93ac24cfd97.hot-update.js": "/js/main.dc0b517fb93ac24cfd97.hot-update.js",
"/js/main.0c727077d58adf01e7ba.hot-update.js": "/js/main.0c727077d58adf01e7ba.hot-update.js",
"/js/main.a9fb0b15861543419c29.hot-update.js": "/js/main.a9fb0b15861543419c29.hot-update.js",
"/js/main.cdcc4a4f61a3919fdfad.hot-update.js": "/js/main.cdcc4a4f61a3919fdfad.hot-update.js",
"/js/main.04729729e454907b876b.hot-update.js": "/js/main.04729729e454907b876b.hot-update.js",
"/js/main.1f5c768890ffc8fac5ac.hot-update.js": "/js/main.1f5c768890ffc8fac5ac.hot-update.js",
"/js/main.be531e9750e90ae0dcf2.hot-update.js": "/js/main.be531e9750e90ae0dcf2.hot-update.js",
"/js/main.efbab434181b2cd4b9d1.hot-update.js": "/js/main.efbab434181b2cd4b9d1.hot-update.js",
"/js/main.6fcb72ff8beccffd8b43.hot-update.js": "/js/main.6fcb72ff8beccffd8b43.hot-update.js",
"/js/main.6e970c831f11b919b087.hot-update.js": "/js/main.6e970c831f11b919b087.hot-update.js"
}

10464
resources/babel/langs.babel Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -11,11 +11,11 @@
</header>
<section class="plan-features">
<b class="storage-size">{{ plan.data.attributes.capacity_formatted }}</b>
<span class="storage-description">Of Storage Capacity</span>
<span class="storage-description">{{ $t('page_pricing_tables.storage_capacity') }}</span>
</section>
<footer class="plan-footer">
<b class="price">
{{ plan.data.attributes.price }}/{{ $t('global.monthly_ac') }}.
{{ plan.data.attributes.price }}/{{ $t('global.monthly_ac') }}
</b>
<ButtonBase @click.native="selectPlan(plan)" type="submit" button-style="secondary" class="sign-in-button">
{{ $t('global.get_it') }}

View File

@@ -15,13 +15,13 @@
@click.native="closePopup"
button-style="secondary"
class="popup-button"
>Cancel
>{{ $t('global.cancel') }}
</ButtonBase>
<ButtonBase
@click.native="confirm"
:button-style="buttonColor"
class="popup-button"
>Yes, I'm sure
>{{ $t('global.confirm_action') }}
</ButtonBase>
</PopupActions>
</PopupWrapper>

View File

@@ -76,7 +76,7 @@
computed: {
...mapGetters(['user']),
isUserProfileRoute() {
return this.$isThisRoute(this.$route, ['Profile', 'Password', 'Storage', 'Invoice', 'Subscription'])
return this.$isThisRoute(this.$route, ['Profile', 'Password', 'Storage', 'Invoice', 'Subscription', 'PaymentMethods'])
}
},
data() {
@@ -99,6 +99,9 @@
'UserDelete',
'PlanCreate',
'UserCreate',
'AppPayments',
'PageEdit',
'Pages',
'UserDelete',
'UserDetail',
'Invoices',

View File

@@ -3,7 +3,7 @@ import VueI18n from 'vue-i18n';
import en from './lang/en.json'
import sk from './lang/sk.json'
//import cn from './lang/cn.json'
import cn from './lang/cn.json'
Vue.use(VueI18n);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -37,11 +37,11 @@ import Pages from './views/Admin/Pages'
import PageEdit from './views/Admin/Pages/PageEdit'
// App Settings
import AppAppearance from './views/Admin/AppSettings/AppSettingsTabs/Appearance'
import AppPayments from './views/Admin/AppSettings/AppSettingsTabs/Payments'
import AppBillings from './views/Admin/AppSettings/AppSettingsTabs/Billings'
import AppOthers from './views/Admin/AppSettings/AppSettingsTabs/Others'
import AppEmail from './views/Admin/AppSettings/AppSettingsTabs/Email'
import AppOthers from './views/Admin/AppSettings/AppSettingsTabs/Others'
import AppBillings from './views/Admin/AppSettings/AppSettingsTabs/Billings'
import AppPayments from './views/Admin/AppSettings/AppSettingsTabs/Payments'
import AppAppearance from './views/Admin/AppSettings/AppSettingsTabs/Appearance'
// Plans
import Plans from './views/Admin/Plans'
@@ -76,9 +76,9 @@ import SubscriptionService from './views/SetupWizard/SubscriptionService'
import InstallationDisclaimer from './views/SetupWizard/InstallationDisclaimer'
// Index pages
import SaaSLandingPage from './views/index/SaaSLandingPage'
import DynamicPage from './views/Index/DynamicPage'
import ContactUs from './views/Index/ContactUs'
import DynamicPage from './views/Index/DynamicPage'
import SaaSLandingPage from './views/index/SaaSLandingPage'
Vue.use(Router)
@@ -98,7 +98,7 @@ const routesAdmin = [
component: Dashboard,
meta: {
requiresAuth: true,
title: 'Dashboard'
title: i18n.t('routes_title.dashboard')
},
},
{
@@ -107,7 +107,7 @@ const routesAdmin = [
component: Invoices,
meta: {
requiresAuth: true,
title: 'Invoices'
title: i18n.t('routes_title.invoices')
},
},
{
@@ -116,7 +116,7 @@ const routesAdmin = [
component: Pages,
meta: {
requiresAuth: true,
title: 'Pages'
title: i18n.t('routes_title.pages')
},
},
{
@@ -125,7 +125,7 @@ const routesAdmin = [
component: PageEdit,
meta: {
requiresAuth: true,
title: 'Edit Page'
title: i18n.t('routes_title.page_edit')
},
},
{
@@ -134,7 +134,7 @@ const routesAdmin = [
component: Plans,
meta: {
requiresAuth: true,
title: 'Pricing Plans'
title: i18n.t('routes_title.pricing_plans')
},
},
{
@@ -163,7 +163,7 @@ const routesAdmin = [
component: PlanCreate,
meta: {
requiresAuth: true,
title: 'Create Plan'
title: i18n.t('routes_title.plan_create')
},
},
@@ -201,7 +201,7 @@ const routesAdmin = [
component: UserSubscription,
meta: {
requiresAuth: true,
title: 'Subscription'
title: i18n.t('routes_title.subscription')
},
},
{
@@ -210,7 +210,7 @@ const routesAdmin = [
component: UserInvoices,
meta: {
requiresAuth: true,
title: 'Invoices'
title: i18n.t('routes_title.invoices')
},
},
{
@@ -239,7 +239,7 @@ const routesAdmin = [
component: Plan,
meta: {
requiresAuth: true,
title: 'Plan'
title: i18n.t('routes_title.plan')
},
children: [
{
@@ -248,7 +248,7 @@ const routesAdmin = [
component: PlanSubscribers,
meta: {
requiresAuth: true,
title: 'Plan Subscribers'
title: i18n.t('routes_title.subscribers')
},
},
{
@@ -257,7 +257,7 @@ const routesAdmin = [
component: PlanSettings,
meta: {
requiresAuth: true,
title: 'Plan Settings',
title: i18n.t('routes_title.plan_settings'),
},
},
{
@@ -266,7 +266,7 @@ const routesAdmin = [
component: PlanDelete,
meta: {
requiresAuth: true,
title: 'Plan Delete',
title: i18n.t('routes_title.plan_delete'),
},
},
]
@@ -277,7 +277,7 @@ const routesAdmin = [
component: AppSettings,
meta: {
requiresAuth: true,
title: 'Settings'
title: i18n.t('routes_title.settings')
},
children: [
{
@@ -286,7 +286,7 @@ const routesAdmin = [
component: AppAppearance,
meta: {
requiresAuth: true,
title: 'Appearance'
title: i18n.t('routes_title.appearance')
},
},
{
@@ -295,7 +295,7 @@ const routesAdmin = [
component: AppBillings,
meta: {
requiresAuth: true,
title: 'Billings'
title: i18n.t('routes_title.billings')
},
},
{
@@ -304,7 +304,7 @@ const routesAdmin = [
component: AppEmail,
meta: {
requiresAuth: true,
title: 'Email'
title: i18n.t('routes_title.email')
},
},
{
@@ -313,7 +313,7 @@ const routesAdmin = [
component: AppPayments,
meta: {
requiresAuth: true,
title: 'Payments'
title: i18n.t('routes_title.payments')
},
},
{
@@ -322,7 +322,7 @@ const routesAdmin = [
component: AppOthers,
meta: {
requiresAuth: true,
title: 'Others'
title: i18n.t('routes_title.others')
},
},
]
@@ -344,7 +344,7 @@ const routesAdmin = [
component: UserProfileMobileMenu,
meta: {
requiresAuth: true,
title: 'Profile Settings'
title: i18n.t('routes_title.profile_settings')
},
},
]
@@ -466,7 +466,7 @@ const routesUser = [
component: Invoice,
meta: {
requiresAuth: true,
title: 'Invoices'
title: i18n.t('routes_title.invoices')
},
},
{
@@ -475,16 +475,16 @@ const routesUser = [
component: Subscription,
meta: {
requiresAuth: true,
title: 'Subscription'
title: i18n.t('routes_title.subscription')
},
},
{
name: 'PaymentMethods',
path: '/settings/payment-cards',
path: '/settings/payment-methods',
component: PaymentMethods,
meta: {
requiresAuth: true,
title: 'Payment Cards'
title: i18n.t('routes_title.payment_methods')
},
},
]
@@ -495,7 +495,7 @@ const routesUser = [
component: UpgradePlan,
meta: {
requiresAuth: true,
title: 'Upgrade Plan'
title: i18n.t('routes_title.upgrade_plan')
},
},
{
@@ -504,7 +504,7 @@ const routesUser = [
component: UpgradeBilling,
meta: {
requiresAuth: true,
title: 'Upgrade Billing'
title: i18n.t('routes_title.upgrade_billing')
},
},
]

View File

@@ -14,7 +14,7 @@
<eye-icon size="17"></eye-icon>
</div>
<div class="label">
Appearance
{{ $t('admin_settings.tabs.appearance') }}
</div>
</router-link>
@@ -24,7 +24,7 @@
<file-text-icon size="17"></file-text-icon>
</div>
<div class="label">
Billings
{{ $t('admin_settings.tabs.billings') }}
</div>
</router-link>
@@ -34,7 +34,7 @@
<mail-icon size="17"></mail-icon>
</div>
<div class="label">
Email
{{ $t('admin_settings.tabs.email') }}
</div>
</router-link>
@@ -44,7 +44,7 @@
<credit-card-icon size="17"></credit-card-icon>
</div>
<div class="label">
Payments
{{ $t('admin_settings.tabs.payments') }}
</div>
</router-link>
@@ -54,7 +54,7 @@
<code-icon size="17"></code-icon>
</div>
<div class="label">
Others
{{ $t('admin_settings.tabs.others') }}
</div>
</router-link>
</div>
@@ -71,9 +71,7 @@
import MobileHeader from '@/components/Mobile/MobileHeader'
import SectionTitle from '@/components/Others/SectionTitle'
import PageHeader from '@/components/Others/PageHeader'
import Spinner from '@/components/FilesView/Spinner'
import { mapGetters } from 'vuex'
import axios from 'axios'
export default {
name: 'AppSettings',
@@ -89,7 +87,6 @@
SectionTitle,
MobileHeader,
PageHeader,
Spinner,
},
computed: {
...mapGetters(['config']),
@@ -100,13 +97,4 @@
<style lang="scss" scoped>
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -4,42 +4,45 @@
<!--Personal Information-->
<PageTabGroup>
<div class="form block-form">
<FormLabel>General Settings</FormLabel>
<FormLabel>{{ $t('admin_settings.appearance.section_general') }}</FormLabel>
<div class="block-wrapper">
<label>App Title:</label>
<label>{{ $t('admin_settings.appearance.title') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Title" rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'app_title', app.title)" v-model="app.title" placeholder="Type your app title" type="text" :class="{'is-error': errors[0]}"/>
<input @input="$updateText('/settings', 'app_title', app.title)" v-model="app.title" :placeholder="$t('admin_settings.appearance.title_plac')" type="text"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Description:</label>
<label>{{ $t('admin_settings.appearance.description') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Description" rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'app_description', app.description)" v-model="app.description" placeholder="Type your app description" type="text" :class="{'is-error': errors[0]}"/>
<input @input="$updateText('/settings', 'app_description', app.description)" v-model="app.description"
:placeholder="$t('admin_settings.appearance.description_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<FormLabel class="mt-70">Appearance</FormLabel>
<FormLabel class="mt-70">{{ $t('admin_settings.appearance.section_appearance') }}</FormLabel>
<div class="block-wrapper">
<label>App Logo (optional):</label>
<label>{{ $t('admin_settings.appearance.logo') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Logo" v-slot="{ errors }">
<ImageInput @input="$updateImage('/settings', 'app_logo', app.logo)" :image="$getImage(app.logo)" v-model="app.logo" :error="errors[0]"/>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Logo Horizontal (optional):</label>
<label>{{ $t('admin_settings.appearance.logo_horizontal') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Logo Horizontal" v-slot="{ errors }">
<ImageInput @input="$updateImage('/settings', 'app_logo_horizontal', app.logo_horizontal)" :image="$getImage(app.logo_horizontal)" v-model="app.logo_horizontal" :error="errors[0]"/>
<ImageInput @input="$updateImage('/settings', 'app_logo_horizontal', app.logo_horizontal)" :image="$getImage(app.logo_horizontal)"
v-model="app.logo_horizontal" :error="errors[0]"/>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Favicon (optional):</label>
<label>{{ $t('admin_settings.appearance.favicon') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
<ImageInput @input="$updateImage('/settings', 'app_favicon', app.favicon)" :image="$getImage(app.favicon)" v-model="app.favicon" :error="errors[0]"/>
</ValidationProvider>
@@ -83,11 +86,11 @@
return {
isLoading: true,
app: {
title: '',
description: '',
logo: undefined,
logo_horizontal: undefined,
favicon: undefined,
logo: undefined,
description: '',
title: '',
},
}
},
@@ -98,13 +101,14 @@
}
})
.then(response => {
this.isLoading = false
this.app.title = response.data.app_title
this.app.description = response.data.app_description
this.app.logo = response.data.app_logo
this.app.logo_horizontal = response.data.app_logo_horizontal
this.app.description = response.data.app_description
this.app.favicon = response.data.app_favicon
this.app.title = response.data.app_title
this.app.logo = response.data.app_logo
})
.finally(() => {
this.isLoading = false
})
}
}

View File

@@ -4,44 +4,44 @@
<!--Personal Information-->
<PageTabGroup>
<div class="form block-form">
<FormLabel>Company Information</FormLabel>
<FormLabel>{{ $t('admin_settings.billings.section_company') }}</FormLabel>
<div class="block-wrapper">
<label>Company Name:</label>
<label>{{ $t('admin_settings.billings.company_name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing Name"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_name', billingInformation.billing_name)" v-model="billingInformation.billing_name" placeholder="Type your company name"
<input @input="$updateText('/settings', 'billing_name', billingInformation.billing_name)" v-model="billingInformation.billing_name" :placeholder="$t('admin_settings.billings.company_name_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>VAT Number:</label>
<label>{{ $t('admin_settings.billings.vat') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing Vat Number"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_vat_number', billingInformation.billing_vat_number)" v-model="billingInformation.billing_vat_number" placeholder="Type your VAT number"
<input @input="$updateText('/settings', 'billing_vat_number', billingInformation.billing_vat_number)" v-model="billingInformation.billing_vat_number" :placeholder="$t('admin_settings.billings.vat_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<FormLabel class="mt-70">Billing Information</FormLabel>
<FormLabel class="mt-70">{{ $t('admin_settings.billings.section_billing') }}</FormLabel>
<div class="block-wrapper">
<label>Billing Country:</label>
<label>{{ $t('admin_settings.billings.country') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing Country"
rules="required" v-slot="{ errors }">
<SelectInput @input="$updateText('/settings', 'billing_country', billingInformation.billing_country)" v-model="billingInformation.billing_country" :default="billingInformation.billing_country" :options="countries" placeholder="Select your billing country" :isError="errors[0]"/>
<SelectInput @input="$updateText('/settings', 'billing_country', billingInformation.billing_country)" v-model="billingInformation.billing_country" :default="billingInformation.billing_country" :options="countries" :placeholder="$t('admin_settings.billings.country_plac')" :isError="errors[0]"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Billing Address:</label>
<label>{{ $t('admin_settings.billings.address') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing Address"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_address', billingInformation.billing_address)" v-model="billingInformation.billing_address" placeholder="Type your billing address"
<input @input="$updateText('/settings', 'billing_address', billingInformation.billing_address)" v-model="billingInformation.billing_address" :placeholder="$t('admin_settings.billings.address_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -49,40 +49,40 @@
<div class="wrapper-inline">
<div class="block-wrapper">
<label>Billing City:</label>
<label>{{ $t('admin_settings.billings.city') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing City"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_city', billingInformation.billing_city)" v-model="billingInformation.billing_city" placeholder="Type your billing city"
<input @input="$updateText('/settings', 'billing_city', billingInformation.billing_city)" v-model="billingInformation.billing_city" :placeholder="$t('admin_settings.billings.city_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Billing Postal Code:</label>
<label>{{ $t('admin_settings.billings.postal_code') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing Postal Code"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_postal_code', billingInformation.billing_postal_code)" v-model="billingInformation.billing_postal_code"
placeholder="Type your billing postal code" type="text" :class="{'is-error': errors[0]}"/>
:placeholder="$t('admin_settings.billings.postal_code_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
</div>
<div class="block-wrapper">
<label>Billing State:</label>
<label>{{ $t('admin_settings.billings.state') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing State"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_state', billingInformation.billing_state)" v-model="billingInformation.billing_state" placeholder="Type your billing state"
<input @input="$updateText('/settings', 'billing_state', billingInformation.billing_state)" v-model="billingInformation.billing_state" :placeholder="$t('admin_settings.billings.state_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Billing Phone Number (optional):</label>
<label>{{ $t('admin_settings.billings.phone_number') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Billing Phone Number"
v-slot="{ errors }">
<input @input="$updateText('/settings', 'billing_phone_number', billingInformation.billing_phone_number)" v-model="billingInformation.billing_phone_number" placeholder="Type your billing phone number"
<input @input="$updateText('/settings', 'billing_phone_number', billingInformation.billing_phone_number)" v-model="billingInformation.billing_phone_number" :placeholder="$t('admin_settings.billings.phone_number_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>

View File

@@ -4,63 +4,63 @@
<!--Personal Information-->
<PageTabGroup>
<ValidationObserver @submit.prevent="EmailSetupSubmit" ref="EmailSetup" v-slot="{ invalid }" tag="form" class="form block-form">
<FormLabel>Email Setup</FormLabel>
<FormLabel>{{ $t('admin_settings.email.section_email') }}</FormLabel>
<InfoBox>
<p>This form is not fully pre-filled for security reasons. Your email settings is available in your <b>.env</b> file. For apply new Email settings, please confirm your options by button at the end of formular.</p>
<p v-html="$t('admin_settings.email.email_disclaimer')"></p>
</InfoBox>
<div class="block-wrapper">
<label>Mail Driver:</label>
<label>{{ $t('admin_settings.email.driver') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mail Driver" rules="required" v-slot="{ errors }">
<input v-model="mail.driver" placeholder="Type your mail driver" type="text" :class="{'is-error': errors[0]}" />
<input v-model="mail.driver" :placeholder="$t('admin_settings.email.driver_plac')" type="text" :class="{'is-error': errors[0]}" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Mail Host:</label>
<label>{{ $t('admin_settings.email.host') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mail Host" rules="required" v-slot="{ errors }">
<input v-model="mail.host" placeholder="Type your mail host" type="text" :class="{'is-error': errors[0]}" />
<input v-model="mail.host" :placeholder="$t('admin_settings.email.host_plac')" type="text" :class="{'is-error': errors[0]}" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Mail Port:</label>
<label>{{ $t('admin_settings.email.port') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mail Port" rules="required" v-slot="{ errors }">
<input v-model="mail.port" placeholder="Type your mail port" type="text" :class="{'is-error': errors[0]}" />
<input v-model="mail.port" :placeholder="$t('admin_settings.email.port_plac')" type="text" :class="{'is-error': errors[0]}" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Mail Username:</label>
<label>{{ $t('admin_settings.email.username') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mail Username" rules="required" v-slot="{ errors }">
<input v-model="mail.username" placeholder="Type your mail username" type="text" :class="{'is-error': errors[0]}" />
<input v-model="mail.username" :placeholder="$t('admin_settings.email.username_plac')" type="text" :class="{'is-error': errors[0]}" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Mail Password:</label>
<label>{{ $t('admin_settings.email.password') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mail Password" rules="required" v-slot="{ errors }">
<input v-model="mail.password" placeholder="Type your mail password" type="text" :class="{'is-error': errors[0]}" />
<input v-model="mail.password" :placeholder="$t('admin_settings.email.password_plac')" type="text" :class="{'is-error': errors[0]}" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Mail Encryption:</label>
<label>{{ $t('admin_settings.email.encryption') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mail Encryption" rules="required" v-slot="{ errors }">
<SelectInput v-model="mail.encryption" :options="encryptionList" placeholder="Select your mail encryption" :isError="errors[0]"/>
<SelectInput v-model="mail.encryption" :options="encryptionList" :placeholder="$t('admin_settings.email.encryption_plac')" :isError="errors[0]"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit"
button-style="theme" class="submit-button">
Save Email Settings
{{ $t('admin_settings.email.save_button') }}
</ButtonBase>
</ValidationObserver>
</PageTabGroup>
@@ -100,7 +100,7 @@
},
data() {
return {
isLoading: true,
isLoading: false,
isSendingRequest: false,
encryptionList: [
{
@@ -136,34 +136,19 @@
// Send request to get verify account
axios
.put('/api/settings/email', this.mail)
.then(response => {
// End loading
this.isSendingRequest = false
.then(() => {
events.$emit('toaster', {
type: 'success',
message: 'Your email settings was updated successfully',
message: this.$t('toaster.email_set'),
})
})
.catch(error => {
.finally(() => {
// End loading
this.isSendingRequest = false
})
},
},
mounted() {
axios.get('/api/settings', {
params: {
column: 'app_title|app_description|app_logo|app_favicon'
}
})
.then(response => {
this.isLoading = false
this.app.title = response.data.app_title
})
}
}
</script>

View File

@@ -4,26 +4,35 @@
<!--Personal Information-->
<PageTabGroup>
<div class="form block-form">
<FormLabel>Users and Storage</FormLabel>
<FormLabel>
{{ $t('admin_settings.others.section_user') }}
</FormLabel>
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Storage Limitation:</label>
<small class="input-help">If this value is off, all users will have infinity storage capacity and you won't be <br/>able to charge your users for storage plan.</small>
<label class="input-label">
{{ $t('admin_settings.others.storage_limit') }}:
</label>
<small class="input-help" v-html="$t('admin_settings.others.storage_limit_help')"></small>
</div>
<SwitchInput @input="$updateText('/settings', 'storage_limitation', app.storageLimitation)" v-model="app.storageLimitation" class="switch" :state="app.storageLimitation"/>
<SwitchInput
@input="$updateText('/settings', 'storage_limitation', app.storageLimitation)"
v-model="app.storageLimitation"
class="switch"
:state="app.storageLimitation"
/>
</div>
</div>
</div>
<div class="block-wrapper" v-if="app.storageLimitation">
<label>Default Storage Space for User Accounts:</label>
<label>{{ $t('admin_settings.others.default_storage') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Default Storage Space" rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'storage_default', app.defaultStorage)"
v-model="app.defaultStorage"
min="1"
max="999999999"
placeholder="Set default storage space in GB"
:placeholder="$t('admin_settings.others.default_storage_plac')"
type="number"
:class="{'is-error': errors[0]}"
/>
@@ -34,30 +43,36 @@
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Allow User Registration:</label>
<small class="input-help">You can disable public registration for new users. You will still able to <br/>create new users in administration panel.</small>
<label class="input-label">
{{ $t('admin_settings.others.allow_registration') }}:
</label>
<small class="input-help" v-html="$t('admin_settings.others.allow_registration_help')"></small>
</div>
<SwitchInput @input="$updateText('/settings', 'registration', app.userRegistration)" v-model="app.userRegistration" class="switch" :state="app.userRegistration"/>
<SwitchInput @input="$updateText('/settings', 'registration', app.userRegistration)"
v-model="app.userRegistration"
class="switch"
:state="app.userRegistration"
/>
</div>
</div>
</div>
<FormLabel class="mt-70">Others Settings</FormLabel>
<FormLabel class="mt-70">{{ $t('admin_settings.others.section_others') }}</FormLabel>
<div class="block-wrapper">
<label>Contact Email:</label>
<label>{{ $t('admin_settings.others.contact_email') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Contact Email"
rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'contact_email', app.contactMail)" v-model="app.contactMail"
placeholder="Type your contact email" type="email" :class="{'is-error': errors[0]}"/>
:placeholder="$t('admin_settings.others.contact_email_plac')" type="email" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Google Analytics Code (optional):</label>
<label>{{ $t('admin_settings.others.google_analytics') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Google Analytics Code"
v-slot="{ errors }">
<input @input="$updateText('/settings', 'google_analytics', app.googleAnalytics)" v-model="app.googleAnalytics"
placeholder="Paste your Google Analytics Code"
:placeholder="$t('admin_settings.others.google_analytics_plac')"
type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -138,13 +153,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -4,22 +4,22 @@
<!--Personal Information-->
<PageTabGroup>
<div class="form block-form">
<FormLabel>Stripe Payments</FormLabel>
<FormLabel>{{ $t('admin_settings.payments.section_payments') }}</FormLabel>
<InfoBox>
<p>Your Stripe credentials is not showed because these values are secret and must not be revealed by stranger. You can change your Stripe credentials in your <b>.env</b> file.</p>
<p v-html="$t('admin_settings.payments.credentials_disclaimer')"></p>
</InfoBox>
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Allow Subscription Payments:</label>
<label class="input-label">{{ $t('admin_settings.payments.allow_payments') }}:</label>
</div>
<SwitchInput @input="$updateText('/settings', 'payments_active', payments.status)" v-model="payments.status" class="switch" :state="payments.status"/>
</div>
</div>
</div>
<div class="block-wrapper">
<label>Stripe webhook URL:</label>
<label>{{ $t('admin_settings.payments.webhook_url') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Webhook URL" rules="required" v-slot="{ errors }">
<input :value="stripeWebhookEndpoint" type="text" disabled/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -102,13 +102,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading">
<div id="page-content" v-if="! isLoading && data">
<div class="dashboard-headline">
<div class="logo">
<a href="https://vuefilemanager.com" target="_blank">
@@ -21,7 +21,7 @@
{{ data.license }}
</ColorLabel>
</a>
<a href="https://vuefilemanager.com" target="_blank" class="became-backer">
<a v-if="! config.isDemo" href="https://vuefilemanager.com" target="_blank" class="became-backer">
<div class="icon">
<credit-card-icon size="15"></credit-card-icon>
</div>
@@ -124,6 +124,8 @@
axios.get('/api/dashboard')
.then(response => {
this.data = response.data
})
.finally(() => {
this.isLoading = false
})
}

View File

@@ -6,15 +6,17 @@
<div class="content-page">
<ValidationObserver ref="personalInformation" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
<FormLabel>{{ page.data.attributes.title }}</FormLabel>
<FormLabel>
{{ page.data.attributes.title }}
</FormLabel>
<!--Visible-->
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Visibility:</label>
<small class="input-help">Status of your page visibility on website.</small>
<label class="input-label">{{ $t('admin_pages.form.visibility') }}:</label>
<small class="input-help">{{ $t('admin_pages.form.visibility_help') }}</small>
</div>
<SwitchInput @input="changeStatus" class="switch" :state="page.data.attributes.visibility"/>
</div>
@@ -22,28 +24,28 @@
</div>
<div class="block-wrapper">
<label>Title:</label>
<label>{{ $t('admin_pages.form.title') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<input @input="$updateText('/pages/' + $route.params.slug, 'title', page.data.attributes.title)" v-model="page.data.attributes.title"
placeholder="Title name" type="text" :class="{'is-error': errors[0]}"/>
:placeholder="$t('admin_pages.form.title_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Slug:</label>
<label>{{ $t('admin_pages.form.slug') }}:</label>
<div class="input-wrapper">
<input v-model="page.data.attributes.slug" type="text" disabled/>
</div>
</div>
<div class="block-wrapper">
<label>Title:</label>
<label>{{ $t('admin_pages.form.content') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<textarea
@input="$updateText('/pages/' + $route.params.slug, 'content', page.data.attributes.content)"
v-model="page.data.attributes.content"
placeholder="Type your content here..."
:placeholder="$t('admin_pages.form.content_plac')"
:class="{'is-error': errors[0]}"
rows="18"
></textarea>

View File

@@ -14,7 +14,7 @@
<settings-icon size="17"></settings-icon>
</div>
<div class="label">
Settings
{{ $t('admin_page_plans.tabs.settings') }}
</div>
</router-link>
@@ -24,7 +24,7 @@
<users-icon size="17"></users-icon>
</div>
<div class="label">
Subscribers
{{ $t('admin_page_plans.tabs.subscribers') }}
</div>
</router-link>
@@ -34,7 +34,7 @@
<trash2-icon size="17"></trash2-icon>
</div>
<div class="label">
Delete Plan
{{ $t('admin_page_plans.tabs.delete') }}
</div>
</router-link>
</div>

View File

@@ -8,52 +8,60 @@
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
<div class="form-group">
<FormLabel>Plan Details</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_details') }}
</FormLabel>
<!--Name-->
<div class="block-wrapper">
<label>Name:</label>
<label>{{ $t('admin_page_plans.form.name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<input v-model="plan.name" placeholder="Plan name" type="text" :class="{'is-error': errors[0]}"/>
<input v-model="plan.name" :placeholder="$t('admin_page_plans.form.name_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Description-->
<div class="block-wrapper">
<label>Description (optional):</label>
<label>{{ $t('admin_page_plans.form.description') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Description" v-slot="{ errors }">
<textarea v-model="plan.description" placeholder="Plan description" :class="{'is-error': errors[0]}"/>
<textarea v-model="plan.description" :placeholder="$t('admin_page_plans.form.description_plac')" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<FormLabel>Plan Pricing</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_pricing') }}
</FormLabel>
<!--Price-->
<div class="block-wrapper">
<label>Price:</label>
<label>{{ $t('admin_page_plans.form.price') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Plan price" rules="required" v-slot="{ errors }">
<input v-model="plan.price" placeholder="Plan price" type="number" step="0.01" min="1" max="99999" :class="{'is-error': errors[0]}"/>
<input v-model="plan.price" :placeholder="$t('admin_page_plans.form.price_plac')" type="number" step="0.01" min="1" max="99999"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Storage Capacity-->
<div class="block-wrapper">
<label>Storage Capacity:</label>
<label>{{ $t('admin_page_plans.form.storage') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Storage capacity" rules="required" v-slot="{ errors }">
<input v-model="plan.capacity" placeholder="Storage capacity" type="number" min="1" max="999999999" :class="{'is-error': errors[0]}"/>
<input v-model="plan.capacity" :placeholder="$t('admin_page_plans.form.storage_plac')" type="number" min="1" max="999999999"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<small class="input-help">You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.</small>
<small class="input-help">
{{ $t('admin_page_plans.form.storage_helper') }}
</small>
</div>
</div>
<div class="form-group">
<ButtonBase :disabled="isLoading" :loading="isLoading" button-style="theme" type="submit">
Create Plan
{{ $t('admin_page_plans.create_plan_button') }}
</ButtonBase>
</div>
</ValidationObserver>
@@ -72,7 +80,7 @@
import ButtonBase from '@/components/FilesView/ButtonBase'
import PageHeader from '@/components/Others/PageHeader'
import {required} from 'vee-validate/dist/rules'
import { mapGetters } from 'vuex'
import {mapGetters} from 'vuex'
import {events} from "@/bus"
import axios from 'axios'
@@ -119,13 +127,10 @@
})
.then(response => {
// End loading
this.isLoading = false
// Show toaster
events.$emit('toaster', {
type: 'success',
message: 'Your plan was successfully created!',
message: this.$t('toaster.plan_created'),
})
// Go to User page
@@ -136,29 +141,14 @@
// Validation errors
if (error.response.status == 422) {
// Email validation error
if (error.response.data.errors['email']) {
this.$refs.createPlan.setErrors({
'email': error.response.data.errors['email']
});
}
// Password validation error
if (error.response.data.errors['password']) {
this.$refs.createPlan.setErrors({
'password': error.response.data.errors['password']
});
}
// Password validation error
if (error.response.data.errors['storage_capacity']) {
this.$refs.createPlan.setErrors({
'storage capacity': 'The storage capacity must be lower than 10 digit number.'
'storage capacity': this.$t('errors.capacity_digit')
});
}
} else {
events.$emit('alert:open', {
@@ -167,9 +157,11 @@
})
}
}).finally(() => {
// End loading
this.isLoading = false
})
})
}
},
}

View File

@@ -1,24 +1,19 @@
<template>
<PageTab class="form-fixed-width">
<PageTabGroup>
<FormLabel>Delete Plan</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_delete') }}
</FormLabel>
<InfoBox>
<p>You can delete plan, but, pay attention!</p>
<p>{{ $t('admin_page_plans.disclaimer_delete_plan') }}</p>
</InfoBox>
<ValidationObserver ref="deletePlan" @submit.prevent="deletePlan" v-slot="{ invalid }" tag="form"
class="form block-form">
<ValidationProvider tag="div" class="block-wrapper" v-slot="{ errors }" mode="passive"
name="Plan name" :rules="'required|is:' + plan.attributes.name">
<ValidationObserver ref="deletePlan" @submit.prevent="deletePlan" v-slot="{ invalid }" tag="form" class="form block-form">
<ValidationProvider tag="div" class="block-wrapper" v-slot="{ errors }" mode="passive" name="Plan name" :rules="'required|is:' + plan.attributes.name">
<label>{{ $t('admin_page_user.label_delete_user', {user: plan.attributes.name}) }}:</label>
<div class="single-line-form">
<input v-model="planName"
placeholder="Type plan name"
type="text"
:class="{'is-error': errors[0]}"
/>
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit"
button-style="danger" class="submit-button">
Delete Plan
<input v-model="planName" :placeholder="$t('admin_page_plans.form.name_delete_plac')" type="text" :class="{'is-error': errors[0]}" />
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit" button-style="danger" class="submit-button">
{{ $t('admin_page_plans.delete_plan_button') }}
</ButtonBase>
</div>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -47,15 +42,15 @@
'plan'
],
components: {
FormLabel,
InfoBox,
PageTabGroup,
PageTab,
ValidationProvider,
ValidationObserver,
PageTabGroup,
ButtonBase,
FormLabel,
SetupBox,
required,
InfoBox,
PageTab,
},
data() {
return {
@@ -88,8 +83,8 @@
// Show message
events.$emit('success:open', {
emoji: '👍',
title: 'Plan was deleted',
message: 'Your plan was successfully deleted.',
title: this.$t('popup_deleted_plan.title'),
message: this.$t('popup_deleted_plan.message'),
})
this.$router.push({name: 'Plans'})
@@ -116,14 +111,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -2,15 +2,17 @@
<PageTab>
<ValidationObserver ref="personalInformation" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
<PageTabGroup>
<FormLabel>Plan details</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_details') }}
</FormLabel>
<!--Visible-->
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Status:</label>
<small class="input-help">Status of your plan availability on website.</small>
<label class="input-label">{{ $t('admin_page_plans.form.status') }}:</label>
<small class="input-help">{{ $t('admin_page_plans.form.status_help') }}</small>
</div>
<SwitchInput @input="changeStatus" class="switch" :state="plan.attributes.status"/>
</div>
@@ -19,34 +21,36 @@
<!--Name-->
<div class="block-wrapper">
<label>Name:</label>
<label>{{ $t('admin_page_plans.form.name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'name', plan.attributes.name)" v-model="plan.attributes.name" placeholder="Plan name" type="text" :class="{'is-error': errors[0]}"/>
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'name', plan.attributes.name)" v-model="plan.attributes.name" :placeholder="$t('admin_page_plans.form.name_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Description-->
<div class="block-wrapper">
<label>Description (optional):</label>
<label>{{ $t('admin_page_plans.form.description') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Description" v-slot="{ errors }">
<textarea @input="$updateText('/plans/' + $route.params.id + '/update', 'description', plan.attributes.description)" v-model="plan.attributes.description" placeholder="Plan description" :class="{'is-error': errors[0]}"/>
<textarea @input="$updateText('/plans/' + $route.params.id + '/update', 'description', plan.attributes.description)" v-model="plan.attributes.description" :placeholder="$t('admin_page_plans.form.description_plac')" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Storage Capacity-->
<div class="block-wrapper">
<label>Storage Capacity in GB:</label>
<label>{{ $t('admin_page_plans.form.storage') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Storage capacity" rules="required" v-slot="{ errors }">
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'capacity', plan.attributes.capacity)" v-model="plan.attributes.capacity" placeholder="Storage capacity" type="number" min="1" max="999999999" :class="{'is-error': errors[0]}"/>
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'capacity', plan.attributes.capacity)" v-model="plan.attributes.capacity" :placeholder="$t('admin_page_plans.form.storage_plac')" type="number" min="1" max="999999999" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<small class="input-help">You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.</small>
<small class="input-help">
{{ $t('admin_page_plans.form.storage_helper') }}
</small>
</div>
<InfoBox>
<p>Price change for your plan is not available due to Stripe service design. If you wish change your price plan, please, create new plan.</p>
<p>{{ $t('admin_page_plans.disclaimer_edit_price') }}</p>
</InfoBox>
</PageTabGroup>
</ValidationObserver>
@@ -107,13 +111,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -33,7 +33,7 @@
</DatatableWrapper>
</PageTabGroup>
<InfoBox v-else>
<p>There is no any subscriber yet.</p>
<p>{{ $t('admin_page_plans.subscribers.empty') }}</p>
</InfoBox>
</PageTab>
</template>
@@ -65,7 +65,7 @@
isLoading: false,
columns: [
{
label: 'User',
label: this.$t('admin_page_user.table.name'),
field: 'data.attributes.name',
sortable: true
},
@@ -99,14 +99,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -12,7 +12,7 @@
<!--Avatar-->
<div class="block-wrapper">
<label>Avatar</label>
<label>{{ $t('admin_page_user.create_user.avatar') }}</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="avatar" v-slot="{ errors }">
<ImageInput v-model="user.avatar" :error="errors[0]" />
</ValidationProvider>
@@ -206,7 +206,7 @@
if (error.response.data.errors['storage_capacity']) {
this.$refs.createUser.setErrors({
'storage capacity': 'The storage capacity must be lower than 10 digit number.'
'storage capacity': this.$t('errors.capacity_digit')
});
}
} else {

View File

@@ -8,11 +8,12 @@
<!--Info about active subscription-->
<div v-if="! subscription.canceled" class="state active">
<ListInfo class="list-info">
<ListInfoItem class="list-item" :title="$t('user_subscription.plan')" :content="subscription.attributes.name + ' - ' + subscription.attributes.capacity_formatted"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.billed')" content="Monthly"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.plan')"
:content="subscription.attributes.name + ' - ' + subscription.attributes.capacity_formatted"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.billed')" :content="$t('admin_page_user.subscription.interval_mo')"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.status')" :content="status"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.created_at')" :content="subscription.attributes.created_at"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.renews_at')" :content="subscription.attributes.ends_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.created_at')" :content="subscription.attributes.created_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.renews_at')" :content="subscription.attributes.ends_at"/>
</ListInfo>
</div>
@@ -21,8 +22,8 @@
<ListInfo class="list-info">
<ListInfoItem class="list-item" :title="$t('user_subscription.plan')" :content="subscription.attributes.name"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.status')" :content="status"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.canceled_at')" :content="subscription.attributes.canceled_at"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.ends_at')" :content="subscription.attributes.ends_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.canceled_at')" :content="subscription.attributes.canceled_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.ends_at')" :content="subscription.attributes.ends_at"/>
</ListInfo>
</div>
</PageTabGroup>
@@ -83,10 +84,9 @@
this.subscription = response.data.data
this.isLoading = false
}).catch(error => {
if (error.response.status == 404) {
this.isLoading = false
}
}
})
}
}

View File

@@ -94,7 +94,7 @@
<div v-if="config.storageLimit && config.isSaaS && config.app_payments_active" class="headline-actions">
<router-link :to="{name: 'UpgradePlan'}" v-if="! user.relationships.subscription || (user.relationships.subscription && ! user.relationships.subscription.data.attributes.is_highest)">
<ButtonBase class="upgrade-button" button-style="secondary" type="button">
{{ $t('upgrade.upgrade_plan') }}
{{ $t('global.upgrade_plan') }}
</ButtonBase>
</router-link>
</div>

View File

@@ -218,7 +218,7 @@
</ButtonBase>
<p class="error-message" v-if="isError">{{ errorMessage }}</p>
<small class="disclaimer">
{{ $t('page_upgrade_account.summary.submit_disclaimer') }}
{{ $t('page_upgrade_account.summary.submit_disclaimer', {app: config.app_name}) }}
</small>
</div>
</div>
@@ -246,9 +246,7 @@
import {events} from "@/bus"
import axios from 'axios'
let stripe = Stripe(`pk_test_51GsACaCBETHMUxzVsYkeApHtqb85paMuye7G77PDDQ28kXqDJ5HTmqLi13aM6xee81OQK1fhkTZ7vmDiWLStU9160061Yb2MtL`),
elements = stripe.elements(),
card = undefined;
let [stripe, card] = [undefined, undefined];
export default {
name: 'UpgradePlan',
@@ -266,7 +264,7 @@
Spinner,
},
computed: {
...mapGetters(['requestedPlan']),
...mapGetters(['requestedPlan', 'config']),
billing() {
return this.$store.getters.user.relationships.settings.data.attributes
}
@@ -291,6 +289,15 @@
}
},
methods: {
initStripe() {
stripe = Stripe(this.config.stripe_public_key)
let elements = stripe.elements();
card = elements.create('card');
card.mount(this.$refs.stripeCard);
},
payByNewCardForm() {
this.payByNewCard = true
this.isError = false
@@ -392,8 +399,7 @@
if (!this.requestedPlan) {
this.$router.push({name: 'UpgradePlan'})
} else {
card = elements.create('card');
card.mount(this.$refs.stripeCard);
this.initStripe()
}
},
created() {

View File

@@ -49,12 +49,12 @@
this.$store.commit('STORE_REQUESTED_PLAN', plan)
}
},
/*beforeMount() {
beforeMount() {
let StripeElementsScript = document.createElement('script')
StripeElementsScript.setAttribute('src', 'https://js.stripe.com/v3/')
document.head.appendChild(StripeElementsScript)
},*/
},
}
</script>

View File

@@ -136,8 +136,8 @@
},
deleteCard(card) {
events.$emit('confirm:open', {
title: this.$t('popup_set_card.'),
message: this.$t('popup_set_card.'),
title: this.$t('popup_set_card.title'),
message: this.$t('popup_set_card.message'),
action: {
id: card.card_id,
operation: 'delete-credit-card'

View File

@@ -8,11 +8,12 @@
<!--Info about active subscription-->
<div v-if="! subscription.data.attributes.canceled" class="state active">
<ListInfo class="list-info">
<ListInfoItem class="list-item" :title="$t('user_subscription.plan')" :content="subscription.data.attributes.name + ' - ' + subscription.data.attributes.capacity_formatted"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.billed')" content="Monthly"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.plan')"
:content="subscription.data.attributes.name + ' - ' + subscription.data.attributes.capacity_formatted"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.billed')" :content="$t('admin_page_user.subscription.interval_mo')"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.status')" :content="status"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.created_at')" :content="subscription.data.attributes.created_at"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.renews_at')" :content="subscription.data.attributes.ends_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.created_at')" :content="subscription.data.attributes.created_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.renews_at')" :content="subscription.data.attributes.ends_at"/>
</ListInfo>
<div class="plan-action">
<ButtonBase
@@ -30,8 +31,8 @@
<ListInfo class="list-info">
<ListInfoItem class="list-item" :title="$t('user_subscription.plan')" :content="subscription.data.attributes.name"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.status')" :content="status"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.canceled_at')" :content="subscription.data.attributes.canceled_at"/>
<ListInfoItem class="list-item" :title="$t('user_subscription.ends_at')" :content="subscription.data.attributes.ends_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.canceled_at')" :content="subscription.data.attributes.canceled_at"/>
<ListInfoItem class="list-item capitalize" :title="$t('user_subscription.ends_at')" :content="subscription.data.attributes.ends_at"/>
</ListInfo>
<div class="plan-action">
<ButtonBase
@@ -60,7 +61,7 @@
import InfoBox from '@/components/Others/Forms/InfoBox'
import ListInfo from '@/components/Others/ListInfo'
import {ExternalLinkIcon} from "vue-feather-icons"
import { mapGetters } from 'vuex'
import {mapGetters} from 'vuex'
import {events} from "@/bus"
import axios from 'axios'
@@ -113,7 +114,7 @@
cancelSubscription() {
// Set confirm button
if (! this.isConfirmedCancel) {
if (!this.isConfirmedCancel) {
this.isConfirmedCancel = true
} else {
@@ -132,9 +133,6 @@
this.fetchSubscriptionDetail()
})
// End deleting spinner button
this.isDeleting = false
events.$emit('alert:open', {
emoji: '👍',
title: this.$t('popup_subscription_cancel.title'),
@@ -143,7 +141,7 @@
button: this.$t('popup_subscription_cancel.button')
})
})
.catch(() => {
.finally(() => {
// End deleting spinner button
this.isDeleting = false
@@ -154,7 +152,7 @@
resumeSubscription() {
// Set confirm button
if (! this.isConfirmedResume) {
if (!this.isConfirmedResume) {
this.isConfirmedResume = true
} else {
@@ -178,10 +176,10 @@
events.$emit('alert:open', {
emoji: '👍',
title: this.$t('popup_subscription_cancel.title'),
message: this.$t('popup_subscription_cancel.message'),
title: this.$t('popup_subscription_resumed.title'),
message: this.$t('popup_subscription_resumed.message'),
buttonStyle: 'theme',
button: this.$t('popup_subscription_cancel.button')
button: this.$t('popup_subscription_resumed.button')
})
})
.catch(() => {
@@ -198,15 +196,15 @@
if (response.status == 204) {
this.subscription = undefined
this.isLoading = false
}
if (response.status == 200) {
this.subscription = response.data
this.isLoading = false
}
})
}).finally(() => {
this.isLoading = false
})
}
},
created() {

View File

@@ -1,18 +1,48 @@
<?php
return [
'app_description' => '利用 VueFileManager 创建您自己的私有云,由 Laravel and Vue 驱动',
'user_not_fount' => '我们没有找到此邮箱对应的用户信息。',
'incorrect_password' => '不好意思,您的密码好像不正确。',
'time' => '%d. %B. %Y 于 %H:%M',
'home' => '首页',
'app_description' => '利用 VueFileManager 创建您自己的私有云,由 Laravel and Vue 驱动',
'user_not_fount' => '我们没有找到此邮箱对应的用户信息。',
'incorrect_password' => '不好意思,您的密码好像不正确。',
'time' => '%d. %B. %Y 于 %H:%M',
'home' => '首页',
// Reset password email
'reset_password_greeting' => 'Hello!',
'reset_password_subject' => 'Reset password for your account on ',
'reset_password_line_1' => 'You are receiving this email because we received a password reset request for your account.',
'reset_password_subject' => 'Reset password for your account on ',
'reset_password_line_1' => 'You are receiving this email because we received a password reset request for your account.',
'reset_password_line_2' => 'If you did not request a password reset, no further action is required.',
'reset_password_action' => 'Reset Password',
'salutation' => 'Regards'
'salutation' => 'Regards',
// Invoice
'print_button' => 'Print Document',
'invoice_title' => 'Invoice',
'date' => 'Date',
'product' => 'Product',
'subscription' => 'Subscription',
'invoice_number' => 'Invoice Number',
'seller' => 'Seller',
'client' => 'Client',
'seller_vat' => 'VAT number',
'seller_name' => 'Name',
'seller_phone' => 'Phone',
'name' => 'Name',
'phone' => 'Phone',
'address' => 'Address',
'city' => 'City',
'state' => 'State',
'postal_code' => 'Postal code',
'country' => 'Country',
'col_description' => 'Description',
'col_date' => 'Date',
'col_amount' => 'Amount',
'total' => 'Total',
];

View File

@@ -14,5 +14,35 @@ return [
'reset_password_line_2' => 'If you did not request a password reset, no further action is required.',
'reset_password_action' => 'Reset Password',
'salutation' => 'Regards'
'salutation' => 'Regards',
// Invoice
'print_button' => 'Print Document',
'invoice_title' => 'Invoice',
'date' => 'Date',
'product' => 'Product',
'subscription' => 'Subscription',
'invoice_number' => 'Invoice Number',
'seller' => 'Seller',
'client' => 'Client',
'seller_vat' => 'VAT number',
'seller_name' => 'Name',
'seller_phone' => 'Phone',
'name' => 'Name',
'phone' => 'Phone',
'address' => 'Address',
'city' => 'City',
'state' => 'State',
'postal_code' => 'Postal code',
'country' => 'Country',
'col_description' => 'Description',
'col_date' => 'Date',
'col_amount' => 'Amount',
'total' => 'Total',
];

View File

@@ -1,18 +1,48 @@
<?php
return [
'app_description' => 'Vytvor si svoj vlastný privátny cloud s VueFileManager klientom poháňaným Laravelom a Vue',
'user_not_fount' => 'Uživateľ s touto emailovou adresou sa nenašiel.',
'incorrect_password' => 'Prepáč, zadané heslo je nesprávne',
'time' => '%d. %B. %Y o %H:%M',
'home' => 'Domov',
'app_description' => 'Vytvor si svoj vlastný privátny cloud s VueFileManager klientom poháňaným Laravelom a Vue',
'user_not_fount' => 'Uživateľ s touto emailovou adresou sa nenašiel.',
'incorrect_password' => 'Prepáč, zadané heslo je nesprávne',
'time' => '%d. %B. %Y o %H:%M',
'home' => 'Domov',
// Reset password email
'reset_password_greeting' => 'Ahoj!',
'reset_password_subject' => 'Resetujte svoje heslo v aplikácií ',
'reset_password_line_1' => 'Tento email ste dostali pretože ste nás požiadali o zmenu hesla pre Váš účet.',
'reset_password_line_2' => 'Pokiaľ ste si nechceli zmeniť heslo, žiadna akcia nie je vyžadovaná.',
'reset_password_action' => 'Resetovať heslo',
'reset_password_subject' => 'Resetujte svoje heslo v aplikácií ',
'reset_password_line_1' => 'Tento email ste dostali pretože ste nás požiadali o zmenu hesla pre Váš účet.',
'reset_password_line_2' => 'Pokiaľ ste si nechceli zmeniť heslo, žiadna akcia nie je vyžadovaná.',
'reset_password_action' => 'Resetovať heslo',
'salutation' => 'S pozdravom '
'salutation' => 'S pozdravom ',
// Invoice
'print_button' => 'Vytlačiť dokument',
'invoice_title' => 'Faktúra',
'date' => 'Dátum',
'product' => 'Produkt',
'subscription' => 'Predplatné',
'invoice_number' => 'Číslo faktúry',
'seller' => 'Predajca',
'client' => 'Klient',
'seller_vat' => 'IČ DPH',
'seller_name' => 'Meno',
'seller_phone' => 'Telefónne číslo',
'name' => 'Meno',
'phone' => 'Telefónne číslo',
'address' => 'Adresa',
'city' => 'Mesto',
'state' => 'Štát',
'postal_code' => 'PSČ',
'country' => 'Krajina',
'col_description' => 'Popis',
'col_date' => 'Dátum',
'col_amount' => 'Čiastka',
'total' => 'Spolu',
];

View File

@@ -283,6 +283,10 @@
margin-top: 70px;
}
.capitalize {
text-transform: capitalize;
}
@media only screen and (max-width: 1024px) {
#single-page {

View File

@@ -27,7 +27,6 @@
<body>
<div id="app"></div>
<script src="https://js.stripe.com/v3/"></script>
<script>
let config = {
locale: '{{ \Illuminate\Support\Facades\App::getLocale() }}',
@@ -42,6 +41,8 @@
host: '{{ url('/') }}',
api: '{{ url('/api') }}',
stripe_public_key: '{{ config('cashier.key') ? config('cashier.key') : null }}',
userRegistration: {{ isset($settings->registration) ? $settings->registration : 1 }},
storageLimit: {{ isset($settings->storage_limitation) ? $settings->storage_limitation : 1 }},

View File

@@ -18,7 +18,7 @@
<path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path>
<rect x="6" y="14" width="12" height="8"></rect>
</svg>
<span class="label">Print Document</span>
<span class="label">@lang('vuefilemanager.print_button')</span>
</button>
</div>
<div id="invoice-wrapper">
@@ -27,46 +27,46 @@
<img src="/assets/images/vuefilemanager-horizontal-logo.svg" alt="VueFileManager">
</div>
<div class="title">
<h1>Invoice</h1>
<h1>@lang('vuefilemanager.invoice_title')</h1>
</div>
</header>
<section class="invoice-subject">
<ul class="list">
<li class="list-item">
<b>Date:</b>
<b>@lang('vuefilemanager.date'):</b>
<span>{{ format_date($invoice->date()) }}</span>
</li>
<li class="list-item">
<b>Product:</b>
<span>Subscription</span>
<b>@lang('vuefilemanager.product'):</b>
<span>@lang('vuefilemanager.subscription')</span>
</li>
<li class="list-item">
<b>Invoice Number:</b>
<b>@lang('vuefilemanager.invoice_number'):</b>
<span>{{ $invoice->number }}</span>
</li>
</ul>
</section>
<div class="invoice-partners">
<div class="partner">
<h2 class="partner-title">Seller:</h2>
<h2 class="partner-title">@lang('vuefilemanager.seller'):</h2>
<ul class="list">
@isset($settings->billing_vat_number)
<li class="list-item">
<b>VAT number:</b>
<b>@lang('vuefilemanager.seller_vat'):</b>
<span>{{ $settings->billing_vat_number }}</span>
</li>
@endisset
@isset($settings->billing_name)
<li class="list-item">
<b>Name:</b>
<b>@lang('vuefilemanager.seller_name'):</b>
<span>{{ $settings->billing_name }}</span>
</li>
@endisset
@isset($settings->billing_phone_number)
<li class="list-item">
<b>Phone:</b>
<b>@lang('vuefilemanager.seller_phone'):</b>
<span>{{ $settings->billing_phone_number }}</span>
</li>
@endisset
@@ -74,54 +74,54 @@
<ul class="list">
@isset($settings->billing_address)
<li class="list-item">
<b>Address:</b>
<b>@lang('vuefilemanager.address'):</b>
<span>{{ $settings->billing_address }}</span>
</li>
@endisset
@isset($settings->billing_city)
<li class="list-item">
<b>City:</b>
<b>@lang('vuefilemanager.city'):</b>
<span>{{ $settings->billing_city }}</span>
</li>
@endisset
@isset($settings->billing_state)
<li class="list-item">
<b>State:</b>
<b>@lang('vuefilemanager.state'):</b>
<span>{{ $settings->billing_state }}</span>
</li>
@endisset
@isset($settings->billing_postal_code)
<li class="list-item">
<b>Postal code:</b>
<b>@lang('vuefilemanager.postal_code'):</b>
<span>{{ $settings->billing_postal_code }}</span>
</li>
@endisset
@isset($settings->billing_country)
<li class="list-item">
<b>Country:</b>
<b>@lang('vuefilemanager.country'):</b>
<span>{{ $settings->billing_country }}</span>
</li>
@endisset
</ul>
</div>
<div class="partner">
<h2 class="partner-title">Client:</h2>
<h2 class="partner-title">@lang('vuefilemanager.client'):</h2>
<ul class="list">
@isset($invoice->customer_name)
<li class="list-item">
<b>Name:</b>
<b>@lang('vuefilemanager.name'):</b>
<span>{{ $invoice->customer_name }}</span>
</li>
@endisset
@isset($invoice->customer_phone)
<li class="list-item">
<b>Phone:</b>
<b>@lang('vuefilemanager.phone'):</b>
<span>{{ $invoice->customer_phone }}</span>
</li>
@endisset
@@ -129,35 +129,35 @@
<ul class="list">
@isset($invoice->customer_address['line1'])
<li class="list-item">
<b>Address:</b>
<b>@lang('vuefilemanager.address'):</b>
<span>{{ $invoice->customer_address['line1'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['city'])
<li class="list-item">
<b>City:</b>
<b>@lang('vuefilemanager.city'):</b>
<span>{{ $invoice->customer_address['city'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['state'])
<li class="list-item">
<b>State:</b>
<b>@lang('vuefilemanager.state'):</b>
<span>{{ $invoice->customer_address['state'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['postal_code'])
<li class="list-item">
<b>Postal code:</b>
<b>@lang('vuefilemanager.postal_code'):</b>
<span>{{ $invoice->customer_address['postal_code'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['country'])
<li class="list-item">
<b>Country:</b>
<b>@lang('vuefilemanager.country'):</b>
<span>{{ $invoice->customer_address['country'] }}</span>
</li>
@endisset
@@ -168,9 +168,9 @@
<table class="table">
<thead class="table-header">
<tr>
<td>Description</td>
<td>Date</td>
<td>Amount</td>
<td>@lang('vuefilemanager.col_description')</td>
<td>@lang('vuefilemanager.col_date')</td>
<td>@lang('vuefilemanager.col_amount')</td>
</tr>
</thead>
<tbody class="table-body">
@@ -183,7 +183,7 @@
</table>
</div>
<div class="invoice-summary">
<b>Total {{ $invoice->total() }}</b>
<b>@lang('vuefilemanager.total') {{ $invoice->total() }}</b>
</div>
</div>
</body>

View File

@@ -0,0 +1 @@
9999999999a:2:{s:4:"plan";a:20:{s:2:"id";s:12:"starter-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:999;s:14:"amount_decimal";s:3:"999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593769244;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_HZvEp2UNNs7zYx";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_HZvEp2UNNs7zYx";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593769243;s:11:"description";s:24:"The best for starting up";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"200";}s:4:"name";s:12:"Starter Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593769244;}}

View File

@@ -1 +1 @@
1594287749i:1594287749;
1594538596i:1594538596;

View File

@@ -1 +1 @@
1594287749i:1;
1594538596i:1;

4
webpack.mix.js vendored
View File

@@ -23,10 +23,10 @@ mix.js('resources/js/main.js', 'public/js')
}
},
})
.options({
/* .options({
hmrOptions: {
host: '172.20.10.5',
port: '8080'
},
})
})*/
.disableNotifications();