This commit is contained in:
carodej
2020-07-14 10:34:42 +02:00
parent 2ae60003d6
commit c9d300769c
55 changed files with 1747 additions and 481 deletions

View File

@@ -1,67 +0,0 @@
APP_NAME=VueFileManager
APP_ENV=local
APP_KEY=base64:EYM98pyseC/frZhW30ifeJqpOP3UmmLj1fMahrDN3zw=
APP_DEBUG=true
APP_URL=http://localhost
APP_DEMO=false
LOG_CHANNEL=stack
SCOUT_DRIVER=tntsearch
FILESYSTEM_DRIVER=local
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=file-manager
DB_USERNAME=root
DB_PASSWORD=root
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MAIL_DRIVER=smtp
MAIL_HOST=smtp.websupport.sk
MAIL_PORT=25
MAIL_USERNAME=vuefilemanager@hi5ve.digital
MAIL_PASSWORD=Yl2d]kET>)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="${MAIL_USERNAME}"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=AKIA3UOZZXPUGKQ3BLMZ
AWS_SECRET_ACCESS_KEY=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
AWS_DEFAULT_REGION=eu-central-1
AWS_BUCKET=vuefilemanager-frankfurt
DO_SPACES_KEY=FSUHFOF5DMZCEWXVNPTI
DO_SPACES_SECRET=2t87Ugz/JoIjT1dIdTjnnKQ4t74Yfe665KBjCRc0yDk
DO_SPACES_ENDPOINT=https://fra1.digitaloceanspaces.com
DO_SPACES_REGION=fra1
DO_SPACES_BUCKET=vuefilemanager
WASABI_KEY=
WASABI_SECRET=
WASABI_ENDPOINT=
WASABI_REGION=
WASABI_BUCKET=
BACKBLAZE_KEY=
BACKBLAZE_SECRET=
BACKBLAZE_ENDPOINT=
BACKBLAZE_REGION=
BACKBLAZE_BUCKET=
PASSPORT_CLIENT_ID=1
PASSPORT_CLIENT_SECRET=kZevoWiMjuoxlfO0N0Ezq2oo6ukvX27VPEEJlQUD
APP_DEPLOY_SECRET=5603148y60eew0q5fw46
APP_DEPLOY_BRANCH=dev
CASHIER_LOGGER=stack
CASHIER_CURRENCY=usd
STRIPE_KEY=pk_test_51GsACaCBETHMUxzVsYkeApHtqb85paMuye7G77PDDQ28kXqDJ5HTmqLi13aM6xee81OQK1fhkTZ7vmDiWLStU9160061Yb2MtL
STRIPE_SECRET=sk_test_51GsACaCBETHMUxzVviYCrv0CeZMyWAOfBPe4uH5rkKJcJxrXhIciWQTr7UB1sgw9geoJMkNDVSWBQW36tuAsVznd00zhNHXhok
STRIPE_WEBHOOK_SECRET=whsec_5aM5emy4U9AzPLFxOPyBSyI0QGyI1MZW

View File

@@ -3,10 +3,11 @@ APP_ENV=local
APP_KEY=base64:sB1YuKsbWv7MdWugb9ZsYBqv2QZJ+QOuHZHEddOsUuo=
APP_DEBUG=true
APP_URL=http://localhost
APP_DEMO=false
LOG_CHANNEL=stack
SCOUT_DRIVER=tntsearch
FILESYSTEM_DRIVER=local
FILESYSTEM_DRIVER=
DB_CONNECTION=mysql
DB_HOST=127.0.0.1

1
.gitignore vendored
View File

