diff --git a/app/FileManagerFile.php b/app/FileManagerFile.php index bf2a4cbd..e16ae48f 100644 --- a/app/FileManagerFile.php +++ b/app/FileManagerFile.php @@ -119,7 +119,7 @@ class FileManagerFile extends Model // Get thumbnail from s3 if ($this->attributes['thumbnail'] && is_storage_driver(['s3', 'spaces'])) { - return Storage::temporaryUrl('file-manager/' . $this->attributes['thumbnail'], now()->addDay()); + return Storage::temporaryUrl('file-manager/' . $this->attributes['thumbnail'], now()->addHour()); } // Get thumbnail from local storage diff --git a/app/Http/Controllers/Admin/InvoiceController.php b/app/Http/Controllers/Admin/InvoiceController.php index 329bec19..381aa3f9 100644 --- a/app/Http/Controllers/Admin/InvoiceController.php +++ b/app/Http/Controllers/Admin/InvoiceController.php @@ -42,6 +42,7 @@ class InvoiceController extends Controller public function show($customer, $token) { $settings = json_decode(Setting::all()->pluck('value', 'name')->toJson()); + $invoice = $this->stripe->getUserInvoice($customer, $token); return view('vuefilemanager.invoice') diff --git a/app/Http/Controllers/AppFunctionsController.php b/app/Http/Controllers/AppFunctionsController.php index fb20afed..3dffb783 100644 --- a/app/Http/Controllers/AppFunctionsController.php +++ b/app/Http/Controllers/AppFunctionsController.php @@ -2,10 +2,13 @@ namespace App\Http\Controllers; +use App\Setting; +use Doctrine\DBAL\Driver\PDOException; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use Response; +use Symfony\Component\HttpKernel\Exception\HttpException; class AppFunctionsController extends Controller { @@ -16,6 +19,31 @@ class AppFunctionsController extends Controller */ public function index() { - return view("index"); + try { + $connection = $this->get_setup_status(); + $settings = json_decode(Setting::all()->pluck('value', 'name')->toJson()); + + } catch (PDOException $e) { + $connection = 'setup-database'; + $settings = null; + } + + return view("index") + ->with('settings', $settings) + ->with('installation', $connection); + } + + /** + * @return string + */ + private function get_setup_status(): string + { + \DB::getPdo(); + + $setup_success = Setting::where('name', 'setup_wizard_success')->first(); + + $connection = $setup_success ? 'setup-done' : 'setup-disclaimer'; + + return $connection; } } diff --git a/app/Http/Controllers/General/SetupWizardController.php b/app/Http/Controllers/General/SetupWizardController.php index 93819a8a..a51c84e7 100644 --- a/app/Http/Controllers/General/SetupWizardController.php +++ b/app/Http/Controllers/General/SetupWizardController.php @@ -43,17 +43,11 @@ class SetupWizardController extends Controller */ public function verify_purchase_code(Request $request) { - // Author API token - $token = 'X3kPkRnIHqauwE7vle3Gvhx6PTY9bvLr'; - // e3420e63-ce6f-4d04-9b3e-f7f5cc6af7c6 - // Verify purchase code - $response = Http::withHeaders([ - 'Authorization' => 'Bearer ' . $token - ])->get('https://api.envato.com/v3/market/author/sale?code=' . $request->purchaseCode); + $response = Http::get('https://verify.vuefilemanager.com/api/verify-code/' . $request->purchaseCode); if ($response->successful()) { - return $response['license']; + return $response; } return response('Purchase code is invalid.', 400); @@ -67,16 +61,16 @@ class SetupWizardController extends Controller */ public function setup_database(StoreDatabaseCredentialsRequest $request) { - // Set temporary database connection - config(['database.connections.test.driver' => $request->connection]); - config(['database.connections.test.host' => $request->host]); - config(['database.connections.test.port' => $request->port]); - config(['database.connections.test.database' => $request->name]); - config(['database.connections.test.username' => $request->username]); - config(['database.connections.test.password' => $request->password]); - - // Test database connection try { + // Set temporary database connection + config(['database.connections.test.driver' => $request->connection]); + config(['database.connections.test.host' => $request->host]); + config(['database.connections.test.port' => $request->port]); + config(['database.connections.test.database' => $request->name]); + config(['database.connections.test.username' => $request->username]); + config(['database.connections.test.password' => $request->password]); + + // Test connection \DB::connection('test')->getPdo(); } catch (PDOException $e) { @@ -115,9 +109,23 @@ class SetupWizardController extends Controller $this->setEnvironmentValue($col['name'], $col['value']); }); + // Set database connection + config(['database.connections.mysql.driver' => $request->connection]); + config(['database.connections.mysql.host' => $request->host]); + config(['database.connections.mysql.port' => $request->port]); + config(['database.connections.mysql.database' => $request->name]); + config(['database.connections.mysql.username' => $request->username]); + config(['database.connections.mysql.password' => $request->password]); + // Set up application $this->set_up_application(); + // Store setup wizard progress + Setting::create([ + 'name' => 'setup_wizard_database', + 'value' => 1, + ]); + return response('Done', 200); } @@ -126,10 +134,6 @@ class SetupWizardController extends Controller */ private function set_up_application() { - // Clear Cache - Artisan::call('cache:clear'); - Artisan::call('config:clear'); - // Generate app key Artisan::call('key:generate'); @@ -159,6 +163,10 @@ class SetupWizardController extends Controller // Set passport client to .env $this->setEnvironmentValue('PASSPORT_CLIENT_ID', $client->id); $this->setEnvironmentValue('PASSPORT_CLIENT_SECRET', $client->secret); + + // Clear cache + Artisan::call('config:clear'); + //Artisan::call('config:cache'); } /** @@ -210,6 +218,10 @@ class SetupWizardController extends Controller Setting::updateOrCreate(['name' => $col['name']], $col); }); + // Clear cache + Artisan::call('config:clear'); + //Artisan::call('config:cache'); + return response('Done', 200); } @@ -262,6 +274,10 @@ class SetupWizardController extends Controller Setting::updateOrCreate(['name' => $col['name']], $col); }); + // Clear cache + Artisan::call('config:clear'); + //Artisan::call('config:cache'); + return response('Done', 200); } @@ -447,6 +463,10 @@ class SetupWizardController extends Controller $this->setEnvironmentValue($col['name'], $col['value']); }); + // Clear cache + Artisan::call('config:clear'); + //Artisan::call('config:cache'); + return response('Done', 200); } @@ -545,11 +565,19 @@ class SetupWizardController extends Controller 'password' => Hash::make($request->password), ]); + // Get default storage capacity + $storage_capacity = Setting::where('name', 'storage_default')->first(); + // Create settings - // TODO: set default storage capacity UserSettings::create([ 'user_id' => $user->id, - 'storage_capacity' => 1, + 'storage_capacity' => $storage_capacity->value, + ]); + + // Store setup wizard progress + Setting::create([ + 'name' => 'setup_wizard_success', + 'value' => 1, ]); // Retrieve access token diff --git a/app/Services/StripeService.php b/app/Services/StripeService.php index d6325e23..75261559 100644 --- a/app/Services/StripeService.php +++ b/app/Services/StripeService.php @@ -18,9 +18,7 @@ class StripeService */ public function __construct() { - dd(config('stripe.secret')); - - $this->stripe = Stripe::make(env('STRIPE_SECRET'), '2020-03-02'); + $this->stripe = Stripe::make(config('cashier.secret'), '2020-03-02'); } /** diff --git a/config/cashier.php b/config/cashier.php new file mode 100644 index 00000000..07cd7c26 --- /dev/null +++ b/config/cashier.php @@ -0,0 +1,129 @@ + env('STRIPE_KEY'), + + 'secret' => env('STRIPE_SECRET'), + + /* + |-------------------------------------------------------------------------- + | Cashier Path + |-------------------------------------------------------------------------- + | + | This is the base URI path where Cashier's views, such as the payment + | verification screen, will be available from. You're free to tweak + | this path according to your preferences and application design. + | + */ + + 'path' => env('CASHIER_PATH', 'stripe'), + + /* + |-------------------------------------------------------------------------- + | Stripe Webhooks + |-------------------------------------------------------------------------- + | + | Your Stripe webhook secret is used to prevent unauthorized requests to + | your Stripe webhook handling controllers. The tolerance setting will + | check the drift between the current time and the signed request's. + | + */ + + 'webhook' => [ + 'secret' => env('STRIPE_WEBHOOK_SECRET'), + 'tolerance' => env('STRIPE_WEBHOOK_TOLERANCE', 300), + ], + + /* + |-------------------------------------------------------------------------- + | Cashier Model + |-------------------------------------------------------------------------- + | + | This is the model in your application that implements the Billable trait + | provided by Cashier. It will serve as the primary model you use while + | interacting with Cashier related methods, subscriptions, and so on. + | + */ + + 'model' => env('CASHIER_MODEL', App\User::class), + + /* + |-------------------------------------------------------------------------- + | Currency + |-------------------------------------------------------------------------- + | + | This is the default currency that will be used when generating charges + | from your application. Of course, you are welcome to use any of the + | various world currencies that are currently supported via Stripe. + | + */ + + 'currency' => env('CASHIER_CURRENCY', 'usd'), + + /* + |-------------------------------------------------------------------------- + | Currency Locale + |-------------------------------------------------------------------------- + | + | This is the default locale in which your money values are formatted in + | for display. To utilize other locales besides the default en locale + | verify you have the "intl" PHP extension installed on the system. + | + */ + + 'currency_locale' => env('CASHIER_CURRENCY_LOCALE', 'en'), + + /* + |-------------------------------------------------------------------------- + | Payment Confirmation Notification + |-------------------------------------------------------------------------- + | + | If this setting is enabled, Cashier will automatically notify customers + | whose payments require additional verification. You should listen to + | Stripe's webhooks in order for this feature to function correctly. + | + */ + + 'payment_notification' => env('CASHIER_PAYMENT_NOTIFICATION'), + + /* + |-------------------------------------------------------------------------- + | Invoice Paper Size + |-------------------------------------------------------------------------- + | + | This option is the default paper size for all invoices generated using + | Cashier. You are free to customize this settings based on the usual + | paper size used by the customers using your Laravel applications. + | + | Supported sizes: 'letter', 'legal', 'A4' + | + */ + + 'paper' => env('CASHIER_PAPER', 'letter'), + + /* + |-------------------------------------------------------------------------- + | Stripe Logger + |-------------------------------------------------------------------------- + | + | This setting defines which logging channel will be used by the Stripe + | library to write log messages. You are free to specify any of your + | logging channels listed inside the "logging" configuration file. + | + */ + + 'logger' => env('CASHIER_LOGGER'), + +]; diff --git a/public/mix-manifest.json b/public/mix-manifest.json index dbcb58f8..e7fce826 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,285 +1,81 @@ { "/js/main.js": "/js/main.js", "/css/app.css": "/css/app.css", - "/js/main.9ba0fd35b08aa42bd5d6.hot-update.js": "/js/main.9ba0fd35b08aa42bd5d6.hot-update.js", - "/js/main.94e18393347a6c30c466.hot-update.js": "/js/main.94e18393347a6c30c466.hot-update.js", - "/js/main.1a0cdd9eb7456b334686.hot-update.js": "/js/main.1a0cdd9eb7456b334686.hot-update.js", - "/js/main.9cfbf58cb9183626fbd9.hot-update.js": "/js/main.9cfbf58cb9183626fbd9.hot-update.js", - "/js/main.947538899b32463304d1.hot-update.js": "/js/main.947538899b32463304d1.hot-update.js", - "/js/main.388bcd39ccfc575df3dc.hot-update.js": "/js/main.388bcd39ccfc575df3dc.hot-update.js", - "/js/main.ec4459f3993385a8ffb0.hot-update.js": "/js/main.ec4459f3993385a8ffb0.hot-update.js", - "/js/main.4aa483cf186b82e6f133.hot-update.js": "/js/main.4aa483cf186b82e6f133.hot-update.js", - "/js/main.0b62890fe58f6191cff2.hot-update.js": "/js/main.0b62890fe58f6191cff2.hot-update.js", - "/js/main.8f85a1128dbc59267b4d.hot-update.js": "/js/main.8f85a1128dbc59267b4d.hot-update.js", - "/js/main.f57c08e4f6453554eef7.hot-update.js": "/js/main.f57c08e4f6453554eef7.hot-update.js", - "/js/main.49806237173f17d9145e.hot-update.js": "/js/main.49806237173f17d9145e.hot-update.js", - "/js/main.a66ef529551f3908fa83.hot-update.js": "/js/main.a66ef529551f3908fa83.hot-update.js", - "/js/main.d250bde2dfd0cb83ead1.hot-update.js": "/js/main.d250bde2dfd0cb83ead1.hot-update.js", - "/js/main.86c738013294c543bf9f.hot-update.js": "/js/main.86c738013294c543bf9f.hot-update.js", - "/js/main.7d5ddf17e4f5ac5d7774.hot-update.js": "/js/main.7d5ddf17e4f5ac5d7774.hot-update.js", - "/js/main.ac3441b3dd689cf2a474.hot-update.js": "/js/main.ac3441b3dd689cf2a474.hot-update.js", - "/js/main.c17831922217a8e0ca69.hot-update.js": "/js/main.c17831922217a8e0ca69.hot-update.js", - "/js/main.047d29a9f0934470628c.hot-update.js": "/js/main.047d29a9f0934470628c.hot-update.js", - "/js/main.a12c2cbb9d4f587cb915.hot-update.js": "/js/main.a12c2cbb9d4f587cb915.hot-update.js", - "/js/main.eb91f9aef7a46fc4d97d.hot-update.js": "/js/main.eb91f9aef7a46fc4d97d.hot-update.js", - "/js/main.8950f2c1f965b34c67c8.hot-update.js": "/js/main.8950f2c1f965b34c67c8.hot-update.js", - "/js/main.c181b6f235365cc77806.hot-update.js": "/js/main.c181b6f235365cc77806.hot-update.js", - "/js/main.432d249065d06227b881.hot-update.js": "/js/main.432d249065d06227b881.hot-update.js", - "/js/main.6ab44d447ea09576bf79.hot-update.js": "/js/main.6ab44d447ea09576bf79.hot-update.js", - "/js/main.f877b4f51fa54d34a703.hot-update.js": "/js/main.f877b4f51fa54d34a703.hot-update.js", - "/js/main.bfb7a5ed9a7a787bf1b1.hot-update.js": "/js/main.bfb7a5ed9a7a787bf1b1.hot-update.js", - "/js/main.7f79a324bd9f3e34330e.hot-update.js": "/js/main.7f79a324bd9f3e34330e.hot-update.js", - "/js/main.7ab0530f4fa616fd6479.hot-update.js": "/js/main.7ab0530f4fa616fd6479.hot-update.js", - "/js/main.10376c1cb6a085c800d6.hot-update.js": "/js/main.10376c1cb6a085c800d6.hot-update.js", - "/js/main.c5c07ed33eaae7e74bb0.hot-update.js": "/js/main.c5c07ed33eaae7e74bb0.hot-update.js", - "/js/main.b3898569822a4bea728a.hot-update.js": "/js/main.b3898569822a4bea728a.hot-update.js", - "/js/main.cb3e97b7379bb2690e80.hot-update.js": "/js/main.cb3e97b7379bb2690e80.hot-update.js", - "/js/main.3907d0c494c707a2e526.hot-update.js": "/js/main.3907d0c494c707a2e526.hot-update.js", - "/js/main.30c46b47c913c6750487.hot-update.js": "/js/main.30c46b47c913c6750487.hot-update.js", - "/js/main.63ac156900e0c0a6a163.hot-update.js": "/js/main.63ac156900e0c0a6a163.hot-update.js", - "/js/main.b0b834bae1baf11b7d2e.hot-update.js": "/js/main.b0b834bae1baf11b7d2e.hot-update.js", - "/js/main.ddb0da2f7522ea677587.hot-update.js": "/js/main.ddb0da2f7522ea677587.hot-update.js", - "/js/main.6b767b34769556b6f22e.hot-update.js": "/js/main.6b767b34769556b6f22e.hot-update.js", - "/js/main.388c60436fa8234d3415.hot-update.js": "/js/main.388c60436fa8234d3415.hot-update.js", - "/js/main.3c144c24f3ae3943bc90.hot-update.js": "/js/main.3c144c24f3ae3943bc90.hot-update.js", - "/js/main.bf2d7c2fb972e7d888cc.hot-update.js": "/js/main.bf2d7c2fb972e7d888cc.hot-update.js", - "/js/main.a1260c2810a8264c42e2.hot-update.js": "/js/main.a1260c2810a8264c42e2.hot-update.js", - "/js/main.d4e8446c38a1548413bb.hot-update.js": "/js/main.d4e8446c38a1548413bb.hot-update.js", - "/js/main.129032d6ff4ea189d691.hot-update.js": "/js/main.129032d6ff4ea189d691.hot-update.js", - "/js/main.bdff6b7e32d4e63268a9.hot-update.js": "/js/main.bdff6b7e32d4e63268a9.hot-update.js", - "/js/main.bb35fbbacbb8cc6a21be.hot-update.js": "/js/main.bb35fbbacbb8cc6a21be.hot-update.js", - "/js/main.f49adc3a4f0766e49fb8.hot-update.js": "/js/main.f49adc3a4f0766e49fb8.hot-update.js", - "/js/main.57e0a8a6d1694937d714.hot-update.js": "/js/main.57e0a8a6d1694937d714.hot-update.js", - "/js/main.62cbda0a1a4c8c1e7ddb.hot-update.js": "/js/main.62cbda0a1a4c8c1e7ddb.hot-update.js", - "/js/main.bfe07da70f88cbc00a18.hot-update.js": "/js/main.bfe07da70f88cbc00a18.hot-update.js", - "/js/main.1fc88be6d6fc7818d38c.hot-update.js": "/js/main.1fc88be6d6fc7818d38c.hot-update.js", - "/js/main.6575481131214e9c2891.hot-update.js": "/js/main.6575481131214e9c2891.hot-update.js", - "/js/main.c99aec40c2c3ee3eac0d.hot-update.js": "/js/main.c99aec40c2c3ee3eac0d.hot-update.js", - "/js/main.e525917a75cbb76c8b26.hot-update.js": "/js/main.e525917a75cbb76c8b26.hot-update.js", - "/js/main.22c20ab0c219852049ad.hot-update.js": "/js/main.22c20ab0c219852049ad.hot-update.js", - "/js/main.df5b1efd5e4b9c9bac80.hot-update.js": "/js/main.df5b1efd5e4b9c9bac80.hot-update.js", - "/js/main.26a5f721dbce5fad22f7.hot-update.js": "/js/main.26a5f721dbce5fad22f7.hot-update.js", - "/js/main.0d520a66a47c10f5f5e2.hot-update.js": "/js/main.0d520a66a47c10f5f5e2.hot-update.js", - "/js/main.e3d18eca82e2431524f8.hot-update.js": "/js/main.e3d18eca82e2431524f8.hot-update.js", - "/js/main.3f7d42db34a8638638f5.hot-update.js": "/js/main.3f7d42db34a8638638f5.hot-update.js", - "/js/main.12b18448bcb03190696e.hot-update.js": "/js/main.12b18448bcb03190696e.hot-update.js", - "/js/main.f1bdbd6d4e1b6125a751.hot-update.js": "/js/main.f1bdbd6d4e1b6125a751.hot-update.js", - "/js/main.7f954acdffdef3ba1b4e.hot-update.js": "/js/main.7f954acdffdef3ba1b4e.hot-update.js", - "/js/main.8af19bb7c91195200c83.hot-update.js": "/js/main.8af19bb7c91195200c83.hot-update.js", - "/js/main.83950ac988f7d52fd4db.hot-update.js": "/js/main.83950ac988f7d52fd4db.hot-update.js", - "/js/main.2668f11eaec9054d4f85.hot-update.js": "/js/main.2668f11eaec9054d4f85.hot-update.js", - "/js/main.0cb7453215e2457e963d.hot-update.js": "/js/main.0cb7453215e2457e963d.hot-update.js", - "/js/main.628d6b45839c0bd50ffa.hot-update.js": "/js/main.628d6b45839c0bd50ffa.hot-update.js", - "/js/main.494744531adf85766dd7.hot-update.js": "/js/main.494744531adf85766dd7.hot-update.js", - "/js/main.e234521251663454e5bb.hot-update.js": "/js/main.e234521251663454e5bb.hot-update.js", - "/js/main.0f8aceea8e819824f7f4.hot-update.js": "/js/main.0f8aceea8e819824f7f4.hot-update.js", - "/js/main.1c4b31ce03bd281c7af0.hot-update.js": "/js/main.1c4b31ce03bd281c7af0.hot-update.js", - "/js/main.23395410004c25e9e752.hot-update.js": "/js/main.23395410004c25e9e752.hot-update.js", - "/js/main.dec2f01b8b3413b07cce.hot-update.js": "/js/main.dec2f01b8b3413b07cce.hot-update.js", - "/js/main.90d5738c7eca52e99fa1.hot-update.js": "/js/main.90d5738c7eca52e99fa1.hot-update.js", - "/js/main.350c381ae5ef35075008.hot-update.js": "/js/main.350c381ae5ef35075008.hot-update.js", - "/js/main.7ff8cd4e0f8129b28020.hot-update.js": "/js/main.7ff8cd4e0f8129b28020.hot-update.js", - "/js/main.36981f38ef6dbe1ad2ef.hot-update.js": "/js/main.36981f38ef6dbe1ad2ef.hot-update.js", - "/js/main.c72e92249cae6c72de71.hot-update.js": "/js/main.c72e92249cae6c72de71.hot-update.js", - "/js/main.8d4d5d88816dfa6a6c3a.hot-update.js": "/js/main.8d4d5d88816dfa6a6c3a.hot-update.js", - "/js/main.6315104b66153dff7594.hot-update.js": "/js/main.6315104b66153dff7594.hot-update.js", - "/js/main.4c5a2605aac797ae5094.hot-update.js": "/js/main.4c5a2605aac797ae5094.hot-update.js", - "/js/main.06385ccc6884270b68f0.hot-update.js": "/js/main.06385ccc6884270b68f0.hot-update.js", - "/js/main.b515044cb3386d6eb38c.hot-update.js": "/js/main.b515044cb3386d6eb38c.hot-update.js", - "/js/main.daf3544f7ebd524ba8b2.hot-update.js": "/js/main.daf3544f7ebd524ba8b2.hot-update.js", - "/js/main.f49dced487020b2401db.hot-update.js": "/js/main.f49dced487020b2401db.hot-update.js", - "/js/main.61e51b120958c98e9b80.hot-update.js": "/js/main.61e51b120958c98e9b80.hot-update.js", - "/js/main.4428c57138139124d638.hot-update.js": "/js/main.4428c57138139124d638.hot-update.js", - "/js/main.2b05f7597b38aa32f3d3.hot-update.js": "/js/main.2b05f7597b38aa32f3d3.hot-update.js", - "/js/main.b6055028d561f898e936.hot-update.js": "/js/main.b6055028d561f898e936.hot-update.js", - "/js/main.78472a4d15e86cf01c4c.hot-update.js": "/js/main.78472a4d15e86cf01c4c.hot-update.js", - "/js/main.210d791d65e133956107.hot-update.js": "/js/main.210d791d65e133956107.hot-update.js", - "/js/main.ffa9b0ac8442e4d2f24b.hot-update.js": "/js/main.ffa9b0ac8442e4d2f24b.hot-update.js", - "/js/main.e2a830fd08baece2fac6.hot-update.js": "/js/main.e2a830fd08baece2fac6.hot-update.js", - "/js/main.d389a917baec2038604b.hot-update.js": "/js/main.d389a917baec2038604b.hot-update.js", - "/js/main.3e0bc14c6d62109be8c1.hot-update.js": "/js/main.3e0bc14c6d62109be8c1.hot-update.js", - "/js/main.f950652035d59e80ba88.hot-update.js": "/js/main.f950652035d59e80ba88.hot-update.js", - "/js/main.f43b68d5594c47aa9da3.hot-update.js": "/js/main.f43b68d5594c47aa9da3.hot-update.js", - "/js/main.e7caa0957bb1286588d4.hot-update.js": "/js/main.e7caa0957bb1286588d4.hot-update.js", - "/js/main.95d769d0027eed99e6c1.hot-update.js": "/js/main.95d769d0027eed99e6c1.hot-update.js", - "/js/main.77762b16026f7742cbfa.hot-update.js": "/js/main.77762b16026f7742cbfa.hot-update.js", - "/js/main.dec59254037d7f896b86.hot-update.js": "/js/main.dec59254037d7f896b86.hot-update.js", - "/js/main.a1cc927c6a50ee0c7c61.hot-update.js": "/js/main.a1cc927c6a50ee0c7c61.hot-update.js", - "/js/main.bac3134e1b5eb0e23fea.hot-update.js": "/js/main.bac3134e1b5eb0e23fea.hot-update.js", - "/js/main.d42c1993753ba7c6d7bc.hot-update.js": "/js/main.d42c1993753ba7c6d7bc.hot-update.js", - "/js/main.fe48b2784aca36a6dfbc.hot-update.js": "/js/main.fe48b2784aca36a6dfbc.hot-update.js", - "/js/main.f952b84184c741f68c44.hot-update.js": "/js/main.f952b84184c741f68c44.hot-update.js", - "/js/main.22f72f1e3bcce35c118d.hot-update.js": "/js/main.22f72f1e3bcce35c118d.hot-update.js", - "/js/main.294962aafc6753ce4207.hot-update.js": "/js/main.294962aafc6753ce4207.hot-update.js", - "/js/main.d36f9a9f6222aa74bc38.hot-update.js": "/js/main.d36f9a9f6222aa74bc38.hot-update.js", - "/js/main.0118b88fb836f75f907c.hot-update.js": "/js/main.0118b88fb836f75f907c.hot-update.js", - "/js/main.a615663568a78691f42f.hot-update.js": "/js/main.a615663568a78691f42f.hot-update.js", - "/js/main.8881ab5062a0b552e57a.hot-update.js": "/js/main.8881ab5062a0b552e57a.hot-update.js", - "/js/main.e49de8f4cfa70d1c4935.hot-update.js": "/js/main.e49de8f4cfa70d1c4935.hot-update.js", - "/js/main.3dfcd8d63417db8974ce.hot-update.js": "/js/main.3dfcd8d63417db8974ce.hot-update.js", - "/js/main.a9ce2ef2a19666a6479c.hot-update.js": "/js/main.a9ce2ef2a19666a6479c.hot-update.js", - "/js/main.2c12c92e2c72d1e41fd0.hot-update.js": "/js/main.2c12c92e2c72d1e41fd0.hot-update.js", - "/js/main.49f0ffdafe50bb99c8d4.hot-update.js": "/js/main.49f0ffdafe50bb99c8d4.hot-update.js", - "/js/main.fa9016e6dd018e588900.hot-update.js": "/js/main.fa9016e6dd018e588900.hot-update.js", - "/js/main.2b915d9e98818d0176a6.hot-update.js": "/js/main.2b915d9e98818d0176a6.hot-update.js", - "/js/main.e87a7bb1c041232220b3.hot-update.js": "/js/main.e87a7bb1c041232220b3.hot-update.js", - "/js/main.cd116661c4a1d6c5d69c.hot-update.js": "/js/main.cd116661c4a1d6c5d69c.hot-update.js", - "/js/main.582a1d128d577aec65b7.hot-update.js": "/js/main.582a1d128d577aec65b7.hot-update.js", - "/js/main.571bd2027b0ad0ac5962.hot-update.js": "/js/main.571bd2027b0ad0ac5962.hot-update.js", - "/js/main.5e91c2e331ccdfd30443.hot-update.js": "/js/main.5e91c2e331ccdfd30443.hot-update.js", - "/js/main.e7e13a6e09678c73939d.hot-update.js": "/js/main.e7e13a6e09678c73939d.hot-update.js", - "/js/main.5116d49d4cfe29bd317c.hot-update.js": "/js/main.5116d49d4cfe29bd317c.hot-update.js", - "/js/main.18894bdbb14cb9e2f4e6.hot-update.js": "/js/main.18894bdbb14cb9e2f4e6.hot-update.js", - "/js/main.4d7deb55af6c2e02cb9f.hot-update.js": "/js/main.4d7deb55af6c2e02cb9f.hot-update.js", - "/js/main.59c52d7a2f19a0cecb7c.hot-update.js": "/js/main.59c52d7a2f19a0cecb7c.hot-update.js", - "/js/main.78c184149bfbc5ca6932.hot-update.js": "/js/main.78c184149bfbc5ca6932.hot-update.js", - "/js/main.51cbbf7dc86f2a2012fa.hot-update.js": "/js/main.51cbbf7dc86f2a2012fa.hot-update.js", - "/js/main.d012d1169cb534877cd0.hot-update.js": "/js/main.d012d1169cb534877cd0.hot-update.js", - "/js/main.994c6d9f812ba73875da.hot-update.js": "/js/main.994c6d9f812ba73875da.hot-update.js", - "/js/main.fb808d6466d2dd3de777.hot-update.js": "/js/main.fb808d6466d2dd3de777.hot-update.js", - "/js/main.96d27c5eba7218a1953c.hot-update.js": "/js/main.96d27c5eba7218a1953c.hot-update.js", - "/js/main.222ebcd0c3e9d30a10a7.hot-update.js": "/js/main.222ebcd0c3e9d30a10a7.hot-update.js", - "/js/main.ec324946af056d4e9e40.hot-update.js": "/js/main.ec324946af056d4e9e40.hot-update.js", - "/js/main.cf59f620f34b75f33d57.hot-update.js": "/js/main.cf59f620f34b75f33d57.hot-update.js", - "/js/main.40983dcc9efdc97efb63.hot-update.js": "/js/main.40983dcc9efdc97efb63.hot-update.js", - "/js/main.c047afe25c97538cd057.hot-update.js": "/js/main.c047afe25c97538cd057.hot-update.js", - "/js/main.22af859fdba4f4884580.hot-update.js": "/js/main.22af859fdba4f4884580.hot-update.js", - "/js/main.2977f19ca914fd5a8b6a.hot-update.js": "/js/main.2977f19ca914fd5a8b6a.hot-update.js", - "/js/main.a5e6c89e84d4ad81c052.hot-update.js": "/js/main.a5e6c89e84d4ad81c052.hot-update.js", - "/js/main.42b8fe8b9a648085bd8e.hot-update.js": "/js/main.42b8fe8b9a648085bd8e.hot-update.js", - "/js/main.f0cfa4545280f946ba4a.hot-update.js": "/js/main.f0cfa4545280f946ba4a.hot-update.js", - "/js/main.85e3c644ebd07ea49ec3.hot-update.js": "/js/main.85e3c644ebd07ea49ec3.hot-update.js", - "/js/main.ece75643d67e9bcbe226.hot-update.js": "/js/main.ece75643d67e9bcbe226.hot-update.js", - "/js/main.6a23a146600381ea9131.hot-update.js": "/js/main.6a23a146600381ea9131.hot-update.js", - "/js/main.bc3bf0a6e8cc685e89a1.hot-update.js": "/js/main.bc3bf0a6e8cc685e89a1.hot-update.js", - "/js/main.afece1ee9777a0f09f92.hot-update.js": "/js/main.afece1ee9777a0f09f92.hot-update.js", - "/js/main.318eeefc5c617a59ee6d.hot-update.js": "/js/main.318eeefc5c617a59ee6d.hot-update.js", - "/js/main.755f6694f38c8c77bd27.hot-update.js": "/js/main.755f6694f38c8c77bd27.hot-update.js", - "/js/main.f18d478e890997d4f4da.hot-update.js": "/js/main.f18d478e890997d4f4da.hot-update.js", - "/js/main.db0f3a4f426d3990e240.hot-update.js": "/js/main.db0f3a4f426d3990e240.hot-update.js", - "/js/main.a405076120f1f39d6d6d.hot-update.js": "/js/main.a405076120f1f39d6d6d.hot-update.js", - "/js/main.6cba9147fd829edb958f.hot-update.js": "/js/main.6cba9147fd829edb958f.hot-update.js", - "/js/main.cd2fe4e3030ca6acc4e1.hot-update.js": "/js/main.cd2fe4e3030ca6acc4e1.hot-update.js", - "/js/main.5cded47a7b477704e2eb.hot-update.js": "/js/main.5cded47a7b477704e2eb.hot-update.js", - "/js/main.c7486336a6790360832d.hot-update.js": "/js/main.c7486336a6790360832d.hot-update.js", - "/js/main.f7016f686c1057bc13e3.hot-update.js": "/js/main.f7016f686c1057bc13e3.hot-update.js", - "/js/main.17c68ee60b815575d2f9.hot-update.js": "/js/main.17c68ee60b815575d2f9.hot-update.js", - "/js/main.86a4ab5670f7d5cabb35.hot-update.js": "/js/main.86a4ab5670f7d5cabb35.hot-update.js", - "/js/main.4dea91e54b0a38bba6e7.hot-update.js": "/js/main.4dea91e54b0a38bba6e7.hot-update.js", - "/js/main.feb31c4f536800f14886.hot-update.js": "/js/main.feb31c4f536800f14886.hot-update.js", - "/js/main.c47820cef3354299e493.hot-update.js": "/js/main.c47820cef3354299e493.hot-update.js", - "/js/main.5a3111773041d077914c.hot-update.js": "/js/main.5a3111773041d077914c.hot-update.js", - "/js/main.6c1dc0ab6b48b7fb8d0f.hot-update.js": "/js/main.6c1dc0ab6b48b7fb8d0f.hot-update.js", - "/js/main.acb7922f38d63ffedb8c.hot-update.js": "/js/main.acb7922f38d63ffedb8c.hot-update.js", - "/js/main.a53e0c7d11808569d268.hot-update.js": "/js/main.a53e0c7d11808569d268.hot-update.js", - "/js/main.a46a827c478e8ab2393e.hot-update.js": "/js/main.a46a827c478e8ab2393e.hot-update.js", - "/js/main.701befe377412289c1e7.hot-update.js": "/js/main.701befe377412289c1e7.hot-update.js", - "/js/main.4b1e0972a8490afd2480.hot-update.js": "/js/main.4b1e0972a8490afd2480.hot-update.js", - "/js/main.a12d0df8441fe0b1b64e.hot-update.js": "/js/main.a12d0df8441fe0b1b64e.hot-update.js", - "/js/main.8a13cdc450f54124a2e8.hot-update.js": "/js/main.8a13cdc450f54124a2e8.hot-update.js", - "/js/main.86ad86b8ab0ac84651d7.hot-update.js": "/js/main.86ad86b8ab0ac84651d7.hot-update.js", - "/js/main.d4311ae5421503ee73ba.hot-update.js": "/js/main.d4311ae5421503ee73ba.hot-update.js", - "/js/main.a12f2b869039233ec7d1.hot-update.js": "/js/main.a12f2b869039233ec7d1.hot-update.js", - "/js/main.4331e216c81ad63d68d2.hot-update.js": "/js/main.4331e216c81ad63d68d2.hot-update.js", - "/js/main.a9f4434e2ef7b9e029f9.hot-update.js": "/js/main.a9f4434e2ef7b9e029f9.hot-update.js", - "/js/main.f4cf1d836ab8fad25b18.hot-update.js": "/js/main.f4cf1d836ab8fad25b18.hot-update.js", - "/js/main.714ab8accd45fca0352c.hot-update.js": "/js/main.714ab8accd45fca0352c.hot-update.js", - "/js/main.f4eb0b9755cffa4dfcc7.hot-update.js": "/js/main.f4eb0b9755cffa4dfcc7.hot-update.js", - "/js/main.e970c4c1f36844c2977f.hot-update.js": "/js/main.e970c4c1f36844c2977f.hot-update.js", - "/js/main.78570685fbf7d85246f2.hot-update.js": "/js/main.78570685fbf7d85246f2.hot-update.js", - "/js/main.fb03325bcaa8d4d98090.hot-update.js": "/js/main.fb03325bcaa8d4d98090.hot-update.js", - "/js/main.4d26215591306c839618.hot-update.js": "/js/main.4d26215591306c839618.hot-update.js", - "/js/main.2d1f539b131e5873a485.hot-update.js": "/js/main.2d1f539b131e5873a485.hot-update.js", - "/js/main.835a770181065c1b9397.hot-update.js": "/js/main.835a770181065c1b9397.hot-update.js", - "/js/main.09f9dab42bcfa1634f4d.hot-update.js": "/js/main.09f9dab42bcfa1634f4d.hot-update.js", - "/js/main.8a70e542c3e3304535a4.hot-update.js": "/js/main.8a70e542c3e3304535a4.hot-update.js", - "/js/main.325adf8cf5e1a83126a5.hot-update.js": "/js/main.325adf8cf5e1a83126a5.hot-update.js", - "/js/main.f961b6e9d077a442035a.hot-update.js": "/js/main.f961b6e9d077a442035a.hot-update.js", - "/js/main.60d318b86ef1942116fc.hot-update.js": "/js/main.60d318b86ef1942116fc.hot-update.js", - "/js/main.fa7aca50202d520eff5c.hot-update.js": "/js/main.fa7aca50202d520eff5c.hot-update.js", - "/js/main.c61bd9bd5f3bd0f7bfaf.hot-update.js": "/js/main.c61bd9bd5f3bd0f7bfaf.hot-update.js", - "/js/main.ebf01927b1c1132074bb.hot-update.js": "/js/main.ebf01927b1c1132074bb.hot-update.js", - "/js/main.73ceb4ddc97dd83e3e9d.hot-update.js": "/js/main.73ceb4ddc97dd83e3e9d.hot-update.js", - "/js/main.d59fcd1a37bfee22bf4f.hot-update.js": "/js/main.d59fcd1a37bfee22bf4f.hot-update.js", - "/js/main.94b332e4c7a0031ed8ef.hot-update.js": "/js/main.94b332e4c7a0031ed8ef.hot-update.js", - "/js/main.578348615f140107a146.hot-update.js": "/js/main.578348615f140107a146.hot-update.js", - "/js/main.4d0d19eb2776ac141cf3.hot-update.js": "/js/main.4d0d19eb2776ac141cf3.hot-update.js", - "/js/main.c6c7699155e707c83638.hot-update.js": "/js/main.c6c7699155e707c83638.hot-update.js", - "/js/main.cc2b80170d644f9fb024.hot-update.js": "/js/main.cc2b80170d644f9fb024.hot-update.js", - "/js/main.7d835be6842b8c9b22ac.hot-update.js": "/js/main.7d835be6842b8c9b22ac.hot-update.js", - "/js/main.c48c478a7083284384b4.hot-update.js": "/js/main.c48c478a7083284384b4.hot-update.js", - "/js/main.0a033e7788ae142bef26.hot-update.js": "/js/main.0a033e7788ae142bef26.hot-update.js", - "/js/main.0b7dfc2f94ca7c20da89.hot-update.js": "/js/main.0b7dfc2f94ca7c20da89.hot-update.js", - "/js/main.321b6748d866ee25e6a0.hot-update.js": "/js/main.321b6748d866ee25e6a0.hot-update.js", - "/js/main.0fc25b4b50854ab03ecb.hot-update.js": "/js/main.0fc25b4b50854ab03ecb.hot-update.js", - "/js/main.d4eb7381630781b7f83b.hot-update.js": "/js/main.d4eb7381630781b7f83b.hot-update.js", - "/js/main.dbf7b9a6b03dd3e764f5.hot-update.js": "/js/main.dbf7b9a6b03dd3e764f5.hot-update.js", - "/js/main.f2d175ee3ad7394744f3.hot-update.js": "/js/main.f2d175ee3ad7394744f3.hot-update.js", - "/js/main.7097f18bafbb2c782e34.hot-update.js": "/js/main.7097f18bafbb2c782e34.hot-update.js", - "/js/main.e74278efede5c77fb59a.hot-update.js": "/js/main.e74278efede5c77fb59a.hot-update.js", - "/js/main.b16252a3f321aa5f638c.hot-update.js": "/js/main.b16252a3f321aa5f638c.hot-update.js", - "/js/main.65d67c907472cea149a2.hot-update.js": "/js/main.65d67c907472cea149a2.hot-update.js", - "/js/main.d32086da1adce30a365c.hot-update.js": "/js/main.d32086da1adce30a365c.hot-update.js", - "/js/main.2abe2dd3690d4223aae6.hot-update.js": "/js/main.2abe2dd3690d4223aae6.hot-update.js", - "/js/main.34d101ff4e9c0f3c9f62.hot-update.js": "/js/main.34d101ff4e9c0f3c9f62.hot-update.js", - "/js/main.db8a2c676ae81a86ac07.hot-update.js": "/js/main.db8a2c676ae81a86ac07.hot-update.js", - "/js/main.3e10515c75b547edbd84.hot-update.js": "/js/main.3e10515c75b547edbd84.hot-update.js", - "/js/main.a21b2c4011d251b159dc.hot-update.js": "/js/main.a21b2c4011d251b159dc.hot-update.js", - "/js/main.29892a9f1673876f812a.hot-update.js": "/js/main.29892a9f1673876f812a.hot-update.js", - "/js/main.90e4e646ca4687f65d71.hot-update.js": "/js/main.90e4e646ca4687f65d71.hot-update.js", - "/js/main.2f329e24c50c195b7655.hot-update.js": "/js/main.2f329e24c50c195b7655.hot-update.js", - "/js/main.a8a8ecc1aa6706cf3eb7.hot-update.js": "/js/main.a8a8ecc1aa6706cf3eb7.hot-update.js", - "/js/main.e03c44a34c09251882cb.hot-update.js": "/js/main.e03c44a34c09251882cb.hot-update.js", - "/js/main.1c1d02f7cd7ffae319bd.hot-update.js": "/js/main.1c1d02f7cd7ffae319bd.hot-update.js", - "/js/main.a1fed26b6036e6849112.hot-update.js": "/js/main.a1fed26b6036e6849112.hot-update.js", - "/js/main.c4018662de1655065788.hot-update.js": "/js/main.c4018662de1655065788.hot-update.js", - "/js/main.330cb26c0bc23a53c884.hot-update.js": "/js/main.330cb26c0bc23a53c884.hot-update.js", - "/js/main.33a43c4c29198be879c5.hot-update.js": "/js/main.33a43c4c29198be879c5.hot-update.js", - "/js/main.60e7443fa7dee86c85d8.hot-update.js": "/js/main.60e7443fa7dee86c85d8.hot-update.js", - "/js/main.3e4d2dc845d6e6fd27a1.hot-update.js": "/js/main.3e4d2dc845d6e6fd27a1.hot-update.js", - "/js/main.c072ce5e1e8ee60ff114.hot-update.js": "/js/main.c072ce5e1e8ee60ff114.hot-update.js", - "/js/main.435a7170ae4c41a507bf.hot-update.js": "/js/main.435a7170ae4c41a507bf.hot-update.js", - "/js/main.3e5be2b0dcd70adc5f07.hot-update.js": "/js/main.3e5be2b0dcd70adc5f07.hot-update.js", - "/js/main.c1e5ceaa30c4a222234b.hot-update.js": "/js/main.c1e5ceaa30c4a222234b.hot-update.js", - "/js/main.430a9eb6b1382f42d8f6.hot-update.js": "/js/main.430a9eb6b1382f42d8f6.hot-update.js", - "/js/main.c962104d9cc0e244dbcf.hot-update.js": "/js/main.c962104d9cc0e244dbcf.hot-update.js", - "/js/main.631a573d0816d40f99b3.hot-update.js": "/js/main.631a573d0816d40f99b3.hot-update.js", - "/js/main.c4966c4a540e5ed0e0fe.hot-update.js": "/js/main.c4966c4a540e5ed0e0fe.hot-update.js", - "/js/main.a7e2cb4059892a5ce2d1.hot-update.js": "/js/main.a7e2cb4059892a5ce2d1.hot-update.js", - "/js/main.c1a278d80d8245b8dbed.hot-update.js": "/js/main.c1a278d80d8245b8dbed.hot-update.js", - "/js/main.6f0d43bf3f52d2c4ac14.hot-update.js": "/js/main.6f0d43bf3f52d2c4ac14.hot-update.js", - "/js/main.e784ffe94b54d5a998ab.hot-update.js": "/js/main.e784ffe94b54d5a998ab.hot-update.js", - "/js/main.dea1f26cd34f991d67e1.hot-update.js": "/js/main.dea1f26cd34f991d67e1.hot-update.js", - "/js/main.061ee62ce1874101ac2a.hot-update.js": "/js/main.061ee62ce1874101ac2a.hot-update.js", - "/js/main.85875fb8da3b6c2c9b22.hot-update.js": "/js/main.85875fb8da3b6c2c9b22.hot-update.js", - "/js/main.db7c288c6b109145c54f.hot-update.js": "/js/main.db7c288c6b109145c54f.hot-update.js", - "/js/main.70d8638e1b3444f4775f.hot-update.js": "/js/main.70d8638e1b3444f4775f.hot-update.js", - "/js/main.0d29c7bec145fcf354fb.hot-update.js": "/js/main.0d29c7bec145fcf354fb.hot-update.js", - "/js/main.9cd13670523ef48d28e6.hot-update.js": "/js/main.9cd13670523ef48d28e6.hot-update.js", - "/js/main.47ee00b321282e6ae987.hot-update.js": "/js/main.47ee00b321282e6ae987.hot-update.js", - "/js/main.5ef029b918e611550c36.hot-update.js": "/js/main.5ef029b918e611550c36.hot-update.js", - "/js/main.f6719ad9576c258cf584.hot-update.js": "/js/main.f6719ad9576c258cf584.hot-update.js", - "/js/main.e7ccbb9786d4116e87e5.hot-update.js": "/js/main.e7ccbb9786d4116e87e5.hot-update.js", - "/js/main.9ca0d30ea69682a73a3f.hot-update.js": "/js/main.9ca0d30ea69682a73a3f.hot-update.js", - "/js/main.aea23c89a4d4cb490f38.hot-update.js": "/js/main.aea23c89a4d4cb490f38.hot-update.js", - "/js/main.2a2df9603b1822c15a5e.hot-update.js": "/js/main.2a2df9603b1822c15a5e.hot-update.js", - "/js/main.489f68ca99fda16cb5d1.hot-update.js": "/js/main.489f68ca99fda16cb5d1.hot-update.js", - "/js/main.597a3d62f124fa4b1495.hot-update.js": "/js/main.597a3d62f124fa4b1495.hot-update.js", - "/js/main.d5392b120f1eb2e4c816.hot-update.js": "/js/main.d5392b120f1eb2e4c816.hot-update.js", - "/js/main.a7ae925207be44232c5c.hot-update.js": "/js/main.a7ae925207be44232c5c.hot-update.js", - "/js/main.bb42904cd41c18389ec8.hot-update.js": "/js/main.bb42904cd41c18389ec8.hot-update.js", - "/js/main.fe643a9998fdca67359e.hot-update.js": "/js/main.fe643a9998fdca67359e.hot-update.js", - "/js/main.daf27f047d4b8810e2cf.hot-update.js": "/js/main.daf27f047d4b8810e2cf.hot-update.js", - "/js/main.986dd7f8fc929c9c0b4f.hot-update.js": "/js/main.986dd7f8fc929c9c0b4f.hot-update.js", - "/js/main.77d2a6871e82cc5d0d09.hot-update.js": "/js/main.77d2a6871e82cc5d0d09.hot-update.js", - "/js/main.49faf863ade9028d0d34.hot-update.js": "/js/main.49faf863ade9028d0d34.hot-update.js", - "/js/main.0ffae012a756027e52bd.hot-update.js": "/js/main.0ffae012a756027e52bd.hot-update.js", - "/js/main.df15a1f233ee639ed364.hot-update.js": "/js/main.df15a1f233ee639ed364.hot-update.js", - "/js/main.3d8a3e25947961464dcc.hot-update.js": "/js/main.3d8a3e25947961464dcc.hot-update.js", - "/js/main.ef757ee6853c9f37b38c.hot-update.js": "/js/main.ef757ee6853c9f37b38c.hot-update.js", - "/js/main.009a2af69a329c5f4ced.hot-update.js": "/js/main.009a2af69a329c5f4ced.hot-update.js", - "/js/main.3eba90d0a4c80f1cc076.hot-update.js": "/js/main.3eba90d0a4c80f1cc076.hot-update.js", - "/js/main.530a0e768d44eaffc432.hot-update.js": "/js/main.530a0e768d44eaffc432.hot-update.js", - "/js/main.2e446e138db18ddc31a6.hot-update.js": "/js/main.2e446e138db18ddc31a6.hot-update.js", - "/js/main.d53c4114c93122303427.hot-update.js": "/js/main.d53c4114c93122303427.hot-update.js" + "/js/main.2b4bb4d99d313abb310d.hot-update.js": "/js/main.2b4bb4d99d313abb310d.hot-update.js", + "/js/main.6dd6cfe2a5cb8f596d3a.hot-update.js": "/js/main.6dd6cfe2a5cb8f596d3a.hot-update.js", + "/js/main.0d03ffbf637ac02637d9.hot-update.js": "/js/main.0d03ffbf637ac02637d9.hot-update.js", + "/js/main.439df684f963a4dc614f.hot-update.js": "/js/main.439df684f963a4dc614f.hot-update.js", + "/js/main.b9170431b4e69c863017.hot-update.js": "/js/main.b9170431b4e69c863017.hot-update.js", + "/js/main.162a889ec078259929f9.hot-update.js": "/js/main.162a889ec078259929f9.hot-update.js", + "/js/main.955b5e5960a8b68b4586.hot-update.js": "/js/main.955b5e5960a8b68b4586.hot-update.js", + "/js/main.e52f88914111f79f4cc8.hot-update.js": "/js/main.e52f88914111f79f4cc8.hot-update.js", + "/js/main.67aa2db2ac2c7576a862.hot-update.js": "/js/main.67aa2db2ac2c7576a862.hot-update.js", + "/js/main.6d146bcfdb1538a6d2aa.hot-update.js": "/js/main.6d146bcfdb1538a6d2aa.hot-update.js", + "/js/main.7bf06c2dce5b584114c1.hot-update.js": "/js/main.7bf06c2dce5b584114c1.hot-update.js", + "/js/main.71ff79f741ef2029e4c6.hot-update.js": "/js/main.71ff79f741ef2029e4c6.hot-update.js", + "/js/main.10c049832e67d2206b1c.hot-update.js": "/js/main.10c049832e67d2206b1c.hot-update.js", + "/js/main.528fc6f35f4be7b7a1ff.hot-update.js": "/js/main.528fc6f35f4be7b7a1ff.hot-update.js", + "/js/main.224d0b4211e44d52fd92.hot-update.js": "/js/main.224d0b4211e44d52fd92.hot-update.js", + "/js/main.b4c1915ed2cd0241accc.hot-update.js": "/js/main.b4c1915ed2cd0241accc.hot-update.js", + "/js/main.be734f2633b5adb83302.hot-update.js": "/js/main.be734f2633b5adb83302.hot-update.js", + "/js/main.e9dd260335f97d12c38b.hot-update.js": "/js/main.e9dd260335f97d12c38b.hot-update.js", + "/js/main.3c5364511bc10ddbc754.hot-update.js": "/js/main.3c5364511bc10ddbc754.hot-update.js", + "/js/main.ec57dec31b0298d8824e.hot-update.js": "/js/main.ec57dec31b0298d8824e.hot-update.js", + "/js/main.75e8d1805a8f6e921e09.hot-update.js": "/js/main.75e8d1805a8f6e921e09.hot-update.js", + "/js/main.abe64316d68e84615a78.hot-update.js": "/js/main.abe64316d68e84615a78.hot-update.js", + "/js/main.e0f7dea8bb17545cc080.hot-update.js": "/js/main.e0f7dea8bb17545cc080.hot-update.js", + "/js/main.bb6424b72c3c3e77fcf9.hot-update.js": "/js/main.bb6424b72c3c3e77fcf9.hot-update.js", + "/js/main.6e87a11ef3e5847e5401.hot-update.js": "/js/main.6e87a11ef3e5847e5401.hot-update.js", + "/js/main.e3eac4c8ef625941e57b.hot-update.js": "/js/main.e3eac4c8ef625941e57b.hot-update.js", + "/js/main.43f0c0703d82f04a9c6d.hot-update.js": "/js/main.43f0c0703d82f04a9c6d.hot-update.js", + "/js/main.167e5c9f171d25413acd.hot-update.js": "/js/main.167e5c9f171d25413acd.hot-update.js", + "/js/main.0d29f8d51b39927ddb8f.hot-update.js": "/js/main.0d29f8d51b39927ddb8f.hot-update.js", + "/js/main.d884ad1680e0523ea6be.hot-update.js": "/js/main.d884ad1680e0523ea6be.hot-update.js", + "/js/main.cc2d7cd6643e90e6d858.hot-update.js": "/js/main.cc2d7cd6643e90e6d858.hot-update.js", + "/js/main.0141bb019014fbaa13d7.hot-update.js": "/js/main.0141bb019014fbaa13d7.hot-update.js", + "/js/main.896e8fe543c99edb1713.hot-update.js": "/js/main.896e8fe543c99edb1713.hot-update.js", + "/js/main.8e2748d60065ed49c366.hot-update.js": "/js/main.8e2748d60065ed49c366.hot-update.js", + "/js/main.68ea4c5fd1912666eccb.hot-update.js": "/js/main.68ea4c5fd1912666eccb.hot-update.js", + "/js/main.8cc61cea63b58eec2e4d.hot-update.js": "/js/main.8cc61cea63b58eec2e4d.hot-update.js", + "/js/main.8dcc79a5742eb491bc6d.hot-update.js": "/js/main.8dcc79a5742eb491bc6d.hot-update.js", + "/js/main.87b09a4fac5307f6208b.hot-update.js": "/js/main.87b09a4fac5307f6208b.hot-update.js", + "/js/main.cecef9bfc470f0349e94.hot-update.js": "/js/main.cecef9bfc470f0349e94.hot-update.js", + "/js/main.89172d9ba3f171c3990a.hot-update.js": "/js/main.89172d9ba3f171c3990a.hot-update.js", + "/js/main.321c02be962d10fb69d5.hot-update.js": "/js/main.321c02be962d10fb69d5.hot-update.js", + "/js/main.f89fee618b1a267d982b.hot-update.js": "/js/main.f89fee618b1a267d982b.hot-update.js", + "/js/main.c076cee9ac7f4fb433dd.hot-update.js": "/js/main.c076cee9ac7f4fb433dd.hot-update.js", + "/js/main.58ae786c829a267a138e.hot-update.js": "/js/main.58ae786c829a267a138e.hot-update.js", + "/js/main.dbcc8d4649d98fa50c5b.hot-update.js": "/js/main.dbcc8d4649d98fa50c5b.hot-update.js", + "/js/main.92e0302fdc247bc1ddd4.hot-update.js": "/js/main.92e0302fdc247bc1ddd4.hot-update.js", + "/js/main.09880d5bdbb9c9e76485.hot-update.js": "/js/main.09880d5bdbb9c9e76485.hot-update.js", + "/js/main.27d918da0c9f1cce51a0.hot-update.js": "/js/main.27d918da0c9f1cce51a0.hot-update.js", + "/js/main.ab5dea68c5e95ec6561a.hot-update.js": "/js/main.ab5dea68c5e95ec6561a.hot-update.js", + "/js/main.bdeb41f2e84dc7000c96.hot-update.js": "/js/main.bdeb41f2e84dc7000c96.hot-update.js", + "/js/main.df781024158bba6c17b3.hot-update.js": "/js/main.df781024158bba6c17b3.hot-update.js", + "/js/main.c599581002db16a66284.hot-update.js": "/js/main.c599581002db16a66284.hot-update.js", + "/js/main.560eacdd784642f47610.hot-update.js": "/js/main.560eacdd784642f47610.hot-update.js", + "/js/main.e878150fdbe51e947a64.hot-update.js": "/js/main.e878150fdbe51e947a64.hot-update.js", + "/js/main.79a1a48d0735af9aff73.hot-update.js": "/js/main.79a1a48d0735af9aff73.hot-update.js", + "/js/main.542e1d182685c54fcbc7.hot-update.js": "/js/main.542e1d182685c54fcbc7.hot-update.js", + "/js/main.96330bea02daf63eacdc.hot-update.js": "/js/main.96330bea02daf63eacdc.hot-update.js", + "/js/main.b2c0c1edaccffff34e7a.hot-update.js": "/js/main.b2c0c1edaccffff34e7a.hot-update.js", + "/js/main.afa8f877bb9d835142d9.hot-update.js": "/js/main.afa8f877bb9d835142d9.hot-update.js", + "/js/main.1a90b8f53ca99a31026f.hot-update.js": "/js/main.1a90b8f53ca99a31026f.hot-update.js", + "/js/main.69fcc023073e725606ae.hot-update.js": "/js/main.69fcc023073e725606ae.hot-update.js", + "/js/main.0f20ac44727cfd2cf9df.hot-update.js": "/js/main.0f20ac44727cfd2cf9df.hot-update.js", + "/js/main.03d5652417c82f6f1e60.hot-update.js": "/js/main.03d5652417c82f6f1e60.hot-update.js", + "/js/main.420c65ad1885894b79ed.hot-update.js": "/js/main.420c65ad1885894b79ed.hot-update.js", + "/js/main.2ce81a1c124857c4e8e7.hot-update.js": "/js/main.2ce81a1c124857c4e8e7.hot-update.js", + "/js/main.fe15909c2da16647e1ba.hot-update.js": "/js/main.fe15909c2da16647e1ba.hot-update.js", + "/js/main.0a9c77ea49d579a71cca.hot-update.js": "/js/main.0a9c77ea49d579a71cca.hot-update.js", + "/js/main.949bd581170ecd3ea3dc.hot-update.js": "/js/main.949bd581170ecd3ea3dc.hot-update.js", + "/js/main.0258efa0a901be4ca9f6.hot-update.js": "/js/main.0258efa0a901be4ca9f6.hot-update.js", + "/js/main.cd45cfd1b36066691720.hot-update.js": "/js/main.cd45cfd1b36066691720.hot-update.js", + "/js/main.57f358dda4963c5cde2c.hot-update.js": "/js/main.57f358dda4963c5cde2c.hot-update.js", + "/js/main.8c62efd2d89e1ec1196f.hot-update.js": "/js/main.8c62efd2d89e1ec1196f.hot-update.js", + "/js/main.a36f418799039d7889af.hot-update.js": "/js/main.a36f418799039d7889af.hot-update.js", + "/js/main.95f2eda8c8f6eddf91c4.hot-update.js": "/js/main.95f2eda8c8f6eddf91c4.hot-update.js", + "/js/main.c6d99369d738f4a74fe5.hot-update.js": "/js/main.c6d99369d738f4a74fe5.hot-update.js", + "/js/main.1cf2639585cda2d389ca.hot-update.js": "/js/main.1cf2639585cda2d389ca.hot-update.js", + "/js/main.4597a7e63646bbbda998.hot-update.js": "/js/main.4597a7e63646bbbda998.hot-update.js" } diff --git a/resources/js/App.vue b/resources/js/App.vue index 61576b42..959f341a 100644 --- a/resources/js/App.vue +++ b/resources/js/App.vue @@ -74,7 +74,7 @@ 'isLogged', 'isGuest' ]), layout() { - if (includes(['AdminAccount', 'PurchaseCode', 'SubscriptionService', 'StripeCredentials', 'AppSetup', 'EnvironmentSetup', 'BillingsDetail', 'SubscriptionPlans', 'Database', 'VerifyByPassword', 'SharedPage', 'NotFoundShared', 'SignIn', 'SignUp', 'ForgottenPassword', 'CreateNewPassword'], this.$route.name)) { + if (includes(['InstallationDisclaimer', 'AdminAccount', 'PurchaseCode', 'SubscriptionService', 'StripeCredentials', 'AppSetup', 'EnvironmentSetup', 'BillingsDetail', 'SubscriptionPlans', 'Database', 'VerifyByPassword', 'SharedPage', 'NotFoundShared', 'SignIn', 'SignUp', 'ForgottenPassword', 'CreateNewPassword'], this.$route.name)) { return 'unauthorized' } @@ -98,6 +98,18 @@ unique_id: 0, } }) + + // Get installation state + let installation = this.$root.$data.config.installation + + // Redirect to database verify code + if ( installation === 'setup-database') { + this.$router.push({name: 'PurchaseCode'}) + + // Redirect to starting installation process + } else if ( installation === 'setup-disclaimer' ) { + this.$router.push({name: 'InstallationDisclaimer'}) + } }, mounted() { // Handle mobile navigation scale animation diff --git a/resources/js/router.js b/resources/js/router.js index fd26d4e7..8db973cf 100644 --- a/resources/js/router.js +++ b/resources/js/router.js @@ -65,6 +65,7 @@ import EnvironmentSetup from './views/SetupWizard/EnvironmentSetup' import StripeCredentials from './views/SetupWizard/StripeCredentials' import SubscriptionPlans from './views/SetupWizard/SubscriptionPlans' import SubscriptionService from './views/SetupWizard/SubscriptionService' +import InstallationDisclaimer from './views/SetupWizard/InstallationDisclaimer' Vue.use(Router) @@ -445,7 +446,7 @@ const routesUser = [ const routesMaintenance = [ { name: 'SetupWizard', - path: '/setup-wizard', + path: '/install', component: SetupWizard, meta: { requiresAuth: false @@ -467,6 +468,14 @@ const routesMaintenance = [ requiresAuth: false, }, }, + { + name: 'InstallationDisclaimer', + path: '/setup-wizard/installation-disclaimer', + component: InstallationDisclaimer, + meta: { + requiresAuth: false, + }, + }, { name: 'SubscriptionService', path: '/setup-wizard/subscription-service', diff --git a/resources/js/views/SetupWIzard/Database.vue b/resources/js/views/SetupWIzard/Database.vue index 9a55a276..5e1b305b 100644 --- a/resources/js/views/SetupWIzard/Database.vue +++ b/resources/js/views/SetupWIzard/Database.vue @@ -113,7 +113,7 @@ }, computed: { submitButtonText() { - return this.isLoading ? 'Testing Database Connection' : 'Test your Connection and Continue' + return this.isLoading ? 'Testing and Installing Database' : 'Test Connection and Install Database' } }, data() { @@ -170,7 +170,7 @@ this.isLoading = false // Redirect to next step - this.$router.push({name: 'SubscriptionService'}) + this.$router.push({name: 'InstallationDisclaimer'}) }) .catch(error => { diff --git a/resources/js/views/SetupWIzard/InstallationDisclaimer.vue b/resources/js/views/SetupWIzard/InstallationDisclaimer.vue new file mode 100644 index 00000000..4237746e --- /dev/null +++ b/resources/js/views/SetupWIzard/InstallationDisclaimer.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/resources/js/views/SetupWIzard/PurchaseCode.vue b/resources/js/views/SetupWIzard/PurchaseCode.vue index e62cf744..ca2b4d7c 100644 --- a/resources/js/views/SetupWIzard/PurchaseCode.vue +++ b/resources/js/views/SetupWIzard/PurchaseCode.vue @@ -7,7 +7,7 @@

