diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index 10c5213a..601a4302 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -60,7 +60,7 @@ class DashboardController extends Controller public function new_registrations() { return new UsersCollection( - User::take(5)->orderByDesc('created_at')->get() + User::take(7)->orderByDesc('created_at')->get() ); } } diff --git a/app/Http/Controllers/Admin/PagesController.php b/app/Http/Controllers/Admin/PagesController.php index 8349a000..1d766684 100644 --- a/app/Http/Controllers/Admin/PagesController.php +++ b/app/Http/Controllers/Admin/PagesController.php @@ -45,9 +45,7 @@ class PagesController extends Controller public function update(Request $request, $slug) { $page = Page::where('slug', $slug)->first(); - $page->update([ - $request->name => $request->value - ]); + $page->update(make_single_input($request)); return response('Done', 204); } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 1108fc62..0bf772b6 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -122,7 +122,9 @@ class UserController extends Controller return new UserResource($user); } - $user->update($request->input('attributes')); + // Update user role + $user->role = $request->input('attributes.role'); + $user->save(); return new UserResource($user); } @@ -181,7 +183,7 @@ class UserController extends Controller } // Create user - $user = User::create([ + $user = User::forceCreate([ 'avatar' => $request->hasFile('avatar') ? $avatar : null, 'name' => $request->name, 'role' => $request->role, @@ -190,7 +192,7 @@ class UserController extends Controller ]); // Create settings - $settings = UserSettings::create([ + $settings = UserSettings::forceCreate([ 'user_id' => $user->id, 'storage_capacity' => $request->storage_capacity, ]); diff --git a/app/Http/Controllers/AppFunctionsController.php b/app/Http/Controllers/AppFunctionsController.php index bdd7a423..94303136 100644 --- a/app/Http/Controllers/AppFunctionsController.php +++ b/app/Http/Controllers/AppFunctionsController.php @@ -18,6 +18,33 @@ use Symfony\Component\HttpKernel\Exception\HttpException; class AppFunctionsController extends Controller { + /** + * List of allowed settings to get from public request + * + * @var array + */ + private $whitelist = [ + 'footer_content', + 'get_started_description', + 'get_started_title', + 'pricing_description', + 'pricing_title', + 'feature_description_3', + 'feature_title_3', + 'feature_description_2', + 'feature_title_2', + 'feature_description_1', + 'feature_title_1', + 'features_description', + 'features_title', + 'header_description', + 'header_title', + 'section_get_started', + 'section_pricing_content', + 'section_feature_boxes', + 'section_features', + ]; + /** * Show index page * @@ -31,6 +58,7 @@ class AppFunctionsController extends Controller $connection = $this->get_setup_status(); $settings = json_decode(Setting::all()->pluck('value', 'name')->toJson()); + $legal = Page::whereIn('slug', ['terms-of-service', 'privacy-policy', 'cookie-policy'])->get(['visibility', 'title', 'slug']); } catch (PDOException $e) { $connection = 'setup-database'; @@ -39,6 +67,7 @@ class AppFunctionsController extends Controller return view("index") ->with('settings', $settings) + ->with('legal', $legal) ->with('installation', $connection); } @@ -72,6 +101,32 @@ class AppFunctionsController extends Controller ); } + /** + * Get selected settings from public route + * + * @param Request $request + * @return mixed + */ + public function get_settings(Request $request) + { + $column = $request->get('column'); + + if (strpos($column, '|') !== false) { + + $columns = collect(explode('|', $column)); + + $columns->each(function ($column) { + if (! in_array($column, $this->whitelist)) abort(401); + }); + + return Setting::whereIn('name', $columns)->pluck('value', 'name'); + } + + if (! in_array($column, $this->whitelist)) abort(401); + + return Setting::where('name', $column)->pluck('value', 'name'); + } + /** * Check if setup wizard was passed * diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 744fa22e..772970f8 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Auth; use App\Http\Requests\Auth\CheckAccountRequest; +use App\Setting; use App\User; use App\UserSettings; use Illuminate\Http\Request; @@ -64,8 +65,10 @@ class AuthController extends Controller */ public function register(Request $request) { + $settings = Setting::whereIn('name', ['storage_default', 'registration'])->pluck('value', 'name'); + // Check if account registration is enabled - if (!config('vuefilemanager.registration')) abort(401); + if (! intval($settings['registration'])) abort(401); // Validate request $request->validate([ @@ -81,11 +84,12 @@ class AuthController extends Controller 'password' => Hash::make($request->password), ]); + $default_storage = Setting::where('name', 'storage_default')->first(); + // Create settings - // TODO: set default storage capacity $settings = UserSettings::create([ 'user_id' => $user->id, - 'storage_capacity' => 5, + 'storage_capacity' => $settings['storage_default'], ]); $response = Route::dispatch(self::make_login_request($request)); diff --git a/app/Http/Controllers/General/SetupWizardController.php b/app/Http/Controllers/General/SetupWizardController.php index fd0bca37..f39e42ac 100644 --- a/app/Http/Controllers/General/SetupWizardController.php +++ b/app/Http/Controllers/General/SetupWizardController.php @@ -569,7 +569,7 @@ class SetupWizardController extends Controller $storage_capacity = Setting::where('name', 'storage_default')->first(); // Create settings - UserSettings::create([ + UserSettings::forceCreate([ 'user_id' => $user->id, 'storage_capacity' => $storage_capacity->value, ]); @@ -592,9 +592,10 @@ class SetupWizardController extends Controller 'value' => $request->purchase_code, ]); - // Create legal pages + // Create legal pages and index content if ($request->license === 'Extended') { Artisan::call('db:seed --class=PageSeeder'); + Artisan::call('db:seed --class=ContentSeeder'); } // Retrieve access token diff --git a/app/Http/Controllers/SettingController.php b/app/Http/Controllers/SettingController.php index e369b50e..2d39e3d6 100644 --- a/app/Http/Controllers/SettingController.php +++ b/app/Http/Controllers/SettingController.php @@ -99,7 +99,7 @@ class SettingController extends Controller setEnvironmentValue($col['name'], $col['value']); }); - // Clear cache + // Clear config cache Artisan::call('config:clear'); return response('Done', 204); diff --git a/app/Http/Controllers/User/AccountController.php b/app/Http/Controllers/User/AccountController.php index 9a471dfc..e4b2346d 100644 --- a/app/Http/Controllers/User/AccountController.php +++ b/app/Http/Controllers/User/AccountController.php @@ -81,9 +81,6 @@ class AccountController extends Controller return Demo::response_204(); } - // Check role - if ($request->has('role')) abort(403); - // Update data if ($request->hasFile('avatar')) { diff --git a/app/Http/Controllers/WebhookController.php b/app/Http/Controllers/WebhookController.php index 012a8b03..0a1d139d 100644 --- a/app/Http/Controllers/WebhookController.php +++ b/app/Http/Controllers/WebhookController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Setting; use App\User; use Illuminate\Http\Request; @@ -12,15 +13,19 @@ class WebhookController extends CashierController /** * Handle a cancelled customer from a Stripe subscription. * - * @param array $payload + * @param array $payload * @return \Symfony\Component\HttpFoundation\Response */ - public function handleCustomerSubscriptionDeleted($payload) { - + public function handleCustomerSubscriptionDeleted($payload) + { + // Get user $user = User::where('stripe_id', $payload['data']['object']['customer'])->firstOrFail(); - // TODO: set default capacity - $user->settings->update(['storage_capacity' => 1]); + // Get default storage capacity + $default_storage = Setting::where('name', 'storage_default')->first(); + + // Update storage capacity + $user->settings()->update(['storage_capacity' => $default_storage->value]); return $this->successMethod(); } diff --git a/app/Http/Resources/UserResource.php b/app/Http/Resources/UserResource.php index 5018451f..76a4b857 100644 --- a/app/Http/Resources/UserResource.php +++ b/app/Http/Resources/UserResource.php @@ -26,6 +26,7 @@ class UserResource extends JsonResource 'id' => (string)$this->id, 'type' => 'user', 'attributes' => [ + 'storage_capacity' => $this->settings->storage_capacity, 'subscription' => $this->subscribed('main'), 'stripe_customer' => is_null($this->stripe_id) ? false : true, 'name' => env('APP_DEMO') ? $faker->name : $this->name, diff --git a/app/User.php b/app/User.php index f9cd412f..4c2e4d7a 100644 --- a/app/User.php +++ b/app/User.php @@ -80,13 +80,15 @@ class User extends Authenticatable { use HasApiTokens, Notifiable, Billable; + protected $guarded = ['id', 'role']; + /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ - 'name', 'email', 'password', 'avatar', 'role', + 'name', 'email', 'password', 'avatar', ]; /** diff --git a/app/UserSettings.php b/app/UserSettings.php index 761e630f..6cb38157 100644 --- a/app/UserSettings.php +++ b/app/UserSettings.php @@ -8,5 +8,5 @@ class UserSettings extends Model { public $timestamps = false; - protected $guarded = ['id']; + protected $guarded = ['id', 'storage_capacity']; } diff --git a/database/seeds/ContentSeeder.php b/database/seeds/ContentSeeder.php new file mode 100644 index 00000000..49bc5821 --- /dev/null +++ b/database/seeds/ContentSeeder.php @@ -0,0 +1,98 @@ + 'section_features', + 'value' => '1', + ], + [ + 'name' => 'section_feature_boxes', + 'value' => '1', + ], + [ + 'name' => 'section_pricing_content', + 'value' => '1', + ], + [ + 'name' => 'section_get_started', + 'value' => '1', + ], + [ + 'name' => 'header_title', + 'value' => 'Simple & Powerfull Personal Cloud Storage', + ], + [ + 'name' => 'header_description', + 'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Trully freedom.', + ], + [ + 'name' => 'features_title', + 'value' => 'The Fastest Growing File Manager on the CodeCanyon Market', + ], + [ + 'name' => 'features_description', + 'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Trully freedom.', + ], + [ + 'name' => 'feature_title_1', + 'value' => 'Truly Freedom', + ], + [ + 'name' => 'feature_description_1', + 'value' => 'You have full control over VueFileManager, no third authorities will control your service or usage, only you.', + ], + [ + 'name' => 'feature_title_2', + 'value' => 'The Sky is the Limit', + ], + [ + 'name' => 'feature_description_2', + 'value' => 'VueFileManager is cloud storage software. You have to install and running application on your own server hosting.', + ], + [ + 'name' => 'feature_title_3', + 'value' => 'No Monthly Fees', + ], + [ + 'name' => 'feature_description_3', + 'value' => 'When you running VueFileManager on your own server hosting, anybody can\'t control your content or resell your user data. Your data is safe.', + ], + [ + 'name' => 'pricing_title', + 'value' => 'Pick the Best Plan For Your Needs', + ], + [ + 'name' => 'pricing_description', + 'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Trully freedom.', + ], + [ + 'name' => 'get_started_title', + 'value' => 'Ready to Get Started
With Us?', + ], + [ + 'name' => 'get_started_description', + 'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Trully freedom.', + ], + [ + 'name' => 'footer_content', + 'value' => '© 2020 Simple & Powerfull Personal Cloud Storage. Developed by Hi5Ve.Digital', + ], + ]); + + $columns->each(function ($content) { + Setting::create($content); + }); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index a6a6f1af..bf7648ed 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -13,5 +13,6 @@ class DatabaseSeeder extends Seeder { $this->call(PageSeeder::class); $this->call(SettingSeeder::class); + $this->call(ContentSeeder::class); } } diff --git a/public/assets/images/admin/feature-boxes.jpg b/public/assets/images/admin/feature-boxes.jpg new file mode 100644 index 00000000..b6990be3 Binary files /dev/null and b/public/assets/images/admin/feature-boxes.jpg differ diff --git a/public/assets/images/admin/get-started-content.jpg b/public/assets/images/admin/get-started-content.jpg new file mode 100644 index 00000000..e7823168 Binary files /dev/null and b/public/assets/images/admin/get-started-content.jpg differ diff --git a/public/assets/images/admin/main-features.jpg b/public/assets/images/admin/main-features.jpg new file mode 100644 index 00000000..d58a2e77 Binary files /dev/null and b/public/assets/images/admin/main-features.jpg differ diff --git a/public/assets/images/admin/main-header.jpg b/public/assets/images/admin/main-header.jpg new file mode 100644 index 00000000..e8bcf75d Binary files /dev/null and b/public/assets/images/admin/main-header.jpg differ diff --git a/public/assets/images/admin/pricing-content.jpg b/public/assets/images/admin/pricing-content.jpg new file mode 100644 index 00000000..6a79aedb Binary files /dev/null and b/public/assets/images/admin/pricing-content.jpg differ diff --git a/public/mix-manifest.json b/public/mix-manifest.json index be7fb912..1b8ef409 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -111,5 +111,113 @@ "/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.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" } diff --git a/resources/babel/langs.babel b/resources/babel.babel similarity index 98% rename from resources/babel/langs.babel rename to resources/babel.babel index 4955642c..252d8488 100644 --- a/resources/babel/langs.babel +++ b/resources/babel.babel @@ -10,8 +10,8 @@ --> vue-json - langs.babel - ../../ + babel.babel + @@ -5547,6 +5547,184 @@ + + page_index + + + get_started_button + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + menu + + + contact_us + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + log_in + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + pricing + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + sign_in + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + + + sign_feature_1 + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + sign_feature_2 + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + sign_up_button + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + + + page_login @@ -5749,6 +5927,27 @@ page_registration + + agreement + false + + + + + + en-US + false + + + sk-SK + false + + + zh-CHS + false + + + button_create_account false @@ -10423,28 +10622,28 @@ en-US - ../js/i18n/lang/en.json + js/i18n/lang/en.json sk-SK - ../js/i18n/lang/sk.json + js/i18n/lang/sk.json zh-CHS - ../js/i18n/lang/cn.json + js/i18n/lang/cn.json - ../js/i18n/lang/en.json + js/i18n/lang/en.json - ../js/i18n/lang/sk.json + js/i18n/lang/sk.json - ../js/i18n/lang/cn.json + js/i18n/lang/cn.json diff --git a/resources/js/components/Index/Components/PricingTables.vue b/resources/js/components/Index/Components/PricingTables.vue index 9dc4a8e2..6fbf8061 100644 --- a/resources/js/components/Index/Components/PricingTables.vue +++ b/resources/js/components/Index/Components/PricingTables.vue @@ -11,11 +11,11 @@
{{ plan.data.attributes.capacity_formatted }} - Of Storage Capacity + {{ $t('page_pricing_tables.storage_capacity') }}
- {{ plan.data.attributes.price }}/Mo. + {{ plan.data.attributes.price }}/{{ $t('global.monthly_ac') }}
diff --git a/resources/js/components/Index/IndexGetStarted.vue b/resources/js/components/Index/IndexGetStarted.vue index 0cfb9d41..7ad11f8c 100644 --- a/resources/js/components/Index/IndexGetStarted.vue +++ b/resources/js/components/Index/IndexGetStarted.vue @@ -1,15 +1,15 @@