@@ -3,6 +3,7 @@
/public/storage
/storage/*.key
/storage/*.index
/storage/framework/cache
/vendor
.idea
.env

View File

@@ -123,7 +123,7 @@ class FileManagerFile extends Model
}
// Get thumbnail from local storage
if ($this->attributes['thumbnail'] && is_storage_driver('local')) {
if ($this->attributes['thumbnail']) {
// Thumbnail route
$route = route('thumbnail', ['name' => $this->attributes['thumbnail']]);
@@ -160,16 +160,13 @@ class FileManagerFile extends Model
}
// Get thumbnail from local storage
if (is_storage_driver('local')) {
$route = route('file', ['name' => $this->attributes['basename']]);
$route = route('file', ['name' => $this->attributes['basename']]);
if ($this->public_access) {
return $route . '/public/' . $this->public_access;
}
return $route;
if ($this->public_access) {
return $route . '/public/' . $this->public_access;
}
return $route;
}
/**

View File

@@ -67,7 +67,7 @@ class AppFunctionsController extends Controller
return view("index")
->with('settings', $settings)
->with('legal', $legal)
->with('legal', isset($legal) ? $legal : null)
->with('installation', $connection);
}

View File

@@ -23,7 +23,6 @@ class AuthController extends Controller
*/
public function check_account(CheckAccountRequest $request)
{
// Get User
$user = User::where('email', $request->input('email'))->select(['name', 'avatar'])->first();
@@ -84,10 +83,8 @@ class AuthController extends Controller
'password' => Hash::make($request->password),
]);
$default_storage = Setting::where('name', 'storage_default')->first();
// Create settings
$settings = UserSettings::create([
UserSettings::forceCreate([
'user_id' => $user->id,
'storage_capacity' => $settings['storage_default'],
]);

View File

@@ -126,47 +126,11 @@ class SetupWizardController extends Controller
'value' => 1,
]);
return response('Done', 200);
}
/**
* Migrate database and generate necessary things
*/
private function set_up_application()
{
// Generate app key
Artisan::call('key:generate');
// Migrate database
Artisan::call('migrate:fresh');
// Create Passport Keys
Artisan::call('passport:keys', [
'--force' => true
]);
// Create Password grant client
Artisan::call('passport:client', [
'--password' => true,
'--name' => 'vuefilemanager',
]);
// Create Personal access client
Artisan::call('passport:client', [
'--personal' => true,
'--name' => 'shared',
]);
// Get generated client
$client = \DB::table('oauth_clients')->where('name', '=', 'vuefilemanager')->first();
// Set passport client to .env
setEnvironmentValue('PASSPORT_CLIENT_ID', $client->id);
setEnvironmentValue('PASSPORT_CLIENT_SECRET', $client->secret);
// Clear cache
Artisan::call('config:clear');
//Artisan::call('config:cache');
//Artisan::call('config:clear');
Artisan::call('config:cache');
return response('Done', 200);
}
/**
@@ -203,6 +167,11 @@ class SetupWizardController extends Controller
],
]);
// Store options
$settings->each(function ($col) {
Setting::updateOrCreate(['name' => $col['name']], $col);
});
// Set stripe credentials to .env
setEnvironmentValue('CASHIER_CURRENCY', $request->currency);
setEnvironmentValue('STRIPE_KEY', $request->key);
@@ -210,7 +179,7 @@ class SetupWizardController extends Controller
setEnvironmentValue('STRIPE_WEBHOOK_SECRET', $request->webhookSecret);
// Clear cache
Artisan::call('config:clear');
Artisan::call('config:cache');
return response('Done', 200);
}
@@ -265,8 +234,8 @@ class SetupWizardController extends Controller
});
// Clear cache
Artisan::call('config:clear');
//Artisan::call('config:cache');
//Artisan::call('config:clear');
Artisan::call('config:cache');
return response('Done', 200);
}
@@ -302,7 +271,9 @@ class SetupWizardController extends Controller
],
]);
} else if ($storage_driver === 's3') {
}
if ($storage_driver === 's3') {
$storage = collect([
[
@@ -327,7 +298,9 @@ class SetupWizardController extends Controller
],
]);
} else if ($storage_driver === 'spaces') {
}
if ($storage_driver === 'spaces') {
$storage = collect([
[
@@ -356,7 +329,9 @@ class SetupWizardController extends Controller
],
]);
} else if ($storage_driver === 'wasabi') {
}
if ($storage_driver === 'wasabi') {
$storage = collect([
[
@@ -385,7 +360,9 @@ class SetupWizardController extends Controller
],
]);
} else if ($storage_driver === 'backblaze') {
}
if ($storage_driver === 'backblaze') {
$storage = collect([
[
@@ -415,7 +392,7 @@ class SetupWizardController extends Controller
]);
}
// Store storage driver options
// Store storage options
$storage->each(function ($col) {
setEnvironmentValue($col['name'], $col['value']);
});
@@ -454,7 +431,7 @@ class SetupWizardController extends Controller
});
// Clear cache
Artisan::call('config:clear');
Artisan::call('config:cache');
return response('Done', 200);
}
@@ -517,11 +494,11 @@ class SetupWizardController extends Controller
],
[
'name' => 'storage_limitation',
'value' => $request->storageLimitation ? $request->storageLimitation : 5,
'value' => $request->storageLimitation,
],
[
'name' => 'storage_default',
'value' => $request->defaultStorage,
'value' => $request->defaultStorage ? $request->defaultStorage : 5,
],
]);
@@ -557,7 +534,7 @@ class SetupWizardController extends Controller
}
// Create user
$user = User::create([
$user = User::forceCreate([
'avatar' => $request->hasFile('avatar') ? $avatar : null,
'name' => $request->name,
'role' => 'admin',
@@ -575,20 +552,20 @@ class SetupWizardController extends Controller
]);
// Store setup wizard progress
Setting::create([
Setting::updateOrCreate([
'name' => 'setup_wizard_success',
'value' => 1,
]);
// Store License
Setting::create([
Setting::updateOrCreate([
'name' => 'license',
'value' => $request->license,
]);
// Store Purchase Code
Setting::create([
'name' => 'license',
Setting::updateOrCreate([
'name' => 'purchase_code',
'value' => $request->purchase_code,
]);
@@ -612,6 +589,42 @@ class SetupWizardController extends Controller
return $response;
}
/**
* Migrate database and generate necessary things
*/
private function set_up_application()
{
// Generate app key
Artisan::call('key:generate');
// Migrate database
Artisan::call('migrate:fresh');
// Create Passport Keys
Artisan::call('passport:keys', [
'--force' => true
]);
// Create Password grant client
Artisan::call('passport:client', [
'--password' => true,
'--name' => 'vuefilemanager',
]);
// Create Personal access client
Artisan::call('passport:client', [
'--personal' => true,
'--name' => 'shared',
]);
// Get generated client
$client = \DB::table('oauth_clients')->where('name', '=', 'vuefilemanager')->first();
// Set passport client to .env
setEnvironmentValue('PASSPORT_CLIENT_ID', $client->id);
setEnvironmentValue('PASSPORT_CLIENT_SECRET', $client->secret);
}
/**
* Make login request for get access token
*

View File

@@ -11,7 +11,8 @@ use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image;
function get_setting($setting) {
function get_setting($setting)
{
return Setting::where('name', $setting)->first()->value;
}
@@ -123,12 +124,11 @@ function get_storage()
*/
function is_storage_driver($driver)
{
if (is_array($driver)) {
return in_array(env('FILESYSTEM_DRIVER'), $driver);
return in_array(config('filesystem.default'), $driver);
}
return env('FILESYSTEM_DRIVER') === $driver;
return config('filesystem.default') === $driver;
}
/**

View File

@@ -29,8 +29,8 @@ class StoreAppSetupRequest extends FormRequest
'logo' => 'sometimes|file',
'favicon' => 'sometimes|file',
'contactMail' => 'required|email',
'googleAnalytics' => 'required|string',
'defaultStorage' => 'required|digits_between:1,9',
'googleAnalytics' => 'sometimes|string',
'defaultStorage' => 'sometimes|digits_between:1,9',
'userRegistration' => 'required|boolean',
'storageLimitation' => 'required|boolean',
];

View File

@@ -157,10 +157,12 @@ class StripeService
$product = $this->stripe->products()->find($plan['product']);
// Push data to $plan container
array_push($plans, [
'plan' => $plan,
'product' => $product,
]);
if ($product['active']) {
array_push($plans, [
'plan' => $plan,
'product' => $product,
]);
}
}
return $plans;
@@ -187,10 +189,12 @@ class StripeService
$product = $this->stripe->products()->find($plan['product']);
// Push data to $plan container
array_push($plans, [
'plan' => $plan,
'product' => $product,
]);
if ($product['active']) {
array_push($plans, [
'plan' => $plan,
'product' => $product,
]);
}
}
}
@@ -246,7 +250,7 @@ class StripeService
$plan = $this->stripe->plans()->create([
'id' => Str::slug($plan['name']),
'amount' => $plan['price'],
'currency' => 'USD',
'currency' => config('cashier.currency'),
'interval' => 'month',
'product' => $product['id'],
]);

View File

@@ -80,7 +80,7 @@ return [
|
*/
'locale' => 'sk',
'locale' => 'en',
/*
|--------------------------------------------------------------------------

View File

@@ -92,7 +92,7 @@ class ContentSeeder extends Seeder
]);
$columns->each(function ($content) {
Setting::create($content);
Setting::updateOrCreate($content);
});
}
}

View File

@@ -34,7 +34,7 @@ class PageSeeder extends Seeder
]);
$columns->each(function ($page) {
Page::create($page);
Page::updateOrCreate($page);
});
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -6,10 +6,10 @@
<g id="vuefilemanager-logo-icon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Logo" transform="translate(10.000000, 18.000000)" fill-rule="nonzero">
<g id="folder-solid">
<path d="M70.9598041,9.77909244 L41.5971266,9.77909244 L31.8095674,0 L7.34066939,0 C3.28647886,0 0,3.28363588 0,7.33431933 L0,51.3402353 C0,55.3909188 3.28647886,58.6745546 7.34066939,58.6745546 L70.9598041,58.6745546 C75.0139946,58.6745546 78.3004735,55.3909188 78.3004735,51.3402353 L78.3004735,17.1134118 C78.3004735,13.0627283 75.0139946,9.77909244 70.9598041,9.77909244 Z" id="Path-Copy" fill="#35495D"></path>
<path d="M70.9598041,9.77909244 L41.5971266,9.77909244 L31.8095674,0 L7.34066939,0 C3.28647886,0 0,3.28363588 0,7.33431933 L0,51.3402353 C0,55.3909188 3.28647886,58.6745546 7.34066939,58.6745546 L70.9598041,58.6745546 C75.0139946,58.6745546 78.3004735,55.3909188 78.3004735,51.3402353 L78.3004735,17.1134118 C78.3004735,13.0627283 75.0139946,9.77909244 70.9598041,9.77909244 Z" id="Path-Copy" fill="#1B2539"></path>
<path d="M82.5825307,23.8365378 L53.2198531,23.8365378 L43.4322939,14.0574454 L18.9633959,14.0574454 C14.9092054,14.0574454 11.6227265,17.3410813 11.6227265,21.3917647 L11.6227265,65.3976807 C11.6227265,69.4483642 14.9092054,72.732 18.9633959,72.732 L82.5825307,72.732 C86.6367212,72.732 89.9232,69.4483642 89.9232,65.3976807 L89.9232,31.1708572 C89.9232,27.1201737 86.6367212,23.8365378 82.5825307,23.8365378 Z" id="Path" fill="#41B883"></path>
</g>
<path d="M21.4546176,63.6450096 C21.1213711,63.6450096 20.8456535,63.5339291 20.6274564,63.3117648 C20.4092593,63.0896005 20.3001624,62.8158665 20.3001624,62.4905544 C20.3001624,62.1652424 20.4092593,61.8915083 20.6274564,61.669344 C20.8456535,61.4471797 21.1213711,61.3360992 21.4546176,61.3360992 C21.7799296,61.3360992 22.0516801,61.4471797 22.2698772,61.669344 C22.4880743,61.8915083 22.5971712,62.1652424 22.5971712,62.4905544 C22.5971712,62.8158665 22.4880743,63.0896005 22.2698772,63.3117648 C22.0516801,63.5339291 21.7799296,63.6450096 21.4546176,63.6450096 Z M29.2501656,55.6947408 C29.3374445,55.5043143 29.4604264,55.3614965 29.6191152,55.2662832 C29.777804,55.1710699 29.9523591,55.123464 30.1427856,55.123464 C30.4284254,55.123464 30.6862909,55.2147087 30.9163896,55.3972008 C31.1464884,55.5796929 31.261536,55.8097882 31.261536,56.0874936 C31.261536,56.2223791 31.2258316,56.3612297 31.1544216,56.5040496 L28.0123992,62.9904216 C27.9092515,63.2046515 27.7545322,63.3692886 27.5482368,63.484338 C27.3419414,63.5993874 27.1197804,63.6569112 26.8817472,63.6569112 C26.643714,63.6569112 26.421553,63.5993874 26.2152576,63.484338 C26.0089622,63.3692886 25.8542429,63.2046515 25.7510952,62.9904216 L22.6090728,56.5040496 C22.5455973,56.3770986 22.51386,56.238248 22.51386,56.0874936 C22.51386,55.8177227 22.6328748,55.589611 22.870908,55.4031516 C23.1089412,55.2166923 23.3747409,55.123464 23.6683152,55.123464 C23.8587418,55.123464 24.0352804,55.1710699 24.1979364,55.2662832 C24.3605924,55.3614965 24.485558,55.5043143 24.5728368,55.6947408 L26.917452,60.7648224 L29.2501656,55.6947408 Z M36.1768968,57.5989968 C36.5022088,57.5989968 36.7600743,57.6862743 36.9505008,57.860832 C37.1409274,58.0353897 37.2361392,58.2734193 37.2361392,58.574928 L37.2361392,62.6928816 C37.2361392,62.970587 37.1369602,63.1986987 36.9385992,63.3772236 C36.7402382,63.5557485 36.4823728,63.6450096 36.1649952,63.6450096 C35.8793554,63.6450096 35.6452929,63.56765 35.4628008,63.4129284 C35.2803087,63.2582069 35.1850969,63.0499309 35.1771624,62.7880944 C34.9946703,63.0737343 34.7625914,63.2919281 34.4809188,63.4426824 C34.1992462,63.5934368 33.8759226,63.6688128 33.5109384,63.6688128 C32.7571666,63.6688128 32.197797,63.4605369 31.8328128,63.0439788 C31.4678286,62.6274207 31.2853392,61.9946587 31.2853392,61.1456736 L31.2853392,58.574928 C31.2853392,58.2734193 31.3805511,58.0353897 31.5709776,57.860832 C31.7614042,57.6862743 32.0192696,57.5989968 32.3445816,57.5989968 C32.6698936,57.5989968 32.9277591,57.6862743 33.1181856,57.860832 C33.3086122,58.0353897 33.403824,58.2734193 33.403824,58.574928 L33.403824,61.19328 C33.403824,61.7645597 33.649788,62.0501952 34.1417232,62.0501952 C34.427363,62.0501952 34.6614255,61.9470491 34.8439176,61.7407536 C35.0264097,61.5344582 35.1176544,61.2646913 35.1176544,60.9314448 L35.1176544,58.574928 C35.1176544,58.2734193 35.2128663,58.0353897 35.4032928,57.860832 C35.5937194,57.6862743 35.8515848,57.5989968 36.1768968,57.5989968 Z M43.2345456,61.6931472 C43.4170377,61.6931472 43.5658062,61.7645561 43.6808556,61.907376 C43.795905,62.0501959 43.8534288,62.2366525 43.8534288,62.4667512 C43.8534288,62.7841288 43.6987096,63.0261256 43.3892664,63.1927488 C43.1194955,63.3276343 42.8001391,63.4406984 42.4311876,63.5319444 C42.0622362,63.6231905 41.723044,63.6688128 41.4136008,63.6688128 C40.7629768,63.6688128 40.1956728,63.5458309 39.711672,63.2998632 C39.2276712,63.0538956 38.8547581,62.7008183 38.5929216,62.2406208 C38.3310851,61.7804233 38.2001688,61.2408895 38.2001688,60.6220032 C38.2001688,60.0348547 38.3251344,59.5092059 38.5750692,59.0450412 C38.8250041,58.5808765 39.1741142,58.2198649 39.62241,57.9619956 C40.0707059,57.7041263 40.5765188,57.5751936 41.139864,57.5751936 C41.6873404,57.5751936 42.1673668,57.6942084 42.5799576,57.9322416 C42.9925485,58.1702748 43.3119049,58.5074834 43.5380364,58.9438776 C43.764168,59.3802718 43.877232,59.8920355 43.877232,60.479184 C43.877232,60.6616761 43.8355768,60.8025103 43.7522652,60.9016908 C43.6689536,61.0008713 43.5479552,61.0504608 43.3892664,61.0504608 L40.247244,61.0504608 C40.3027851,61.4313139 40.4257671,61.705048 40.6161936,61.8716712 C40.8066202,62.0382945 41.0882886,62.1216048 41.4612072,62.1216048 C41.6595682,62.1216048 41.8420576,62.0997854 42.0086808,62.056146 C42.1753041,62.0125066 42.3617606,61.9510156 42.568056,61.8716712 C42.6870726,61.8240646 42.8041038,61.7824094 42.9191532,61.7467044 C43.0342026,61.7109994 43.1393323,61.6931472 43.2345456,61.6931472 Z M41.199372,59.0033856 C40.9216666,59.0033856 40.6995057,59.0926467 40.5328824,59.2711716 C40.3662592,59.4496965 40.2670802,59.7095455 40.2353424,60.0507264 L42.1038936,60.0507264 C42.056287,59.3524957 41.7547828,59.0033856 41.199372,59.0033856 Z" id=".Vue" fill="#35495D"></path>
<path d="M21.4546176,63.6450096 C21.1213711,63.6450096 20.8456535,63.5339291 20.6274564,63.3117648 C20.4092593,63.0896005 20.3001624,62.8158665 20.3001624,62.4905544 C20.3001624,62.1652424 20.4092593,61.8915083 20.6274564,61.669344 C20.8456535,61.4471797 21.1213711,61.3360992 21.4546176,61.3360992 C21.7799296,61.3360992 22.0516801,61.4471797 22.2698772,61.669344 C22.4880743,61.8915083 22.5971712,62.1652424 22.5971712,62.4905544 C22.5971712,62.8158665 22.4880743,63.0896005 22.2698772,63.3117648 C22.0516801,63.5339291 21.7799296,63.6450096 21.4546176,63.6450096 Z M29.2501656,55.6947408 C29.3374445,55.5043143 29.4604264,55.3614965 29.6191152,55.2662832 C29.777804,55.1710699 29.9523591,55.123464 30.1427856,55.123464 C30.4284254,55.123464 30.6862909,55.2147087 30.9163896,55.3972008 C31.1464884,55.5796929 31.261536,55.8097882 31.261536,56.0874936 C31.261536,56.2223791 31.2258316,56.3612297 31.1544216,56.5040496 L28.0123992,62.9904216 C27.9092515,63.2046515 27.7545322,63.3692886 27.5482368,63.484338 C27.3419414,63.5993874 27.1197804,63.6569112 26.8817472,63.6569112 C26.643714,63.6569112 26.421553,63.5993874 26.2152576,63.484338 C26.0089622,63.3692886 25.8542429,63.2046515 25.7510952,62.9904216 L22.6090728,56.5040496 C22.5455973,56.3770986 22.51386,56.238248 22.51386,56.0874936 C22.51386,55.8177227 22.6328748,55.589611 22.870908,55.4031516 C23.1089412,55.2166923 23.3747409,55.123464 23.6683152,55.123464 C23.8587418,55.123464 24.0352804,55.1710699 24.1979364,55.2662832 C24.3605924,55.3614965 24.485558,55.5043143 24.5728368,55.6947408 L26.917452,60.7648224 L29.2501656,55.6947408 Z M36.1768968,57.5989968 C36.5022088,57.5989968 36.7600743,57.6862743 36.9505008,57.860832 C37.1409274,58.0353897 37.2361392,58.2734193 37.2361392,58.574928 L37.2361392,62.6928816 C37.2361392,62.970587 37.1369602,63.1986987 36.9385992,63.3772236 C36.7402382,63.5557485 36.4823728,63.6450096 36.1649952,63.6450096 C35.8793554,63.6450096 35.6452929,63.56765 35.4628008,63.4129284 C35.2803087,63.2582069 35.1850969,63.0499309 35.1771624,62.7880944 C34.9946703,63.0737343 34.7625914,63.2919281 34.4809188,63.4426824 C34.1992462,63.5934368 33.8759226,63.6688128 33.5109384,63.6688128 C32.7571666,63.6688128 32.197797,63.4605369 31.8328128,63.0439788 C31.4678286,62.6274207 31.2853392,61.9946587 31.2853392,61.1456736 L31.2853392,58.574928 C31.2853392,58.2734193 31.3805511,58.0353897 31.5709776,57.860832 C31.7614042,57.6862743 32.0192696,57.5989968 32.3445816,57.5989968 C32.6698936,57.5989968 32.9277591,57.6862743 33.1181856,57.860832 C33.3086122,58.0353897 33.403824,58.2734193 33.403824,58.574928 L33.403824,61.19328 C33.403824,61.7645597 33.649788,62.0501952 34.1417232,62.0501952 C34.427363,62.0501952 34.6614255,61.9470491 34.8439176,61.7407536 C35.0264097,61.5344582 35.1176544,61.2646913 35.1176544,60.9314448 L35.1176544,58.574928 C35.1176544,58.2734193 35.2128663,58.0353897 35.4032928,57.860832 C35.5937194,57.6862743 35.8515848,57.5989968 36.1768968,57.5989968 Z M43.2345456,61.6931472 C43.4170377,61.6931472 43.5658062,61.7645561 43.6808556,61.907376 C43.795905,62.0501959 43.8534288,62.2366525 43.8534288,62.4667512 C43.8534288,62.7841288 43.6987096,63.0261256 43.3892664,63.1927488 C43.1194955,63.3276343 42.8001391,63.4406984 42.4311876,63.5319444 C42.0622362,63.6231905 41.723044,63.6688128 41.4136008,63.6688128 C40.7629768,63.6688128 40.1956728,63.5458309 39.711672,63.2998632 C39.2276712,63.0538956 38.8547581,62.7008183 38.5929216,62.2406208 C38.3310851,61.7804233 38.2001688,61.2408895 38.2001688,60.6220032 C38.2001688,60.0348547 38.3251344,59.5092059 38.5750692,59.0450412 C38.8250041,58.5808765 39.1741142,58.2198649 39.62241,57.9619956 C40.0707059,57.7041263 40.5765188,57.5751936 41.139864,57.5751936 C41.6873404,57.5751936 42.1673668,57.6942084 42.5799576,57.9322416 C42.9925485,58.1702748 43.3119049,58.5074834 43.5380364,58.9438776 C43.764168,59.3802718 43.877232,59.8920355 43.877232,60.479184 C43.877232,60.6616761 43.8355768,60.8025103 43.7522652,60.9016908 C43.6689536,61.0008713 43.5479552,61.0504608 43.3892664,61.0504608 L40.247244,61.0504608 C40.3027851,61.4313139 40.4257671,61.705048 40.6161936,61.8716712 C40.8066202,62.0382945 41.0882886,62.1216048 41.4612072,62.1216048 C41.6595682,62.1216048 41.8420576,62.0997854 42.0086808,62.056146 C42.1753041,62.0125066 42.3617606,61.9510156 42.568056,61.8716712 C42.6870726,61.8240646 42.8041038,61.7824094 42.9191532,61.7467044 C43.0342026,61.7109994 43.1393323,61.6931472 43.2345456,61.6931472 Z M41.199372,59.0033856 C40.9216666,59.0033856 40.6995057,59.0926467 40.5328824,59.2711716 C40.3662592,59.4496965 40.2670802,59.7095455 40.2353424,60.0507264 L42.1038936,60.0507264 C42.056287,59.3524957 41.7547828,59.0033856 41.199372,59.0033856 Z" id=".Vue" fill="#1B2539"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

1
public/css/app.css vendored Normal file

File diff suppressed because one or more lines are too long

2
public/js/main.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,223 +1,93 @@
{
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/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",
"/js/main.900973c8fdae1deb912e.hot-update.js": "/js/main.900973c8fdae1deb912e.hot-update.js",
"/js/main.9c02d5878c37b825a3f7.hot-update.js": "/js/main.9c02d5878c37b825a3f7.hot-update.js",
"/js/main.484b9eb38a9b1a091214.hot-update.js": "/js/main.484b9eb38a9b1a091214.hot-update.js",
"/js/main.5c2b59defc71aa8a3472.hot-update.js": "/js/main.5c2b59defc71aa8a3472.hot-update.js",
"/js/main.1a44680d81a8ca81be5e.hot-update.js": "/js/main.1a44680d81a8ca81be5e.hot-update.js",
"/js/main.6a3a4b59af9ffd5d7f98.hot-update.js": "/js/main.6a3a4b59af9ffd5d7f98.hot-update.js",
"/js/main.a2e57a35e0274bf986f9.hot-update.js": "/js/main.a2e57a35e0274bf986f9.hot-update.js",
"/js/main.b010e29071d91defc959.hot-update.js": "/js/main.b010e29071d91defc959.hot-update.js",
"/js/main.3ce47d7ccf2e4488d12f.hot-update.js": "/js/main.3ce47d7ccf2e4488d12f.hot-update.js",
"/js/main.2cd87927a49da0eca20a.hot-update.js": "/js/main.2cd87927a49da0eca20a.hot-update.js",
"/js/main.3da742b1c38aa35a382a.hot-update.js": "/js/main.3da742b1c38aa35a382a.hot-update.js",
"/js/main.fb024d0fb0e14082d363.hot-update.js": "/js/main.fb024d0fb0e14082d363.hot-update.js",
"/js/main.4ff98fd60cc1e0d5a592.hot-update.js": "/js/main.4ff98fd60cc1e0d5a592.hot-update.js",
"/js/main.8fdf63dd356ad93080b1.hot-update.js": "/js/main.8fdf63dd356ad93080b1.hot-update.js",
"/js/main.b5591c59c87fad9cca94.hot-update.js": "/js/main.b5591c59c87fad9cca94.hot-update.js",
"/js/main.08d05327bc7bfbd790c0.hot-update.js": "/js/main.08d05327bc7bfbd790c0.hot-update.js",
"/js/main.7934b8d1da2ae502f1bf.hot-update.js": "/js/main.7934b8d1da2ae502f1bf.hot-update.js",
"/js/main.a6a9a6a295fc2327bc02.hot-update.js": "/js/main.a6a9a6a295fc2327bc02.hot-update.js",
"/js/main.c864056e484e54e7b643.hot-update.js": "/js/main.c864056e484e54e7b643.hot-update.js",
"/js/main.6d59cce872d383922b76.hot-update.js": "/js/main.6d59cce872d383922b76.hot-update.js",
"/js/main.9bce0320a11abbad3bce.hot-update.js": "/js/main.9bce0320a11abbad3bce.hot-update.js",
"/js/main.b5619dc73323576c0045.hot-update.js": "/js/main.b5619dc73323576c0045.hot-update.js",
"/js/main.19c8c40e8db35a850250.hot-update.js": "/js/main.19c8c40e8db35a850250.hot-update.js",
"/js/main.600f6d6180d72ea1d818.hot-update.js": "/js/main.600f6d6180d72ea1d818.hot-update.js",
"/js/main.a31da5ae60dfa2cf29c0.hot-update.js": "/js/main.a31da5ae60dfa2cf29c0.hot-update.js",
"/js/main.961d7f321faabba55c15.hot-update.js": "/js/main.961d7f321faabba55c15.hot-update.js",
"/js/main.ad41cd6115b5ee7ef584.hot-update.js": "/js/main.ad41cd6115b5ee7ef584.hot-update.js",
"/js/main.d84a1de4ce5b926b053c.hot-update.js": "/js/main.d84a1de4ce5b926b053c.hot-update.js",
"/js/main.89caa4f653b4f1ce25f5.hot-update.js": "/js/main.89caa4f653b4f1ce25f5.hot-update.js",
"/js/main.30e0507afe414470d88c.hot-update.js": "/js/main.30e0507afe414470d88c.hot-update.js",
"/js/main.ee5743617cf0d081fb26.hot-update.js": "/js/main.ee5743617cf0d081fb26.hot-update.js",
"/js/main.a4b5b1893a7e1c32f1b3.hot-update.js": "/js/main.a4b5b1893a7e1c32f1b3.hot-update.js",
"/js/main.24492944cd437dffe873.hot-update.js": "/js/main.24492944cd437dffe873.hot-update.js",
"/js/main.54f2b592ab7fa02e6a8b.hot-update.js": "/js/main.54f2b592ab7fa02e6a8b.hot-update.js",
"/js/main.b497bdf060b593fc8959.hot-update.js": "/js/main.b497bdf060b593fc8959.hot-update.js",
"/js/main.bec7b415cb9aedbd0b67.hot-update.js": "/js/main.bec7b415cb9aedbd0b67.hot-update.js",
"/js/main.6403093962e79ddf8901.hot-update.js": "/js/main.6403093962e79ddf8901.hot-update.js",
"/js/main.31c1e7310e5a62790d83.hot-update.js": "/js/main.31c1e7310e5a62790d83.hot-update.js",
"/js/main.3fd718afb0c481e0596a.hot-update.js": "/js/main.3fd718afb0c481e0596a.hot-update.js",
"/js/main.a17121aec9e7917a083f.hot-update.js": "/js/main.a17121aec9e7917a083f.hot-update.js",
"/js/main.fc80135c15c65e513c66.hot-update.js": "/js/main.fc80135c15c65e513c66.hot-update.js",
"/js/main.4ac617261847d252fbea.hot-update.js": "/js/main.4ac617261847d252fbea.hot-update.js",
"/js/main.a22e4185179d0be754aa.hot-update.js": "/js/main.a22e4185179d0be754aa.hot-update.js",
"/js/main.e3e1154efdca38dc206d.hot-update.js": "/js/main.e3e1154efdca38dc206d.hot-update.js",
"/js/main.2424fae6103265a590fe.hot-update.js": "/js/main.2424fae6103265a590fe.hot-update.js",
"/js/main.0d273ece089f84b64f8b.hot-update.js": "/js/main.0d273ece089f84b64f8b.hot-update.js",
"/js/main.d29cc5f3e992aada993a.hot-update.js": "/js/main.d29cc5f3e992aada993a.hot-update.js",
"/js/main.a5ede741aafb4c003659.hot-update.js": "/js/main.a5ede741aafb4c003659.hot-update.js",
"/js/main.cf9b7bb2b7ee80fb9073.hot-update.js": "/js/main.cf9b7bb2b7ee80fb9073.hot-update.js",
"/js/main.803ca40c8fd4bd6b217e.hot-update.js": "/js/main.803ca40c8fd4bd6b217e.hot-update.js",
"/js/main.11bce5213aea38a24836.hot-update.js": "/js/main.11bce5213aea38a24836.hot-update.js",
"/js/main.f11627cd1a4627090b4f.hot-update.js": "/js/main.f11627cd1a4627090b4f.hot-update.js",
"/js/main.1dd5c5dd12975040c0f5.hot-update.js": "/js/main.1dd5c5dd12975040c0f5.hot-update.js",
"/js/main.ad3454a7aa19a51814f5.hot-update.js": "/js/main.ad3454a7aa19a51814f5.hot-update.js",
"/js/main.9ae6092610a06ebb8f24.hot-update.js": "/js/main.9ae6092610a06ebb8f24.hot-update.js",
"/js/main.7934af3ff41800f298c3.hot-update.js": "/js/main.7934af3ff41800f298c3.hot-update.js",
"/js/main.337794316c2fb863f70c.hot-update.js": "/js/main.337794316c2fb863f70c.hot-update.js",
"/js/main.277e8e9d925fb8ca79cf.hot-update.js": "/js/main.277e8e9d925fb8ca79cf.hot-update.js",
"/js/main.2b57e0499c5d07820812.hot-update.js": "/js/main.2b57e0499c5d07820812.hot-update.js",
"/js/main.e0dbd2a3f588969a106b.hot-update.js": "/js/main.e0dbd2a3f588969a106b.hot-update.js",
"/js/main.103e1a04edb53245f4f1.hot-update.js": "/js/main.103e1a04edb53245f4f1.hot-update.js",
"/js/main.bbbb36b9e0969d21281e.hot-update.js": "/js/main.bbbb36b9e0969d21281e.hot-update.js",
"/js/main.feda55ea587760c2d231.hot-update.js": "/js/main.feda55ea587760c2d231.hot-update.js",
"/js/main.8d3606d8d5335db31aff.hot-update.js": "/js/main.8d3606d8d5335db31aff.hot-update.js",
"/js/main.58cbcd8123656aac6d5b.hot-update.js": "/js/main.58cbcd8123656aac6d5b.hot-update.js",
"/js/main.90c4e3b05a72213146cd.hot-update.js": "/js/main.90c4e3b05a72213146cd.hot-update.js",
"/js/main.804506283bc06ffe6acd.hot-update.js": "/js/main.804506283bc06ffe6acd.hot-update.js",
"/js/main.14a86a0b3c5f7b907cf2.hot-update.js": "/js/main.14a86a0b3c5f7b907cf2.hot-update.js",
"/js/main.858f60c2e8f66015c5eb.hot-update.js": "/js/main.858f60c2e8f66015c5eb.hot-update.js",
"/js/main.422421c6ff86cf233266.hot-update.js": "/js/main.422421c6ff86cf233266.hot-update.js",
"/js/main.29580a4fcdc8dcd731ac.hot-update.js": "/js/main.29580a4fcdc8dcd731ac.hot-update.js",
"/js/main.3b4f405a7ea2c82c246f.hot-update.js": "/js/main.3b4f405a7ea2c82c246f.hot-update.js",
"/js/main.2335c31760ef123dfa20.hot-update.js": "/js/main.2335c31760ef123dfa20.hot-update.js",
"/js/main.20f27e839b677741f742.hot-update.js": "/js/main.20f27e839b677741f742.hot-update.js",
"/js/main.850b8d97fa62b94cd330.hot-update.js": "/js/main.850b8d97fa62b94cd330.hot-update.js",
"/js/main.a795578521a6b1906bb8.hot-update.js": "/js/main.a795578521a6b1906bb8.hot-update.js",
"/js/main.5b8e4d1fdb1dd29c7a6c.hot-update.js": "/js/main.5b8e4d1fdb1dd29c7a6c.hot-update.js",
"/js/main.6803dbeae6b983dd318e.hot-update.js": "/js/main.6803dbeae6b983dd318e.hot-update.js",
"/js/main.03eaff4ebaf4d1dd2360.hot-update.js": "/js/main.03eaff4ebaf4d1dd2360.hot-update.js",
"/js/main.7d506e1683ac2193e72d.hot-update.js": "/js/main.7d506e1683ac2193e72d.hot-update.js",
"/js/main.f1e727482e972904c04a.hot-update.js": "/js/main.f1e727482e972904c04a.hot-update.js",
"/js/main.111939c4eab3de32c96f.hot-update.js": "/js/main.111939c4eab3de32c96f.hot-update.js",
"/js/main.2f0cadb1a363fc6a8e11.hot-update.js": "/js/main.2f0cadb1a363fc6a8e11.hot-update.js",
"/js/main.516670314128badfbe09.hot-update.js": "/js/main.516670314128badfbe09.hot-update.js",
"/js/main.5646a0464363571b34d9.hot-update.js": "/js/main.5646a0464363571b34d9.hot-update.js",
"/js/main.21e5cb04d3aa77bf36ac.hot-update.js": "/js/main.21e5cb04d3aa77bf36ac.hot-update.js",
"/js/main.3dce510c80e1a717ecf4.hot-update.js": "/js/main.3dce510c80e1a717ecf4.hot-update.js",
"/js/main.d32c227d8dc052624e15.hot-update.js": "/js/main.d32c227d8dc052624e15.hot-update.js",
"/js/main.4c9fc3515f34e96bf828.hot-update.js": "/js/main.4c9fc3515f34e96bf828.hot-update.js",
"/js/main.937f45c49aeaa67e280b.hot-update.js": "/js/main.937f45c49aeaa67e280b.hot-update.js",
"/js/main.e46867b81adee8249fee.hot-update.js": "/js/main.e46867b81adee8249fee.hot-update.js",
"/js/main.8131cc5de31772e83751.hot-update.js": "/js/main.8131cc5de31772e83751.hot-update.js",
"/js/main.028e2394f07905ab3beb.hot-update.js": "/js/main.028e2394f07905ab3beb.hot-update.js",
"/js/main.4750b981e20dc0485b74.hot-update.js": "/js/main.4750b981e20dc0485b74.hot-update.js",
"/js/main.4dd0cc38708d5af19bf2.hot-update.js": "/js/main.4dd0cc38708d5af19bf2.hot-update.js",
"/js/main.87bcc7919382d37fc1f5.hot-update.js": "/js/main.87bcc7919382d37fc1f5.hot-update.js",
"/js/main.fa895c92ac8dae881f7d.hot-update.js": "/js/main.fa895c92ac8dae881f7d.hot-update.js",
"/js/main.82f7f830b275f3f19bed.hot-update.js": "/js/main.82f7f830b275f3f19bed.hot-update.js",
"/js/main.d05696d9704ef46d4936.hot-update.js": "/js/main.d05696d9704ef46d4936.hot-update.js",
"/js/main.508c024a35ba9c0c12ea.hot-update.js": "/js/main.508c024a35ba9c0c12ea.hot-update.js",
"/js/main.31a8452dea94debec260.hot-update.js": "/js/main.31a8452dea94debec260.hot-update.js",
"/js/main.937b8cae970c37f8704b.hot-update.js": "/js/main.937b8cae970c37f8704b.hot-update.js",
"/js/main.f2a56b60a4ce2b27ae43.hot-update.js": "/js/main.f2a56b60a4ce2b27ae43.hot-update.js",
"/js/main.59e885c12131c7f2e8d2.hot-update.js": "/js/main.59e885c12131c7f2e8d2.hot-update.js",
"/js/main.1a22436c1925672f7fca.hot-update.js": "/js/main.1a22436c1925672f7fca.hot-update.js",
"/js/main.4c1813024db9709cc111.hot-update.js": "/js/main.4c1813024db9709cc111.hot-update.js",
"/js/main.ba274d333e8afccaaab0.hot-update.js": "/js/main.ba274d333e8afccaaab0.hot-update.js",
"/js/main.86cc21e4650e3c88d21d.hot-update.js": "/js/main.86cc21e4650e3c88d21d.hot-update.js"
"/js/main.7ecabe9510c1a5ac339e.hot-update.js": "/js/main.7ecabe9510c1a5ac339e.hot-update.js",
"/js/main.4a2ee4757968947aeec2.hot-update.js": "/js/main.4a2ee4757968947aeec2.hot-update.js",
"/js/main.5ed0a91c52395cbd3f03.hot-update.js": "/js/main.5ed0a91c52395cbd3f03.hot-update.js",
"/js/main.f7543f533bf7f0d25db7.hot-update.js": "/js/main.f7543f533bf7f0d25db7.hot-update.js",
"/js/main.28fbb34d9071f40542fb.hot-update.js": "/js/main.28fbb34d9071f40542fb.hot-update.js",
"/js/main.a70a9f930431dcbd32b8.hot-update.js": "/js/main.a70a9f930431dcbd32b8.hot-update.js",
"/js/main.f1ce8d0a9cf816ef3092.hot-update.js": "/js/main.f1ce8d0a9cf816ef3092.hot-update.js",
"/js/main.dcd919eac5e90d1a8dd9.hot-update.js": "/js/main.dcd919eac5e90d1a8dd9.hot-update.js",
"/js/main.3bc21d7fa47272a52491.hot-update.js": "/js/main.3bc21d7fa47272a52491.hot-update.js",
"/js/main.7fd9f55336bd67e69d67.hot-update.js": "/js/main.7fd9f55336bd67e69d67.hot-update.js",
"/js/main.5512c70dd1eac41ed8e6.hot-update.js": "/js/main.5512c70dd1eac41ed8e6.hot-update.js",
"/js/main.c239f15dbedcdc3092e7.hot-update.js": "/js/main.c239f15dbedcdc3092e7.hot-update.js",
"/js/main.683d2bb5a02e6be342e3.hot-update.js": "/js/main.683d2bb5a02e6be342e3.hot-update.js",
"/js/main.d48cd4129a6d5ad29c42.hot-update.js": "/js/main.d48cd4129a6d5ad29c42.hot-update.js",
"/js/main.0cf87974260344735243.hot-update.js": "/js/main.0cf87974260344735243.hot-update.js",
"/js/main.9e3999c1d091e4684f12.hot-update.js": "/js/main.9e3999c1d091e4684f12.hot-update.js",
"/js/main.9e59b190d0d16090a293.hot-update.js": "/js/main.9e59b190d0d16090a293.hot-update.js",
"/js/main.2ca6d363c3ba3fc80cef.hot-update.js": "/js/main.2ca6d363c3ba3fc80cef.hot-update.js",
"/js/main.abf25701d5c1d71bd921.hot-update.js": "/js/main.abf25701d5c1d71bd921.hot-update.js",
"/js/main.9386d1edf6dc219db31b.hot-update.js": "/js/main.9386d1edf6dc219db31b.hot-update.js",
"/js/main.272d5767128bed611aaa.hot-update.js": "/js/main.272d5767128bed611aaa.hot-update.js",
"/js/main.0c8ba4f13cc60e304fa5.hot-update.js": "/js/main.0c8ba4f13cc60e304fa5.hot-update.js",
"/js/main.3d8c209fef9663d36a1b.hot-update.js": "/js/main.3d8c209fef9663d36a1b.hot-update.js",
"/js/main.02199bf674ffa7ed789d.hot-update.js": "/js/main.02199bf674ffa7ed789d.hot-update.js",
"/js/main.9a6ff0aa0e393877568e.hot-update.js": "/js/main.9a6ff0aa0e393877568e.hot-update.js",
"/js/main.717cbfa7fb995a8bc835.hot-update.js": "/js/main.717cbfa7fb995a8bc835.hot-update.js",
"/js/main.2fa411286145a14e2d6c.hot-update.js": "/js/main.2fa411286145a14e2d6c.hot-update.js",
"/js/main.e50bf350af013ebdf6e5.hot-update.js": "/js/main.e50bf350af013ebdf6e5.hot-update.js",
"/js/main.0e32aaf39050b40ee148.hot-update.js": "/js/main.0e32aaf39050b40ee148.hot-update.js",
"/js/main.6a4a2adacea6534d1104.hot-update.js": "/js/main.6a4a2adacea6534d1104.hot-update.js",
"/js/main.b1e8c8b90237323bfb9c.hot-update.js": "/js/main.b1e8c8b90237323bfb9c.hot-update.js",
"/js/main.73908cc61b90249bb29e.hot-update.js": "/js/main.73908cc61b90249bb29e.hot-update.js",
"/js/main.f75af7553e5f66508a60.hot-update.js": "/js/main.f75af7553e5f66508a60.hot-update.js",
"/js/main.a75b100e049b34f0f23f.hot-update.js": "/js/main.a75b100e049b34f0f23f.hot-update.js",
"/js/main.2183fc8c444c2759861c.hot-update.js": "/js/main.2183fc8c444c2759861c.hot-update.js",
"/js/main.776d0a52f48186ad4a12.hot-update.js": "/js/main.776d0a52f48186ad4a12.hot-update.js",
"/js/main.c2a08187d45a7d383fa6.hot-update.js": "/js/main.c2a08187d45a7d383fa6.hot-update.js",
"/js/main.5d817cba736a5a6c757e.hot-update.js": "/js/main.5d817cba736a5a6c757e.hot-update.js",
"/js/main.6d26715b3ca95fccc640.hot-update.js": "/js/main.6d26715b3ca95fccc640.hot-update.js",
"/js/main.9c0628572c57e78b897f.hot-update.js": "/js/main.9c0628572c57e78b897f.hot-update.js",
"/js/main.ca843191bfa5c047c7c8.hot-update.js": "/js/main.ca843191bfa5c047c7c8.hot-update.js",
"/js/main.e298100e3af049d37bee.hot-update.js": "/js/main.e298100e3af049d37bee.hot-update.js",
"/js/main.b3604d8fc081f479425c.hot-update.js": "/js/main.b3604d8fc081f479425c.hot-update.js",
"/js/main.8a474e89f52b6a5290f3.hot-update.js": "/js/main.8a474e89f52b6a5290f3.hot-update.js",
"/js/main.f365fa7f4508e8fd76b5.hot-update.js": "/js/main.f365fa7f4508e8fd76b5.hot-update.js",
"/js/main.ffe8c51cedf2423613c1.hot-update.js": "/js/main.ffe8c51cedf2423613c1.hot-update.js",
"/js/main.fc49ac64aa3fe49e8136.hot-update.js": "/js/main.fc49ac64aa3fe49e8136.hot-update.js",
"/js/main.e9348cee1119fb14460f.hot-update.js": "/js/main.e9348cee1119fb14460f.hot-update.js",
"/js/main.fc2e1df75310c2eba76c.hot-update.js": "/js/main.fc2e1df75310c2eba76c.hot-update.js",
"/js/main.b69cadf355b98b3a1c45.hot-update.js": "/js/main.b69cadf355b98b3a1c45.hot-update.js",
"/js/main.72f2fd8bc13041587bcf.hot-update.js": "/js/main.72f2fd8bc13041587bcf.hot-update.js",
"/js/main.8364e889e9afc2b595ec.hot-update.js": "/js/main.8364e889e9afc2b595ec.hot-update.js",
"/js/main.36dbecc1200c6138d1ce.hot-update.js": "/js/main.36dbecc1200c6138d1ce.hot-update.js",
"/js/main.d7fe40648b12f33386fa.hot-update.js": "/js/main.d7fe40648b12f33386fa.hot-update.js",
"/js/main.15e469a73a1700023ca5.hot-update.js": "/js/main.15e469a73a1700023ca5.hot-update.js",
"/js/main.3974a66ef8c5e51a9248.hot-update.js": "/js/main.3974a66ef8c5e51a9248.hot-update.js",
"/js/main.69ce02b5c45c995d85b0.hot-update.js": "/js/main.69ce02b5c45c995d85b0.hot-update.js",
"/js/main.3d10b9851bb797af01d9.hot-update.js": "/js/main.3d10b9851bb797af01d9.hot-update.js",
"/js/main.af35669f33d382479e3f.hot-update.js": "/js/main.af35669f33d382479e3f.hot-update.js",
"/js/main.d57a987b01081b2ec4d2.hot-update.js": "/js/main.d57a987b01081b2ec4d2.hot-update.js",
"/js/main.145c0e5afd58a653e8fd.hot-update.js": "/js/main.145c0e5afd58a653e8fd.hot-update.js",
"/js/main.58562ca1c6fe996e6c8a.hot-update.js": "/js/main.58562ca1c6fe996e6c8a.hot-update.js",
"/js/main.0fa839fcc531c334052e.hot-update.js": "/js/main.0fa839fcc531c334052e.hot-update.js",
"/js/main.3a5ca2fb0b2d7e33d6cd.hot-update.js": "/js/main.3a5ca2fb0b2d7e33d6cd.hot-update.js",
"/js/main.e3c7543539958e1392fa.hot-update.js": "/js/main.e3c7543539958e1392fa.hot-update.js",
"/js/main.6ea15ade82c0dc905b6e.hot-update.js": "/js/main.6ea15ade82c0dc905b6e.hot-update.js",
"/js/main.c928663e91fdbfdc31a7.hot-update.js": "/js/main.c928663e91fdbfdc31a7.hot-update.js",
"/js/main.49b1345fd4afebb6368d.hot-update.js": "/js/main.49b1345fd4afebb6368d.hot-update.js",
"/js/main.7c9729936d5043c7624f.hot-update.js": "/js/main.7c9729936d5043c7624f.hot-update.js",
"/js/main.af3878052bf1cbcaa118.hot-update.js": "/js/main.af3878052bf1cbcaa118.hot-update.js",
"/js/main.14c321b625b5559e6947.hot-update.js": "/js/main.14c321b625b5559e6947.hot-update.js",
"/js/main.27bac9f0b3e425c68c55.hot-update.js": "/js/main.27bac9f0b3e425c68c55.hot-update.js",
"/js/main.2ae63106414f683f087e.hot-update.js": "/js/main.2ae63106414f683f087e.hot-update.js",
"/js/main.bdf456fad658f76f4442.hot-update.js": "/js/main.bdf456fad658f76f4442.hot-update.js",
"/js/main.981a69db9c4ecd48206d.hot-update.js": "/js/main.981a69db9c4ecd48206d.hot-update.js",
"/js/main.2d1095792d8f33de9e63.hot-update.js": "/js/main.2d1095792d8f33de9e63.hot-update.js",
"/js/main.d230c68cac9134f382d7.hot-update.js": "/js/main.d230c68cac9134f382d7.hot-update.js",
"/js/main.e355b128f1bdacc554d4.hot-update.js": "/js/main.e355b128f1bdacc554d4.hot-update.js",
"/js/main.f64f98cad7e4e6fdcb1b.hot-update.js": "/js/main.f64f98cad7e4e6fdcb1b.hot-update.js",
"/js/main.131299fe833f60a8b558.hot-update.js": "/js/main.131299fe833f60a8b558.hot-update.js",
"/js/main.022cfaff40f611503319.hot-update.js": "/js/main.022cfaff40f611503319.hot-update.js",
"/js/main.6c6d45124703ba8c4fdf.hot-update.js": "/js/main.6c6d45124703ba8c4fdf.hot-update.js",
"/js/main.003b6ded8fb16ba6a992.hot-update.js": "/js/main.003b6ded8fb16ba6a992.hot-update.js",
"/js/main.3e3340fd02ce28c0a1ee.hot-update.js": "/js/main.3e3340fd02ce28c0a1ee.hot-update.js",
"/js/main.6b3dabcf946ed92e5017.hot-update.js": "/js/main.6b3dabcf946ed92e5017.hot-update.js",
"/js/main.1cd1f59cdfc9a4c6ce3a.hot-update.js": "/js/main.1cd1f59cdfc9a4c6ce3a.hot-update.js",
"/js/main.c33403bc3d43c471d34e.hot-update.js": "/js/main.c33403bc3d43c471d34e.hot-update.js",
"/js/main.3f8cb66167146d51f4b8.hot-update.js": "/js/main.3f8cb66167146d51f4b8.hot-update.js",
"/js/main.f109c44c2c8c6bd471f5.hot-update.js": "/js/main.f109c44c2c8c6bd471f5.hot-update.js"
}

View File

@@ -146,6 +146,58 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>activation</name>
<children>
<folder_node>
<name>stripe</name>
<children>
<concept_node>
<name>button</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>title</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
</children>
</folder_node>
<folder_node>
<name>admin_menu</name>
<children>
@@ -3463,6 +3515,48 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>button_submit</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>button_testing</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>credentials_disclaimer</name>
<definition_loaded>false</definition_loaded>
@@ -3505,6 +3599,216 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_create_acc</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_create_webhook</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_currency</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_currency_plac</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_pub_key</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_pub_key_plac</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_sec_key</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_sec_key_plac</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_setup</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_webhook_key_plac</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>webhook_url</name>
<definition_loaded>false</definition_loaded>
@@ -5201,6 +5505,252 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>notice</name>
<children>
<concept_node>
<name>stripe_activation</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_activation_button</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
<folder_node>
<name>page_contact_us</name>
<children>
<concept_node>
<name>description</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>error_message</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<folder_node>
<name>form</name>
<children>
<concept_node>
<name>email</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>email_plac</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>message</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>message_plac</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>submit_button</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
<concept_node>
<name>success_message</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>title</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
<folder_node>
<name>page_create_password</name>
<children>
@@ -9566,6 +10116,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>stripe_set</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CHS</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
<folder_node>

View File

@@ -126,11 +126,11 @@
// Redirect to database verify code
if ( installation === 'setup-database') {
//this.$router.push({name: 'PurchaseCode'})
this.$router.push({name: 'PurchaseCode'})
// Redirect to starting installation process
} else if ( installation === 'setup-disclaimer' ) {
//this.$router.push({name: 'InstallationDisclaimer'})
this.$router.push({name: 'InstallationDisclaimer'})
}
},
mounted() {

View File

@@ -1,5 +1,5 @@
<template>
<div class="page-wrapper medium pricing" v-if="! isEmpty && index.section_pricing_content === '1'">
<div class="page-wrapper medium pricing" v-if="! isEmpty && index.section_pricing_content === '1' && config.stripe_public_key">
<div id="pricing" class="page-title center">
<h1 class="title" v-html="index.pricing_title"></h1>
</div>
@@ -34,7 +34,7 @@
CloudIcon,
},
computed: {
...mapGetters(['index']),
...mapGetters(['index', 'config']),
},
data() {
return {

View File

@@ -4,6 +4,7 @@
<div class="icon">
<file-icon v-if="icon === 'file'" size="38"></file-icon>
<file-text-icon v-if="icon === 'file-text'" size="38"></file-text-icon>
<settings-icon v-if="icon === 'settings'" size="38"></settings-icon>
</div>
<div class="header">
<h1 class="title">{{ title }}</h1>
@@ -15,12 +16,13 @@
</template>
<script>
import { FileIcon, FileTextIcon } from 'vue-feather-icons'
import { FileIcon, FileTextIcon, SettingsIcon } from 'vue-feather-icons'
export default {
name: 'EmptyPageContent',
props: ['icon','title','description'],
components: {
SettingsIcon,
FileTextIcon,
FileIcon,
}
@@ -41,10 +43,14 @@
.content {
margin: 0 auto;
max-width: 360px;
/deep/ .button-base {
margin: 0 auto;
}
}
.icon {
path, polyline, line {
path, polyline, line, circle {
stroke: $theme;
}
}

View File

@@ -35,6 +35,10 @@
line-height: 1.6;
word-break: break-word;
font-weight: 600;
/deep/ a {
color: $theme;
}
}
b {

View File

@@ -12,7 +12,7 @@
<!--Folder tree-->
<div v-if="! isLoadingTree && navigation">
<ThumbnailItem class="item-thumbnail" :item="pickedItem" info="location"/>
<TreeMenu :depth="1" :nodes="items" v-for="items in navigation" :key="items.unique_id"/>
<TreeMenu :disabled-by-id="pickedItem.unique_id" :depth="1" :nodes="items" v-for="items in navigation" :key="items.unique_id"/>
</div>
</PopupContent>
@@ -127,5 +127,4 @@
.item-thumbnail {
margin-bottom: 20px;
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<!--Folder Icon-->
<div class="folder-item-wrapper">
<div class="folder-item-wrapper" :class="{'is-inactive': disabledById && disabledById === nodes.unique_id}">
<div class="folder-item" :class="{'is-selected': isSelected}" @click="getFolder" :style="indent">
<chevron-right-icon @click.stop="showTree" size="17" class="icon-arrow" :class="{'is-opened': isVisible, 'is-visible': nodes.folders.length !== 0}"></chevron-right-icon>
@@ -9,7 +9,7 @@
<span class="label">{{ nodes.name }}</span>
</div>
<TreeMenu :depth="depth + 1" v-if="isVisible" :nodes="item" v-for="item in nodes.folders" :key="item.unique_id" />
<TreeMenu :disabled-by-id="disabledById" :depth="depth + 1" v-if="isVisible" :nodes="item" v-for="item in nodes.folders" :key="item.unique_id" />
</div>
</template>
@@ -21,7 +21,7 @@
export default {
name: 'TreeMenu',
props: [
'nodes', 'depth'
'nodes', 'depth', 'disabledById'
],
components: {
ChevronRightIcon,
@@ -38,6 +38,7 @@
return {
isVisible: false,
isSelected: false,
isInactive: false
}
},
methods: {
@@ -49,16 +50,18 @@
this.isVisible = ! this.isVisible
}
},
created() {
mounted() {
// Show first location
if (this.depth == 1) this.isVisible = true
if (this.depth == 1)
this.isVisible = true
// Select clicked folder
events.$on('pick-folder', node => {
this.isSelected = false
if (this.nodes.unique_id == node.unique_id) this.isSelected = true
if (this.nodes.unique_id == node.unique_id)
this.isSelected = true
})
// Select clicked folder
@@ -76,6 +79,11 @@
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.is-inactive {
opacity: 0.5;
pointer-events: none;
}
.folder-item {
user-select: none;
display: block;

View File

@@ -80,7 +80,7 @@
left: 0;
right: 0;
bottom: 0;
z-index: 1;
z-index: 2;
width: 100%;
cursor: pointer;
}

View File

@@ -10,7 +10,7 @@ Vue.use(VueI18n);
const i18n = new VueI18n({
locale: config.locale,
messages: Object.assign({
en, sk
en
}),
});

View File

@@ -7,6 +7,12 @@
"share": "Share item",
"upload": "上传文件"
},
"activation": {
"stripe": {
"button": "设置您的Stripe帐户",
"title": "您的Stripe帐户尚未设置"
}
},
"admin_menu": {
"dashboard": "仪表板",
"invoices": "发票",
@@ -216,8 +222,20 @@
},
"payments": {
"allow_payments": "允许订阅付款",
"button_submit": "测试并保存条带",
"button_testing": "测试条连接",
"credentials_disclaimer": "不显示您的Stripe凭据因为这些值是秘密的陌生人不得透露。您可以在 <b>.env</b> 文件中更改Stripe凭据。",
"section_payments": "条纹付款",
"stripe_create_acc": "如果您没有带区帐户,请 <a href=\"https://dashboard.stripe.com/register\" target=\"_blank\">在</a> 这里注册并获取您的可发布密钥,秘密密钥并创建您的网络挂钩。",
"stripe_create_webhook": "",
"stripe_currency": "Stripe Currency",
"stripe_currency_plac": "Select your Stripe currency",
"stripe_pub_key": "Publishable Key",
"stripe_pub_key_plac": "Paste your publishable key",
"stripe_sec_key": "Secret Key",
"stripe_sec_key_plac": "Paste your secret key",
"stripe_setup": "Stripe Setup",
"stripe_webhook_key_plac": "Paste your stripe webhook secret",
"webhook_url": "Stripe webhook URL"
},
"tabs": {
@@ -327,6 +345,23 @@
"nothing_to_preview": "没有任何信息可以预览。",
"nothing_was_found": "没找到任何信息。"
},
"notice": {
"stripe_activation": "您的Stripe帐户尚未设置。要向您的用户收费请 {0}。",
"stripe_activation_button": "设置您的Stripe帐户"
},
"page_contact_us": {
"description": "你有任何问题吗?请与我们联系。",
"error_message": "出问题了,请重试。",
"form": {
"email": "电子邮件",
"email_plac": "输入您的电子邮件",
"message": "信息",
"message_plac": "在这里输入你的消息...",
"submit_button": "发信息"
},
"success_message": "您的消息已成功发送。",
"title": "联系我们"
},
"page_create_password": {
"button_update": "更新密码",
"label_confirm_pass": "确认密码",
@@ -614,7 +649,8 @@
"created_user": "User was created successfully!",
"email_set": "您的电子邮件设置已成功更新",
"plan_created": "您的计划已成功创建!",
"sended_password": "You successfully send user email for reset password!"
"sended_password": "You successfully send user email for reset password!",
"stripe_set": "您的Stripe帐户已成功设置"
},
"types": {
"file": "文件",

View File

@@ -7,6 +7,12 @@
"share": "Share item",
"upload": "Upload file"
},
"activation": {
"stripe": {
"button": "Set up your Stripe account",
"title": "Your Stripe account is not set"
}
},
"admin_menu": {
"dashboard": "Dashboard",
"invoices": "Invoices",
@@ -216,8 +222,20 @@
},
"payments": {
"allow_payments": "Allow Subscription Payments",
"button_submit": "Test and Save Stripe",
"button_testing": "Testing Stripe Connection",
"credentials_disclaimer": "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.",
"section_payments": "Stripe Payments",
"stripe_create_acc": "If you dont have stripe account, please <a href=\"https://dashboard.stripe.com/register\" target=\"_blank\">register here</a> and get your Publishable Key, Secret Key and create your webhook.",
"stripe_create_webhook": "You have to create webhook endpoint in your Stripe Dashboard. You can find it in <b>Dashboard -> Developers -> Webhooks -> Add Endpoint</b>. In Endpoint URL please copy and paste url bellow. Make sure, this url is your public domain, not localhost. In events section, please click on <b>receive all events</b>. That's all.",
"stripe_currency": "Stripe Currency",
"stripe_currency_plac": "Select your Stripe currency",
"stripe_pub_key": "Publishable Key",
"stripe_pub_key_plac": "Paste your publishable key",
"stripe_sec_key": "Secret Key",
"stripe_sec_key_plac": "Paste your secret key",
"stripe_setup": "Stripe Setup",
"stripe_webhook_key_plac": "Paste your stripe webhook secret",
"webhook_url": "Stripe webhook URL"
},
"tabs": {
@@ -327,6 +345,23 @@
"nothing_to_preview": "There is nothing to preview.",
"nothing_was_found": "Nothing was found."
},
"notice": {
"stripe_activation": "Your Stripe account is not set. To charging your users please {0}.",
"stripe_activation_button": "set up your Stripe account"
},
"page_contact_us": {
"description": "Do you have any questions? Get in touch with us.",
"error_message": "Something went wrong, please try it again.",
"form": {
"email": "Email",
"email_plac": "Type your email",
"message": "Message",
"message_plac": "Type your message here...",
"submit_button": "Send Message"
},
"success_message": "Your message was send successfully.",
"title": "Contact Us"
},
"page_create_password": {
"button_update": "Update Password",
"label_confirm_pass": "Confirm password",
@@ -614,7 +649,8 @@
"created_user": "User was created successfully!",
"email_set": "Your email settings was updated successfully",
"plan_created": "Your plan was successfully created!",
"sended_password": "You successfully send user email for reset password!"
"sended_password": "You successfully send user email for reset password!",
"stripe_set": "Your Stripe account was successfully set!"
},
"types": {
"file": "File",

View File

@@ -7,6 +7,12 @@
"share": "Zdieľať položku",
"upload": "Nahrať súbory"
},
"activation": {
"stripe": {
"button": "Nastaviť účet Stripe",
"title": "Váš účet Stripe nie je nastavený"
}
},
"admin_menu": {
"dashboard": "Prehľad",
"invoices": "Faktúry",
@@ -216,9 +222,21 @@
},
"payments": {
"allow_payments": "Povoliť platby za plány",
"button_submit": "Otestovať a uložiť Stripe",
"button_testing": "Testovanie Stripe pripojenia",
"credentials_disclaimer": "Vaše poverenia v službe Stripe sa nezobrazujú, pretože tieto hodnoty sú tajné a nesmie ich odhaliť cudzinec. Svoje poverenia v službe Stripe môžete zmeniť v súbore <b>.env</b> aplikácie.",
"section_payments": "Stripe platby",
"webhook_url": "Stripe webhook URL"
"stripe_create_acc": "Ak nemáte účet Stripe, <a href=\"https://dashboard.stripe.com/register\" target=\"_blank\">zaregistrujte sa tu</a> a získajte svoj publikovateľný kľúč, tajný kľúč a vytvorte Stripe webhook.",
"stripe_create_webhook": "",
"stripe_currency": "Stripe Mena",
"stripe_currency_plac": "Vyberte Stripe menu",
"stripe_pub_key": "Verejný kľúč",
"stripe_pub_key_plac": "Vložte Váš verejný kľúč",
"stripe_sec_key": "Tajný kľúč",
"stripe_sec_key_plac": "Vložte Váš tajný kľúč",
"stripe_setup": "Stripe nastavenia",
"stripe_webhook_key_plac": "Vložte Váš Stripe webhook tajný kľúč",
"webhook_url": "Stripe webhook URL adresa"
},
"tabs": {
"appearance": "Vzhľad",
@@ -327,6 +345,23 @@
"nothing_to_preview": "Tu nie je nič pre zobrazenie.",
"nothing_was_found": "Nič sa nenašlo."
},
"notice": {
"stripe_activation": "Váš účet Stripe nie je nastavený. Pre spoplatňovanie používateľov prosím {0}.",
"stripe_activation_button": "nastavte účet Stripe"
},
"page_contact_us": {
"description": "Máte nejaké otázky? Spojte sa s nami.",
"error_message": "Niečo sa pokazilo, skúste to znova.",
"form": {
"email": "E-mail",
"email_plac": "Zadajte svoj e-mail",
"message": "Správa",
"message_plac": "Sem napíšte správu...",
"submit_button": "Odoslať správu"
},
"success_message": "Vaša správa bola úspešne odoslaná.",
"title": "Kontaktujte nás"
},
"page_create_password": {
"button_update": "Aktualizovať heslo",
"label_confirm_pass": "Potvrďte nové heslo",
@@ -614,7 +649,8 @@
"created_user": "Úspešne ste vytvorili uživateľa!",
"email_set": "Vaše nastavenia e-mailu boli úspešne aktualizované",
"plan_created": "Váš plán bol úspešne vytvorený!",
"sended_password": "Úspešne ste odoslali email uživateľovi pre reset hesla!"
"sended_password": "Úspešne ste odoslali email uživateľovi pre reset hesla!",
"stripe_set": "Váš účet Stripe bol úspešne nastavený!"
},
"types": {
"file": "Súbor",

View File

@@ -48,6 +48,12 @@ const mutations = {
state.authorized = data.authCookie
state.homeDirectory = data.rootDirectory
},
SET_SAAS(state, data) {
state.config.isSaaS = data
},
SET_STRIPE_PUBLIC_KEY(state, data) {
state.config.stripe_public_key = data
},
FILE_INFO_TOGGLE(state, isVisible) {
state.fileInfoPanelVisible = isVisible

View File

@@ -18,7 +18,7 @@
</div>
</router-link>
<router-link replace :to="{name: 'AppIndex'}" class="menu-list-item link">
<router-link v-if="config.isSaaS" replace :to="{name: 'AppIndex'}" class="menu-list-item link">
<div class="icon">
<book-icon size="17"></book-icon>
</div>

View File

@@ -1,8 +1,8 @@
<template>
<PageTab :is-loading="isLoading" class="form-fixed-width">
<!--Personal Information-->
<PageTabGroup>
<!--Stripe Information-->
<PageTabGroup v-if="config.stripe_public_key">
<div class="form block-form">
<FormLabel>{{ $t('admin_settings.payments.section_payments') }}</FormLabel>
<InfoBox>
@@ -27,6 +27,71 @@
</div>
</div>
</PageTabGroup>
<!--Stripe Set up-->
<PageTabGroup v-if="! config.stripe_public_key">
<ValidationObserver @submit.prevent="stripeCredentialsSubmit" ref="stripeCredentials" v-slot="{ invalid }" tag="form" class="form block-form">
<FormLabel>{{ $t('admin_settings.payments.stripe_setup') }}</FormLabel>
<InfoBox>
<p v-html="$t('admin_settings.payments.stripe_create_acc')"></p>
</InfoBox>
<div class="block-wrapper">
<label>{{ $t('admin_settings.payments.stripe_currency') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Currency" rules="required" v-slot="{ errors }">
<SelectInput v-model="stripeCredentials.currency" :options="currencyList" :placeholder="$t('admin_settings.payments.stripe_currency_plac')" :isError="errors[0]"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>{{ $t('admin_settings.payments.stripe_pub_key') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Publishable Key" rules="required" v-slot="{ errors }">
<input v-model="stripeCredentials.key" :placeholder="$t('admin_settings.payments.stripe_pub_key_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>{{ $t('admin_settings.payments.stripe_sec_key') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Secret Key" rules="required" v-slot="{ errors }">
<input v-model="stripeCredentials.secret" :placeholder="$t('admin_settings.payments.stripe_sec_key_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>Webhook URL:</label>
<InfoBox>
<p v-html="$t('admin_settings.payments.stripe_create_webhook')"></p>
</InfoBox>
<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>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Webhook Secret:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Webhook Secret" rules="required" v-slot="{ errors }">
<input v-model="stripeCredentials.webhookSecret" :placeholder="$t('admin_settings.payments.stripe_webhook_key_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<InfoBox v-if="isError" type="error" style="margin-bottom: -20px">
<p>{{ errorMessage }}</p>
</InfoBox>
<ButtonBase :loading="isLoading" :disabled="isLoading" type="submit"
button-style="theme" class="submit-button">
{{ submitButtonText }}
</ButtonBase>
</ValidationObserver>
</PageTabGroup>
</PageTab>
</template>
@@ -44,6 +109,7 @@
import InfoBox from '@/components/Others/Forms/InfoBox'
import {required} from 'vee-validate/dist/rules'
import {mapGetters} from 'vuex'
import {events} from "@/bus"
import axios from 'axios'
export default {
@@ -67,17 +133,610 @@
...mapGetters(['config']),
stripeWebhookEndpoint() {
return this.config.host + '/stripe/webhook'
},
submitButtonText() {
return this.isLoading ? this.$t('admin_settings.payments.button_testing') : this.$t('admin_settings.payments.button_submit')
}
},
data() {
return {
isLoading: true,
isError: false,
errorMessage: '',
payments: {
status: undefined,
status: 1,
configured: undefined,
},
stripeCredentials: {
key: '',
secret: '',
webhookSecret: '',
currency: '',
},
currencyList: [
{
label: 'USD - United States Dollar',
value: 'USD',
},
{
label: 'EUR - Euro',
value: 'EUR',
},
{
label: 'GBP - British Pound',
value: 'GBP',
},
{
label: 'AFN - Afghan Afghani',
value: 'AFN',
},
{
label: 'ALL - Albanian Lek',
value: 'ALL',
},
{
label: 'DZD - Algerian Dinar',
value: 'DZD',
},
{
label: 'AOA - Angolan Kwanza',
value: 'AOA',
},
{
label: 'ARS - Argentine Peso',
value: 'ARS',
},
{
label: 'AMD - Armenian Dram',
value: 'AMD',
},
{
label: 'AWG - Aruban Florin',
value: 'AWG',
},
{
label: 'AUD - Australian Dollar',
value: 'AUD',
},
{
label: 'AZN - Azerbaijani Manat',
value: 'AZN',
},
{
label: 'BDT - Bangladeshi Taka',
value: 'BDT',
},
{
label: 'BBD - Barbadian Dollar',
value: 'BBD',
},
{
label: 'BZD - Belize Dollar',
value: 'BZD',
},
{
label: 'BMD - Bermudian Dollar',
value: 'BMD',
},
{
label: 'BOB - Bolivian Boliviano',
value: 'BOB',
},
{
label: 'BAM - Bosnia & Herzegovina Convertible Mark',
value: 'BAM',
},
{
label: 'BWP - Botswana Pula',
value: 'BWP',
},
{
label: 'BRL - Brazilian Real',
value: 'BRL',
},
{
label: 'BND - Brunei Dollar',
value: 'BND',
},
{
label: 'BGN - Bulgarian Lev',
value: 'BGN',
},
{
label: 'BIF - Burundian Franc',
value: 'BIF',
},
{
label: 'KHR - Cambodian Riel',
value: 'KHR',
},
{
label: 'CAD - Canadian Dollar',
value: 'CAD',
},
{
label: 'CVE - Cape Verdean Escudo',
value: 'CVE',
},
{
label: 'KYD - Cayman Islands Dollar',
value: 'KYD',
},
{
label: 'XAF - Central African Cfa Franc',
value: 'XAF',
},
{
label: 'XPF - Cfp Franc',
value: 'XPF',
},
{
label: 'CLP - Chilean Peso',
value: 'CLP',
},
{
label: 'CNY - Chinese Renminbi Yuan',
value: 'CNY',
},
{
label: 'COP - Colombian Peso',
value: 'COP',
},
{
label: 'KMF - Comorian Franc',
value: 'KMF',
},
{
label: 'CDF - Congolese Franc',
value: 'CDF',
},
{
label: 'CRC - Costa Rican Colón',
value: 'CRC',
},
{
label: 'HRK - Croatian Kuna',
value: 'HRK',
},
{
label: 'CZK - Czech Koruna',
value: 'CZK',
},
{
label: 'DKK - Danish Krone',
value: 'DKK',
},
{
label: 'DJF - Djiboutian Franc',
value: 'DJF',
},
{
label: 'DOP - Dominican Peso',
value: 'DOP',
},
{
label: 'XCD - East Caribbean Dollar',
value: 'XCD',
},
{
label: 'EGP - Egyptian Pound',
value: 'EGP',
},
{
label: 'ETB - Ethiopian Birr',
value: 'ETB',
},
{
label: 'FKP - Falkland Islands Pound',
value: 'FKP',
},
{
label: 'FJD - Fijian Dollar',
value: 'FJD',
},
{
label: 'GMD - Gambian Dalasi',
value: 'GMD',
},
{
label: 'GEL - Georgian Lari',
value: 'GEL',
},
{
label: 'GIP - Gibraltar Pound',
value: 'GIP',
},
{
label: 'GTQ - Guatemalan Quetzal',
value: 'GTQ',
},
{
label: 'GNF - Guinean Franc',
value: 'GNF',
},
{
label: 'GYD - Guyanese Dollar',
value: 'GYD',
},
{
label: 'HTG - Haitian Gourde',
value: 'HTG',
},
{
label: 'HNL - Honduran Lempira',
value: 'HNL',
},
{
label: 'HKD - Hong Kong Dollar',
value: 'HKD',
},
{
label: 'HUF - Hungarian Forint',
value: 'HUF',
},
{
label: 'ISK - Icelandic Króna',
value: 'ISK',
},
{
label: 'INR - Indian Rupee',
value: 'INR',
},
{
label: 'IDR - Indonesian Rupiah',
value: 'IDR',
},
{
label: 'ILS - Israeli New Sheqel',
value: 'ILS',
},
{
label: 'JMD - Jamaican Dollar',
value: 'JMD',
},
{
label: 'JPY - Japanese Yen',
value: 'JPY',
},
{
label: 'KZT - Kazakhstani Tenge',
value: 'KZT',
},
{
label: 'KES - Kenyan Shilling',
value: 'KES',
},
{
label: 'KGS - Kyrgyzstani Som',
value: 'KGS',
},
{
label: 'LAK - Lao Kip',
value: 'LAK',
},
{
label: 'LBP - Lebanese Pound',
value: 'LBP',
},
{
label: 'LSL - Lesotho Loti',
value: 'LSL',
},
{
label: 'LRD - Liberian Dollar',
value: 'LRD',
},
{
label: 'MOP - Macanese Pataca',
value: 'MOP',
},
{
label: 'MKD - Macedonian Denar',
value: 'MKD',
},
{
label: 'MGA - Malagasy Ariary',
value: 'MGA',
},
{
label: 'MWK - Malawian Kwacha',
value: 'MWK',
},
{
label: 'MYR - Malaysian Ringgit',
value: 'MYR',
},
{
label: 'MVR - Maldivian Rufiyaa',
value: 'MVR',
},
{
label: 'MRO - Mauritanian Ouguiya',
value: 'MRO',
},
{
label: 'MUR - Mauritian Rupee',
value: 'MUR',
},
{
label: 'MXN - Mexican Peso',
value: 'MXN',
},
{
label: 'MDL - Moldovan Leu',
value: 'MDL',
},
{
label: 'MNT - Mongolian Tögrög',
value: 'MNT',
},
{
label: 'MAD - Moroccan Dirham',
value: 'MAD',
},
{
label: 'MZN - Mozambican Metical',
value: 'MZN',
},
{
label: 'MMK - Myanmar Kyat',
value: 'MMK',
},
{
label: 'NAD - Namibian Dollar',
value: 'NAD',
},
{
label: 'NPR - Nepalese Rupee',
value: 'NPR',
},
{
label: 'ANG - Netherlands Antillean Gulden',
value: 'ANG',
},
{
label: 'TWD - New Taiwan Dollar',
value: 'TWD',
},
{
label: 'NZD - New Zealand Dollar',
value: 'NZD',
},
{
label: 'NIO - Nicaraguan Córdoba',
value: 'NIO',
},
{
label: 'NGN - Nigerian Naira',
value: 'NGN',
},
{
label: 'NOK - Norwegian Krone',
value: 'NOK',
},
{
label: 'PKR - Pakistani Rupee',
value: 'PKR',
},
{
label: 'PAB - Panamanian Balboa',
value: 'PAB',
},
{
label: 'PGK - Papua New Guinean Kina',
value: 'PGK',
},
{
label: 'PYG - Paraguayan Guaraní',
value: 'PYG',
},
{
label: 'PEN - Peruvian Nuevo Sol',
value: 'PEN',
},
{
label: 'PHP - Philippine Peso',
value: 'PHP',
},
{
label: 'PLN - Polish Złoty',
value: 'PLN',
},
{
label: 'QAR - Qatari Riyal',
value: 'QAR',
},
{
label: 'RON - Romanian Leu',
value: 'RON',
},
{
label: 'RUB - Russian Ruble',
value: 'RUB',
},
{
label: 'RWF - Rwandan Franc',
value: 'RWF',
},
{
label: 'STD - São Tomé and Príncipe Dobra',
value: 'STD',
},
{
label: 'SHP - Saint Helenian Pound',
value: 'SHP',
},
{
label: 'SVC - Salvadoran Colón',
value: 'SVC',
},
{
label: 'WST - Samoan Tala',
value: 'WST',
},
{
label: 'SAR - Saudi Riyal',
value: 'SAR',
},
{
label: 'RSD - Serbian Dinar',
value: 'RSD',
},
{
label: 'SCR - Seychellois Rupee',
value: 'SCR',
},
{
label: 'SLL - Sierra Leonean Leone',
value: 'SLL',
},
{
label: 'SGD - Singapore Dollar',
value: 'SGD',
},
{
label: 'SBD - Solomon Islands Dollar',
value: 'SBD',
},
{
label: 'SOS - Somali Shilling',
value: 'SOS',
},
{
label: 'ZAR - South African Rand',
value: 'ZAR',
},
{
label: 'KRW - South Korean Won',
value: 'KRW',
},
{
label: 'LKR - Sri Lankan Rupee',
value: 'LKR',
},
{
label: 'SRD - Surinamese Dollar',
value: 'SRD',
},
{
label: 'SZL - Swazi Lilangeni',
value: 'SZL',
},
{
label: 'SEK - Swedish Krona',
value: 'SEK',
},
{
label: 'CHF - Swiss Franc',
value: 'CHF',
},
{
label: 'TJS - Tajikistani Somoni',
value: 'TJS',
},
{
label: 'TZS - Tanzanian Shilling',
value: 'TZS',
},
{
label: 'THB - Thai Baht',
value: 'THB',
},
{
label: 'TOP - Tongan Paʻanga',
value: 'TOP',
},
{
label: 'TTD - Trinidad and Tobago Dollar',
value: 'TTD',
},
{
label: 'TRY - Turkish Lira',
value: 'TRY',
},
{
label: 'UGX - Ugandan Shilling',
value: 'UGX',
},
{
label: 'UAH - Ukrainian Hryvnia',
value: 'UAH',
},
{
label: 'AED - United Arab Emirates Dirham',
value: 'AED',
},
{
label: 'UYU - Uruguayan Peso',
value: 'UYU',
},
{
label: 'UZS - Uzbekistani Som',
value: 'UZS',
},
{
label: 'VUV - Vanuatu Vatu',
value: 'VUV',
},
{
label: 'VND - Vietnamese Đồng',
value: 'VND',
},
{
label: 'XOF - West African Cfa Franc',
value: 'XOF',
},
{
label: 'YER - Yemeni Rial',
value: 'YER',
},
{
label: 'ZMW - Zambian Kwacha',
value: 'ZMW',
},
],
}
},
methods: {
async stripeCredentialsSubmit() {
// Validate fields
const isValid = await this.$refs.stripeCredentials.validate();
if (!isValid) return;
// Start loading
this.isLoading = true
// Send request to get verify account
axios
.post('/api/setup/stripe-credentials', this.stripeCredentials)
.then(() => {
// End loading
this.isLoading = false
// Store Stripe Public
this.$store.commit('SET_STRIPE_PUBLIC_KEY', this.stripeCredentials.key)
// Show toaster
events.$emit('toaster', {
type: 'success',
message: this.$t('toaster.stripe_set'),
})
})
.catch(error => {
if (error.response.status = 401) {
this.isError = true
this.errorMessage = error.response.data.message
}
// End loading
this.isLoading = false
})
},
},
mounted() {
axios.get('/api/settings', {
params: {

View File

@@ -31,7 +31,15 @@
</a>
</div>
</div>
<div class="widgets-total">
<!--Stripe notice-->
<InfoBox v-if="! config.stripe_public_key" class="dashboard-notice">
<i18n path="notice.stripe_activation">
<router-link :to="{name: 'AppPayments'}">{{ $t('notice.stripe_activation_button') }}</router-link>
</i18n>
</InfoBox>
<div class="widgets-total" :class="{'widgets-coll-3': config.isSaaS, 'widgets-coll-2': ! config.isSaaS}">
<WidgetTotals
class="widget"
icon="users"
@@ -82,6 +90,7 @@
import SectionTitle from '@/components/Others/SectionTitle'
import WidgetTotals from '@/components/Admin/WidgetTotals'
import ButtonBase from '@/components/FilesView/ButtonBase'
import InfoBox from '@/components/Others/Forms/InfoBox'
import PageHeader from '@/components/Others/PageHeader'
import ColorLabel from '@/components/Others/ColorLabel'
import Spinner from '@/components/FilesView/Spinner'
@@ -104,6 +113,7 @@
PageHeader,
ButtonBase,
ColorLabel,
InfoBox,
Spinner,
},
computed: {
@@ -136,11 +146,22 @@
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.dashboard-notice {
margin-bottom: 20px;
}
.widgets-total {
display: flex;
flex: 0 0 33%;
display: grid;
margin: 0 -20px 20px;
&.widgets-coll-2 {
grid-template-columns: repeat(auto-fill, 50%);
}
&.widgets-coll-3 {
grid-template-columns: repeat(auto-fill, 33%);
}
.widget {
width: 100%;
padding: 20px;
@@ -212,10 +233,22 @@
}
}
@media only screen and (max-width: 1024px) {
.widgets-total {
&.widgets-coll-2, &.widgets-coll-3 {
grid-template-columns: repeat(auto-fill, 50%);
}
}
}
@media only screen and (max-width: 960px) {
.widgets-total {
display: block;
&.widgets-coll-2, &.widgets-coll-3 {
grid-template-columns: repeat(auto-fill, 100%);
}
}
.became-backer {

View File

@@ -1,5 +1,7 @@
<template>
<div id="single-page">
<!--Page Content-->
<div id="page-content" v-if="! isLoading && invoices.length > 0">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
@@ -52,13 +54,28 @@
</DatatableWrapper>
</div>
</div>
<!--Empty invoices-->
<EmptyPageContent
v-if="! isLoading && invoices.length === 0"
v-if="! isLoading && invoices.length === 0 && config.stripe_public_key"
icon="file-text"
:title="$t('admin_page_invoices.empty.title')"
:description="$t('admin_page_invoices.empty.description')"
>
</EmptyPageContent>
<!--Stripe Not Configured-->
<EmptyPageContent
v-if="! config.stripe_public_key"
icon="settings"
:title="$t('activation.stripe.title')"
>
<router-link :to="{name: 'AppPayments'}">
<ButtonBase button-style="theme">{{ $t('activation.stripe.button') }}</ButtonBase>
</router-link>
</EmptyPageContent>
<!--Spinner-->
<div id="loader" v-if="isLoading">
<Spinner></Spinner>
</div>
@@ -78,6 +95,7 @@
import ColorLabel from '@/components/Others/ColorLabel'
import Spinner from '@/components/FilesView/Spinner'
import {ExternalLinkIcon} from "vue-feather-icons";
import { mapGetters } from 'vuex'
import axios from 'axios'
export default {
@@ -96,10 +114,13 @@
ColorLabel,
Spinner,
},
computed: {
...mapGetters(['config']),
},
data() {
return {
isLoading: true,
invoices: undefined,
invoices: [],
columns: [
{
label: this.$t('admin_page_invoices.table.number'),
@@ -134,11 +155,15 @@
}
},
created() {
axios.get('/api/invoices')
.then(response => {
this.invoices = response.data.data
this.isLoading = false
})
if (this.config.stripe_public_key) {
axios.get('/api/invoices')
.then(response => {
this.invoices = response.data.data
this.isLoading = false
})
} else {
this.isLoading = false
}
}
}
</script>

View File

@@ -1,5 +1,7 @@
<template>
<div id="single-page">
<!--Page Content-->
<div id="page-content" v-if="! isLoading && plans.length > 0">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
@@ -62,17 +64,30 @@
</div>
</div>
<!--Empty plans-->
<EmptyPageContent
v-if="! isLoading && plans.length === 0"
v-if="! isLoading && plans.length === 0 && config.stripe_public_key"
icon="file"
:title="$t('admin_page_plans.empty.title')"
:description="$t('admin_page_plans.empty.description')"
>
<router-link :to="{name: 'PlanCreate'}">
<router-link :to="{name: 'PlanCreate'}" tag="p">
<ButtonBase button-style="theme">{{ $t('admin_page_plans.empty.button') }}</ButtonBase>
</router-link>
</EmptyPageContent>
<!--Stripe Not Configured-->
<EmptyPageContent
v-if="! config.stripe_public_key"
icon="settings"
:title="$t('activation.stripe.title')"
>
<router-link :to="{name: 'AppPayments'}">
<ButtonBase button-style="theme">{{ $t('activation.stripe.button') }}</ButtonBase>
</router-link>
</EmptyPageContent>
<!--Spinner-->
<div id="loader" v-if="isLoading">
<Spinner></Spinner>
</div>
@@ -91,6 +106,7 @@
import PageHeader from '@/components/Others/PageHeader'
import ColorLabel from '@/components/Others/ColorLabel'
import Spinner from '@/components/FilesView/Spinner'
import { mapGetters } from 'vuex'
import axios from 'axios'
export default {
@@ -112,7 +128,7 @@
data() {
return {
isLoading: true,
plans: undefined,
plans: [],
columns: [
{
label: this.$t('admin_page_plans.table.status'),
@@ -146,17 +162,24 @@
],
}
},
computed: {
...mapGetters(['config']),
},
methods: {
changeStatus(val, id) {
this.$updateText('/plans/' + id + '/update', 'is_active', val)
}
},
created() {
axios.get('/api/plans')
.then(response => {
this.plans = response.data.data
this.isLoading = false
})
if (this.config.stripe_public_key) {
axios.get('/api/plans')
.then(response => {
this.plans = response.data.data
this.isLoading = false
})
} else {
this.isLoading = false
}
}
}
</script>

View File

@@ -59,7 +59,7 @@
</PageTabGroup>
<!--Billing Information-->
<PageTabGroup>
<PageTabGroup v-if="config.isSaaS">
<div class="form block-form">
<FormLabel>{{ $t('user_settings.title_billing') }}</FormLabel>
@@ -167,7 +167,7 @@
required,
},
computed: {
...mapGetters(['roles']),
...mapGetters(['roles', 'config']),
},
data() {
return {

View File

@@ -47,7 +47,6 @@
<script>
import FormLabel from '@/components/Others/Forms/FormLabel'
import InfoBox from '@/components/Others/Forms/InfoBox'
import PageTabGroup from '@/components/Others/Layout/PageTabGroup'
import PageTab from '@/components/Others/Layout/PageTab'
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'

View File

@@ -54,8 +54,8 @@
<div>
<i18n path="page_registration.agreement" tag="p" class="legal-agreement">
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms-of-service'}}" target="_blank">Terms of Service</router-link>
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy-policy'}}" target="_blank">Privacy Policy</router-link>
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms-of-service'}}" target="_blank">{{ termsOfService.title }}</router-link>
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy-policy'}}" target="_blank">{{ privacyPolicy.title }}</router-link>
</i18n>
<AuthButton icon="chevron-right" :text="$t('page_registration.button_create_account')" :loading="isLoading" :disabled="isLoading"/>
</div>
@@ -93,6 +93,16 @@
},
computed: {
...mapGetters(['config']),
privacyPolicy() {
return this.config.legal.find(legal => {
return legal.slug === 'privacy-policy'
})
},
termsOfService() {
return this.config.legal.find(legal => {
return legal.slug === 'terms-of-service'
})
},
},
data() {
return {

View File

@@ -10,42 +10,42 @@
<!--Headline-->
<PageTitle
class="headline"
title="Contact Us"
description="Do you have any questions? Get in touch with us."
:title="$t('page_contact_us.title')"
:description="$t('page_contact_us.description')"
></PageTitle>
<ValidationObserver v-if="! isSuccess" @submit.prevent="contactForm" ref="contactForm" v-slot="{ invalid }" tag="form"
class="form block-form">
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<label>{{ $t('page_contact_us.form.email') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
v-slot="{ errors }">
<input v-model="contact.email" :placeholder="$t('page_registration.placeholder_email')" type="email"
<input v-model="contact.email" :placeholder="$t('page_contact_us.form.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>Message:</label>
<label>{{ $t('page_contact_us.form.message') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Message" rules="required"
v-slot="{ errors }">
<textarea v-model="contact.message" placeholder="Type your message here..." rows="6" :class="{'is-error': errors[0]}"></textarea>
<textarea v-model="contact.message" :placeholder="$t('page_contact_us.form.message_plac')" rows="6" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<InfoBox v-if="isError">
<p>Something went wrong, please try it again.</p>
<p>{{ $t('page_contact_us.error_message') }}</p>
</InfoBox>
<div>
<AuthButton class="submit-button" icon="chevron-right" text="Send Message" :loading="isLoading" :disabled="isLoading"/>
<AuthButton class="submit-button" icon="chevron-right" :text="$t('page_contact_us.form.submit_button')" :loading="isLoading" :disabled="isLoading"/>
</div>
</ValidationObserver>
<InfoBox v-if="isSuccess">
<p>Your message was send successfully.</p>
<p>{{ $t('page_contact_us.success_message') }}</p>
</InfoBox>
</div>
@@ -106,18 +106,14 @@
axios
.post('/api/contact', this.contact)
.then(() => {
// End loading
this.isLoading = false
this.isSuccess = true
})
.catch(error => {
.catch(() => {
this.isError = true
})
.finally(() => {
// End loading
this.isLoading = false
this.isError = true
})
}
},

View File

@@ -95,11 +95,11 @@
return {
isLoading: false,
admin: {
name: '',
email: '',
name: 'Jane Doe',
email: 'howdy@hi5ve.digital',
avatar: undefined,
password: '',
password_confirmation: '',
password: 'vuefilemanager',
password_confirmation: 'vuefilemanager',
},
}
},
@@ -143,6 +143,10 @@
// Set login state
this.$store.commit('SET_AUTHORIZED', true)
if (localStorage.getItem('license') === 'Extended') {
this.$store.commit('SET_SAAS', true)
}
// Go to files page
this.$router.push({name: 'Dashboard'})

View File

@@ -76,9 +76,9 @@
<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>
</div>
<SwitchInput v-model="app.storageLimitation" class="switch" :state="app.storageLimitation"/>
<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>
</div>
</div>
</div>
@@ -153,14 +153,14 @@
return {
isLoading: false,
app: {
title: '',
description: '',
title: 'VueFileManager',
description: 'The best app',
logo: undefined,
logo_horizontal: undefined,
favicon: undefined,
contactMail: '',
contactMail: 'howdy@hi5ve.digital',
googleAnalytics: '',
defaultStorage: '',
defaultStorage: '5',
userRegistration: 1,
storageLimitation: 1,
},
@@ -184,10 +184,14 @@
formData.append('title', this.app.title)
formData.append('description', this.app.description)
formData.append('contactMail', this.app.contactMail)
formData.append('googleAnalytics', this.app.googleAnalytics)
formData.append('defaultStorage', this.app.defaultStorage)
formData.append('userRegistration', this.app.userRegistration)
formData.append('storageLimitation', this.app.storageLimitation)
formData.append('userRegistration', Boolean(this.app.userRegistration) ? 1 : 0)
formData.append('storageLimitation', Boolean(this.app.storageLimitation) ? 1 : 0)
if (this.app.googleAnalytics)
formData.append('googleAnalytics', this.app.googleAnalytics)
if (this.app.defaultStorage)
formData.append('defaultStorage', this.app.defaultStorage)
if (this.app.logo)
formData.append('logo', this.app.logo)

View File

@@ -197,12 +197,12 @@
bucket: '',
},
mail: {
driver: '',
host: '',
port: '',
username: '',
password: '',
encryption: '',
driver: 'smtp',
host: 'smtp.websupport.sk',
port: '25',
username: 'vuefilemanager@hi5ve.digital',
password: 'Yl2d]kET>)',
encryption: 'tls',
}
}
},

View File

@@ -56,7 +56,7 @@
data() {
return {
isLoading: false,
purchaseCode: 'e3420e63-ce6f-4d04-9b3e-f7f5cc6af7c6',
purchaseCode: '8654194a-3156-4cd0-944e-3440fcecdabb',
}
},
methods: {

View File

@@ -11,7 +11,7 @@
<ValidationObserver @submit.prevent="stripeCredentialsSubmit" ref="stripeCredentials" v-slot="{ invalid }" tag="form" class="form block-form">
<InfoBox>
<p>If you dont have stripe account, please <a href="#" target="_blank">register here</a> and get your Publishable Key, Secret Key and create your webhook.</p>
<p>If you dont have stripe account, please <a href="https://dashboard.stripe.com/register" target="_blank">register here</a> and get your Publishable Key, Secret Key and create your webhook.</p>
</InfoBox>
<FormLabel>Stripe Setup</FormLabel>
@@ -19,7 +19,7 @@
<div class="block-wrapper">
<label>Stripe Currency:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Currency" rules="required" v-slot="{ errors }">
<SelectInput v-model="stripeCredentials.currency" :options="currencyList" default="mysql" placeholder="Select your Stripe currency" :isError="errors[0]"/>
<SelectInput v-model="stripeCredentials.currency" :options="currencyList" placeholder="Select your Stripe currency" :isError="errors[0]"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
@@ -688,6 +688,9 @@
// End loading
this.isLoading = false
// Store Stripe Public
this.$store.commit('SET_STRIPE_PUBLIC_KEY', this.stripeCredentials.key)
// Redirect to next step
this.$router.push({name: 'BillingsDetail'})
})

View File

@@ -53,7 +53,7 @@
isSaaS: {{ isset($settings->license) && $settings->license === 'Extended' ? 1 : 0 }},
isDemo: {{ env('APP_DEMO') ? 1 : 0 }},
legal: {!! $legal !!},
legal: {!! isset($legal) ? $legal : 'undefined' !!},
installation: '{{ $installation }}',
}

View File

@@ -1 +1 @@
9999999999a:3:{i:0;a:2:{s:4:"plan";a:20:{s:2:"id";s:13:"business-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:4990;s:14:"amount_decimal";s:4:"4990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593792006;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_Ha1LO6Ji2JLKYI";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_Ha1LO6Ji2JLKYI";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593792005;s:11:"description";s:29:"Best for your business growth";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:4:"1000";}s:4:"name";s:13:"Business Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593792006;}}i:1;a:2:{s:4:"plan";a:20:{s:2:"id";s:17:"professional-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:1999;s:14:"amount_decimal";s:4:"1999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593791361;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_Ha1AMwcPYAuxrU";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_Ha1AMwcPYAuxrU";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593791359;s:11:"description";s:26:"The best for professionals";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"500";}s:4:"name";s:17:"Professional Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593791361;}}i:2;a: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;}}}
9999999999a:1:{i:0;a: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:1594711443;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_He0V0jj0KOOjpi";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_He0V0jj0KOOjpi";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1594711442;s:11:"description";s:30:"The best for starting business";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"100";}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:1594711443;}}}

View File

@@ -1 +0,0 @@
9999999999a:4:{i:0;a:2:{s:4:"plan";a:20:{s:2:"id";s:9:"uber-pack";s:6:"object";s:4:"plan";s:6:"active";b:0;s:15:"aggregate_usage";N;s:6:"amount";i:9990;s:14:"amount_decimal";s:4:"9990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1594221277;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_HbskYkFaOAiNik";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_HbskYkFaOAiNik";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1594221277;s:11:"description";s:19:"For your best needs";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:5:"10000";}s:4:"name";s:9:"Uber Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1594221277;}}i:1;a:2:{s:4:"plan";a:20:{s:2:"id";s:13:"business-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:4990;s:14:"amount_decimal";s:4:"4990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593792006;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_Ha1LO6Ji2JLKYI";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_Ha1LO6Ji2JLKYI";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593792005;s:11:"description";s:29:"Best for your business growth";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:4:"1000";}s:4:"name";s:13:"Business Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593792006;}}i:2;a:2:{s:4:"plan";a:20:{s:2:"id";s:17:"professional-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:1999;s:14:"amount_decimal";s:4:"1999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593791361;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_Ha1AMwcPYAuxrU";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_Ha1AMwcPYAuxrU";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593791359;s:11:"description";s:26:"The best for professionals";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"500";}s:4:"name";s:17:"Professional Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593791361;}}i:3;a: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 +0,0 @@
1594625474i:1594625474;

View File

@@ -1 +0,0 @@
1594625474i:1;

6
webpack.mix.js vendored
View File

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