Setup Wizard

-

Please verify your purchase code before continue to set up your application.

+

Please set your purchase code before continue to set up your application.

@@ -56,7 +56,7 @@ data() { return { isLoading: false, - purchaseCode: 'e3420e63-ce6f-4d04-9b3e-f7f5cc6af7c6' + purchaseCode: 'e3420e63-ce6f-4d04-9b3e-f7f5cc6af7c6', } }, methods: { @@ -80,6 +80,8 @@ // End loading this.isLoading = false + localStorage.setItem('purchase_code', this.purchaseCode) + // Redirect to next step this.$router.push({name: 'Database'}) }) diff --git a/resources/js/views/SetupWIzard/StripeCredentials.vue b/resources/js/views/SetupWIzard/StripeCredentials.vue index a4e317bb..0f762a49 100644 --- a/resources/js/views/SetupWIzard/StripeCredentials.vue +++ b/resources/js/views/SetupWIzard/StripeCredentials.vue @@ -662,10 +662,10 @@ }, ], stripeCredentials: { - key: '', - secret: '', - webhookSecret: '', - currency: '', + key: 'pk_test_51GsACaCBETHMUxzVsYkeApHtqb85paMuye7G77PDDQ28kXqDJ5HTmqLi13aM6xee81OQK1fhkTZ7vmDiWLStU9160061Yb2MtL', + secret: 'sk_test_51GsACaCBETHMUxzVviYCrv0CeZMyWAOfBPe4uH5rkKJcJxrXhIciWQTr7UB1sgw9geoJMkNDVSWBQW36tuAsVznd00zhNHXhok', + webhookSecret: 'whsec_eKrDhqtpbMUXOKqrUHf78SrZxHHYOdrf', + currency: 'USD', } } }, diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 925cc181..4dbfdaac 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -6,44 +6,66 @@ - {{ config('vuefilemanager.app_name') }} | {{ __('vuefilemanager.app_description') }} + {{ isset($settings->app_title) && $settings->app_title ? $settings->app_title : 'VueFileManager' }} | {{ isset($settings->app_description) && $settings->app_description ? $settings->app_description : 'Your self-hosted storage cloud software powered by Laravel and Vue' }} - + {{--StyleSheet--}} {{-- Apple Mobile Web App--}} - + + + {{--Icons--}} + {{--Format Detection--}} -
@if(env('APP_ENV') !== 'local') + + {{--Application production script--}} + + {{--Global site tag (gtag.js) - Google Analytics--}} + @if(isset($settings->google_analytics) && $settings->google_analytics) + + + @endif @else + {{--Application development script--}} @endif diff --git a/storage/framework/cache/data/3a/90/3a9055585a042324f4c9de4b2836d979bd8e3fa9 b/storage/framework/cache/data/3a/90/3a9055585a042324f4c9de4b2836d979bd8e3fa9 new file mode 100644 index 00000000..a9708265 --- /dev/null +++ b/storage/framework/cache/data/3a/90/3a9055585a042324f4c9de4b2836d979bd8e3fa9 @@ -0,0 +1 @@ +9999999999a:2:{i:0;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:2000;s:14:"amount_decimal";s:4:"2000";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593685392;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_HZYg39TNtwkP8e";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_HZYg39TNtwkP8e";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593685390;s:11:"description";s:17:"for real tru mans";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"999";}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:1593685392;}}i:1;a:2:{s:4:"plan";a:20:{s:2:"id";s:6:"fdsfds";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:2200;s:14:"amount_decimal";s:4:"2200";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593616395;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_HZG82OMrPXyWyA";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_HZG82OMrPXyWyA";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593616395;s:11:"description";s:6:"fdsfsd";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:2:"22";}s:4:"name";s:6:"fdsfds";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593616395;}}} \ No newline at end of file diff --git a/storage/framework/cache/data/44/d1/44d142505dd1a3b497197e2f459d2aec779e9ed6 b/storage/framework/cache/data/44/d1/44d142505dd1a3b497197e2f459d2aec779e9ed6 new file mode 100644 index 00000000..ec26796d --- /dev/null +++ b/storage/framework/cache/data/44/d1/44d142505dd1a3b497197e2f459d2aec779e9ed6 @@ -0,0 +1 @@ +1593685585i:1593685585; \ No newline at end of file diff --git a/storage/framework/cache/data/a3/26/a3260a8cb32b241d3658f999f995858bba84948d b/storage/framework/cache/data/a3/26/a3260a8cb32b241d3658f999f995858bba84948d new file mode 100644 index 00000000..e04894f1 --- /dev/null +++ b/storage/framework/cache/data/a3/26/a3260a8cb32b241d3658f999f995858bba84948d @@ -0,0 +1 @@ +9999999999a: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:2000;s:14:"amount_decimal";s:4:"2000";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593685392;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_HZYg39TNtwkP8e";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_HZYg39TNtwkP8e";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593685390;s:11:"description";s:17:"for real tru mans";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"999";}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:1593685392;}} \ No newline at end of file diff --git a/storage/framework/cache/data/c2/4f/c24f92750673b2169c8cb7bfbc999cfa8457dc7c b/storage/framework/cache/data/c2/4f/c24f92750673b2169c8cb7bfbc999cfa8457dc7c new file mode 100644 index 00000000..c6919772 --- /dev/null +++ b/storage/framework/cache/data/c2/4f/c24f92750673b2169c8cb7bfbc999cfa8457dc7c @@ -0,0 +1 @@ +1593685585i:1; \ No newline at end of file