From 5a9f5813c8533ffc573c09f7dd084e9f036d0bc1 Mon Sep 17 00:00:00 2001
From: carodej
Date: Thu, 9 Jul 2020 10:56:17 +0200
Subject: [PATCH] dark mode update
---
.../Controllers/Admin/PagesController.php | 54 ++
.../Controllers/AppFunctionsController.php | 41 +-
.../General/SetupWizardController.php | 26 +-
app/Http/Helpers/helpers.php | 50 ++
app/Http/Mail/SendSupportForm.php | 40 +
.../PublicPages/SendMessageRequest.php | 31 +
app/Http/Resources/PageCollection.php | 23 +
app/Http/Resources/PageResource.php | 31 +
app/Http/Tools/Editor.php | 5 +-
app/Page.php | 12 +
app/User.php | 12 +
.../2020_07_08_080255_create_pages_table.php | 34 +
database/seeds/DatabaseSeeder.php | 4 +-
database/seeds/InvoicesSeeder.php | 65 --
database/seeds/PageSeeder.php | 40 +
database/seeds/PlansSeeder.php | 42 -
database/seeds/SettingSeeder.php | 36 +-
.../vuefilemanager-horizontal-logo-dark.svg | 20 +
.../images/vuefilemanager-logo-icon.svg | 15 +
.../images/vuefilemanager-screenshot-dark.png | Bin 0 -> 690425 bytes
.../vuefilemanager-screenshot-light.png | Bin 0 -> 755834 bytes
.../images/vuefilemanager-screenshot.png | Bin 830355 -> 0 bytes
public/css/app.css | 1 -
public/mix-manifest.json | 747 +++++-------------
resources/js/App.vue | 7 +-
.../Admin/WidgetLatestRegistrations.vue | 2 +-
.../js/components/Admin/WidgetTotals.vue | 12 +
.../js/components/Admin/WidgetWrapper.vue | 12 +
.../js/components/FilesView/ButtonBase.vue | 9 +-
.../components/FilesView/DesktopToolbar.vue | 8 +-
.../components/Index/Components/PageTitle.vue | 4 +-
.../Index/Components/PricingTables.vue | 50 +-
.../js/components/Index/IndexGetStarted.vue | 13 +-
.../components/Index/IndexHeroScreenshot.vue | 44 +-
.../js/components/Index/IndexMainFeatures.vue | 37 +-
.../js/components/Index/IndexNavigation.vue | 14 +-
.../js/components/Index/IndexPageFooter.vue | 55 +-
.../js/components/Index/IndexPageHeader.vue | 9 +
.../components/Index/IndexPricingTables.vue | 25 +-
.../js/components/Others/Forms/FormLabel.vue | 9 +
.../js/components/Others/Forms/ImageInput.vue | 3 +-
.../js/components/Others/Forms/InfoBox.vue | 16 +-
.../components/Others/Forms/SelectInput.vue | 13 +-
.../components/Others/PlanPricingTables.vue | 38 +
.../components/Others/StorageItemDetail.vue | 2 +-
.../Others/Tables/DatatableCellImage.vue | 14 +
.../Others/Tables/DatatableWrapper.vue | 2 +-
resources/js/helpers.js | 8 +-
resources/js/router.js | 22 +
resources/js/views/Admin.vue | 11 +-
.../AppSettingsTabs/Appearance.vue | 15 +-
.../AppSettings/AppSettingsTabs/Others.vue | 4 +-
resources/js/views/Admin/Dashboard.vue | 25 +-
resources/js/views/Admin/Pages.vue | 178 +++++
resources/js/views/Admin/Pages/PageEdit.vue | 114 +++
resources/js/views/Admin/Users.vue | 18 +-
.../Admin/Users/UserTabs/UserStorage.vue | 2 +-
resources/js/views/Auth/CreateNewPassword.vue | 4 +-
resources/js/views/Auth/ForgottenPassword.vue | 4 +-
resources/js/views/Auth/SignIn.vue | 7 +-
resources/js/views/Auth/SignUp.vue | 26 +-
resources/js/views/FilePages/Files.vue | 2 +-
resources/js/views/Index/ContactUs.vue | 135 ++--
resources/js/views/Index/DynamicPage.vue | 43 +-
resources/js/views/Index/SaaSLandingPage.vue | 17 +-
resources/js/views/Profile.vue | 6 +-
resources/js/views/SetupWIzard/AppSetup.vue | 13 +
.../js/views/SetupWIzard/PurchaseCode.vue | 9 +
resources/js/views/Upgrade/UpgradeBilling.vue | 58 ++
resources/js/views/Upgrade/UpgradePlan.vue | 9 +
resources/sass/app.scss | 17 +-
resources/sass/vue-file-manager/_auth.scss | 7 +
resources/sass/vue-file-manager/_forms.scss | 14 +
.../sass/vue-file-manager/_landing-page.scss | 8 +-
.../sass/vue-file-manager/_setup_wizard.scss | 14 +
resources/views/index.blade.php | 3 +-
.../views/mails/contact-message.blade.php | 1 +
routes/api.php | 9 +
.../1c616af560fef7e36fda03094bba2b666636f36f | Bin 6766 -> 0 bytes
.../2101d0482c1d6143d9f389063c1ab3d14fc9a75e | Bin 5667 -> 0 bytes
.../257c698a6aebe90aaad2c56d200703753b5d1ed5 | 1 -
.../3a9055585a042324f4c9de4b2836d979bd8e3fa9 | 2 +-
.../44d142505dd1a3b497197e2f459d2aec779e9ed6 | 2 +-
.../5b8ec65caf804248c26efd3043868cdc54d52a4c | Bin 6810 -> 0 bytes
.../a663cdace4dc048cf78c535fc8f9e6cc088ea346 | 1 -
.../b172d2349fbf57eb748881b118e0a736bf7498ec | Bin 6770 -> 6770 bytes
.../be1ad3950d2757d35f513a5571fd3caa7a6bb016 | 1 +
.../c24f92750673b2169c8cb7bfbc999cfa8457dc7c | 2 +-
webpack.mix.js | 6 +
89 files changed, 1633 insertions(+), 912 deletions(-)
create mode 100644 app/Http/Controllers/Admin/PagesController.php
create mode 100644 app/Http/Mail/SendSupportForm.php
create mode 100644 app/Http/Requests/PublicPages/SendMessageRequest.php
create mode 100644 app/Http/Resources/PageCollection.php
create mode 100644 app/Http/Resources/PageResource.php
create mode 100644 app/Page.php
create mode 100644 database/migrations/2020_07_08_080255_create_pages_table.php
delete mode 100644 database/seeds/InvoicesSeeder.php
create mode 100644 database/seeds/PageSeeder.php
delete mode 100644 database/seeds/PlansSeeder.php
create mode 100644 public/assets/images/vuefilemanager-horizontal-logo-dark.svg
create mode 100644 public/assets/images/vuefilemanager-logo-icon.svg
create mode 100644 public/assets/images/vuefilemanager-screenshot-dark.png
create mode 100644 public/assets/images/vuefilemanager-screenshot-light.png
delete mode 100644 public/assets/images/vuefilemanager-screenshot.png
delete mode 100644 public/css/app.css
create mode 100644 resources/js/views/Admin/Pages.vue
create mode 100644 resources/js/views/Admin/Pages/PageEdit.vue
create mode 100644 resources/views/mails/contact-message.blade.php
delete mode 100644 storage/framework/cache/data/1c/61/1c616af560fef7e36fda03094bba2b666636f36f
delete mode 100644 storage/framework/cache/data/21/01/2101d0482c1d6143d9f389063c1ab3d14fc9a75e
delete mode 100644 storage/framework/cache/data/25/7c/257c698a6aebe90aaad2c56d200703753b5d1ed5
delete mode 100644 storage/framework/cache/data/5b/8e/5b8ec65caf804248c26efd3043868cdc54d52a4c
delete mode 100644 storage/framework/cache/data/a6/63/a663cdace4dc048cf78c535fc8f9e6cc088ea346
create mode 100644 storage/framework/cache/data/be/1a/be1ad3950d2757d35f513a5571fd3caa7a6bb016
diff --git a/app/Http/Controllers/Admin/PagesController.php b/app/Http/Controllers/Admin/PagesController.php
new file mode 100644
index 00000000..8349a000
--- /dev/null
+++ b/app/Http/Controllers/Admin/PagesController.php
@@ -0,0 +1,54 @@
+first()
+ );
+ }
+
+ /**
+ * Update page content
+ *
+ * @param Request $request
+ * @param $slug
+ * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
+ */
+ public function update(Request $request, $slug) {
+ $page = Page::where('slug', $slug)->first();
+
+ $page->update([
+ $request->name => $request->value
+ ]);
+
+ return response('Done', 204);
+ }
+}
diff --git a/app/Http/Controllers/AppFunctionsController.php b/app/Http/Controllers/AppFunctionsController.php
index 5ee63ee6..bdd7a423 100644
--- a/app/Http/Controllers/AppFunctionsController.php
+++ b/app/Http/Controllers/AppFunctionsController.php
@@ -2,11 +2,17 @@
namespace App\Http\Controllers;
+use App\Content;
+use App\Http\Requests\PublicPages\SendMessageRequest;
+use App\Http\Resources\PageResource;
+use App\Mail\SendSupportForm;
+use App\Page;
use App\Setting;
use Doctrine\DBAL\Driver\PDOException;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Mail;
use Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -20,6 +26,9 @@ class AppFunctionsController extends Controller
public function index()
{
try {
+ // Try to connect to database
+ \DB::getPdo();
+
$connection = $this->get_setup_status();
$settings = json_decode(Setting::all()->pluck('value', 'name')->toJson());
@@ -33,6 +42,36 @@ class AppFunctionsController extends Controller
->with('installation', $connection);
}
+ /**
+ * Send contact message from pages
+ *
+ * @param SendMessageRequest $request
+ * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
+ */
+ public function contact_form(SendMessageRequest $request)
+ {
+ // Get receiver email
+ $receiver = Setting::where('name', 'contact_email')->first();
+
+ // Send message
+ Mail::to($receiver->value)->send(new SendSupportForm($request->all()));
+
+ return response('Done', 200);
+ }
+
+ /**
+ * Get single page content
+ *
+ * @param $slug
+ * @return PageResource
+ */
+ public function get_page($slug)
+ {
+ return new PageResource(
+ Page::where('slug', $slug)->first()
+ );
+ }
+
/**
* Check if setup wizard was passed
*
@@ -40,8 +79,6 @@ class AppFunctionsController extends Controller
*/
private function get_setup_status(): string
{
- \DB::getPdo();
-
$setup_success = Setting::where('name', 'setup_wizard_success')->first();
$connection = $setup_success ? 'setup-done' : 'setup-disclaimer';
diff --git a/app/Http/Controllers/General/SetupWizardController.php b/app/Http/Controllers/General/SetupWizardController.php
index 4151b23c..20e8c2ce 100644
--- a/app/Http/Controllers/General/SetupWizardController.php
+++ b/app/Http/Controllers/General/SetupWizardController.php
@@ -194,16 +194,12 @@ class SetupWizardController extends Controller
'value' => $request->currency,
],
[
- 'name' => 'stripe_webhook_secret',
- 'value' => $request->webhookSecret,
+ 'name' => 'payments_configured',
+ 'value' => 1,
],
[
- 'name' => 'stripe_secret_key',
- 'value' => $request->secret,
- ],
- [
- 'name' => 'stripe_publishable_key',
- 'value' => $request->key,
+ 'name' => 'payments_active',
+ 'value' => 1,
],
]);
@@ -475,6 +471,11 @@ class SetupWizardController extends Controller
$logo = store_system_image($request->file('logo'), 'system');
}
+ // Store Logo horizontal
+ if ($request->hasFile('logo_horizontal')) {
+ $logo_horizontal = store_system_image($request->file('logo_horizontal'), 'system');
+ }
+
// Store favicon
if ($request->hasFile('favicon')) {
$favicon = store_system_image($request->file('favicon'), 'system');
@@ -494,6 +495,10 @@ class SetupWizardController extends Controller
'name' => 'app_logo',
'value' => $request->hasFile('logo') ? $logo : null,
],
+ [
+ 'name' => 'app_logo_horizontal',
+ 'value' => $request->hasFile('logo_horizontal') ? $logo_horizontal : null,
+ ],
[
'name' => 'app_favicon',
'value' => $request->hasFile('favicon') ? $favicon : null,
@@ -587,6 +592,11 @@ class SetupWizardController extends Controller
'value' => $request->purchase_code,
]);
+ // Create legal pages
+ if ($request->license === 'Extended') {
+ Artisan::call('db:seed --class=PageSeeder');
+ }
+
// Retrieve access token
$response = Route::dispatch(self::make_login_request($request));
diff --git a/app/Http/Helpers/helpers.php b/app/Http/Helpers/helpers.php
index 8c433c1c..cb02d126 100644
--- a/app/Http/Helpers/helpers.php
+++ b/app/Http/Helpers/helpers.php
@@ -2,6 +2,7 @@
use App\FileManagerFile;
use App\FileManagerFolder;
+use App\Setting;
use App\Share;
use ByteUnits\Metric;
use Carbon\Carbon;
@@ -10,6 +11,55 @@ use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image;
+function get_setting($setting) {
+ return Setting::where('name', $setting)->first()->value;
+}
+
+/**
+ * Create paragraph from text
+ *
+ * @param $str
+ * @return mixed|null|string|string[]
+ */
+function add_paragraphs($str)
+{
+ // Trim whitespace
+ if (($str = trim($str)) === '') return '';
+
+ // Standardize newlines
+ $str = str_replace(array("\r\n", "\r"), "\n", $str);
+
+ // Trim whitespace on each line
+ $str = preg_replace('~^[ \t]+~m', '', $str);
+ $str = preg_replace('~[ \t]+$~m', '', $str);
+
+ // The following regexes only need to be executed if the string contains html
+ if ($html_found = (strpos($str, '<') !== FALSE)) {
+ // Elements that should not be surrounded by p tags
+ $no_p = '(?:p|div|article|header|aside|hgroup|canvas|output|progress|section|figcaption|audio|video|nav|figure|footer|video|details|main|menu|summary|h[1-6r]|ul|ol|li|blockquote|d[dlt]|pre|t[dhr]|t(?:able|body|foot|head)|c(?:aption|olgroup)|form|s(?:elect|tyle)|a(?:ddress|rea)|ma(?:p|th))';
+
+ // Put at least two linebreaks before and after $no_p elements
+ $str = preg_replace('~^<' . $no_p . '[^>]*+>~im', "\n$0", $str);
+ $str = preg_replace('~' . $no_p . '\s*+>$~im', "$0\n", $str);
+ }
+
+ // Do the magic!
+ $str = '
' . trim($str) . '
';
+ $str = preg_replace('~\n{2,}~', "
\n\n", $str);
+
+ // The following regexes only need to be executed if the string contains html
+ if ($html_found !== FALSE) {
+ // Remove p tags around $no_p elements
+ $str = preg_replace('~
(?=?' . $no_p . '[^>]*+>)~i', '', $str);
+ $str = preg_replace('~(?' . $no_p . '[^>]*+>)
~i', '$1', $str);
+ }
+
+ // Convert single linebreaks to
+ $str = preg_replace('~(?\n", $str);
+
+ return $str;
+}
+
/**
* Set environment value
*
diff --git a/app/Http/Mail/SendSupportForm.php b/app/Http/Mail/SendSupportForm.php
new file mode 100644
index 00000000..889f8a9b
--- /dev/null
+++ b/app/Http/Mail/SendSupportForm.php
@@ -0,0 +1,40 @@
+request = $request;
+ }
+
+ /**
+ * Build the message.
+ *
+ * @return $this
+ */
+ public function build()
+ {
+ $from = config('mail.from')['address'];
+
+ return $this->from($from)
+ ->replyTo($this->request['email'])
+ ->subject('New Contact Message from ' . $this->request['email'])
+ ->view('mails.contact-message')
+ ->with('request', $this->request);
+ }
+}
diff --git a/app/Http/Requests/PublicPages/SendMessageRequest.php b/app/Http/Requests/PublicPages/SendMessageRequest.php
new file mode 100644
index 00000000..1aafebf6
--- /dev/null
+++ b/app/Http/Requests/PublicPages/SendMessageRequest.php
@@ -0,0 +1,31 @@
+ 'required|email',
+ 'message' => 'required|string',
+ ];
+ }
+}
diff --git a/app/Http/Resources/PageCollection.php b/app/Http/Resources/PageCollection.php
new file mode 100644
index 00000000..9d693b0f
--- /dev/null
+++ b/app/Http/Resources/PageCollection.php
@@ -0,0 +1,23 @@
+ $this->collection,
+ ];
+ }
+}
diff --git a/app/Http/Resources/PageResource.php b/app/Http/Resources/PageResource.php
new file mode 100644
index 00000000..966dbf6f
--- /dev/null
+++ b/app/Http/Resources/PageResource.php
@@ -0,0 +1,31 @@
+ [
+ 'id' => $this->id,
+ 'type' => 'pages',
+ 'attributes' => [
+ 'visibility' => $this->visibility,
+ 'title' => $this->title,
+ 'slug' => $this->slug,
+ 'content' => $this->content,
+ 'content_formatted' => add_paragraphs($this->content),
+ ]
+ ],
+ ];
+ }
+}
diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php
index c7c50598..4dc4c39b 100644
--- a/app/Http/Tools/Editor.php
+++ b/app/Http/Tools/Editor.php
@@ -206,8 +206,11 @@ class Editor
$user_id = is_null($shared) ? Auth::id() : $shared->user_id;
$user_storage_used = user_storage_percentage($user_id, $file->getSize());
+ // Get storage limitation setup
+ $storage_limitation = get_setting('storage_limitation');
+
// Check if user can upload
- if (config('vuefilemanager.limit_storage_by_capacity') && $user_storage_used >= 100) {
+ if ($storage_limitation && $user_storage_used >= 100) {
abort(423, 'You exceed your storage limit!');
}
diff --git a/app/Page.php b/app/Page.php
new file mode 100644
index 00000000..e227e630
--- /dev/null
+++ b/app/Page.php
@@ -0,0 +1,12 @@
+ $this->used_capacity,
+ 'used_formatted' => Metric::bytes($this->used_capacity)->format(),
+ ];
+ }
+
return [
'used' => (float)get_storage_fill_percentage($this->used_capacity, $this->settings->storage_capacity),
+ 'used_formatted' => get_storage_fill_percentage($this->used_capacity, $this->settings->storage_capacity) . '%',
'capacity' => $this->settings->storage_capacity,
'capacity_formatted' => format_gigabytes($this->settings->storage_capacity),
];
diff --git a/database/migrations/2020_07_08_080255_create_pages_table.php b/database/migrations/2020_07_08_080255_create_pages_table.php
new file mode 100644
index 00000000..dbd3af42
--- /dev/null
+++ b/database/migrations/2020_07_08_080255_create_pages_table.php
@@ -0,0 +1,34 @@
+id();
+ $table->boolean('visibility');
+ $table->string('title');
+ $table->string('slug');
+ $table->longText('content');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('pages');
+ }
+}
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
index 7f750aa2..a6a6f1af 100644
--- a/database/seeds/DatabaseSeeder.php
+++ b/database/seeds/DatabaseSeeder.php
@@ -11,9 +11,7 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
- $this->call(PaymentGatewaysSeeder::class);
- $this->call(PlansSeeder::class);
- $this->call(InvoicesSeeder::class);
+ $this->call(PageSeeder::class);
$this->call(SettingSeeder::class);
}
}
diff --git a/database/seeds/InvoicesSeeder.php b/database/seeds/InvoicesSeeder.php
deleted file mode 100644
index 20b10d15..00000000
--- a/database/seeds/InvoicesSeeder.php
+++ /dev/null
@@ -1,65 +0,0 @@
- [
- 'billing_name' => 'VueFileManager',
- 'billing_address' => 'Somewhere 32',
- 'billing_state' => 'Washington',
- 'billing_city' => 'Manchester',
- 'billing_postal_code' => '04001',
- 'billing_country' => 'The USA',
- 'billing_phone_number' => '490321-6354774',
- 'billing_vat_number' => '7354724626246',
- ]
- ];
-
- $invoice = \App\Invoice::create([
- 'token' => \Illuminate\Support\Str::random(),
- 'order' => '200001',
- 'user_id' => 1,
- 'plan_id' => 1,
- 'seller' => [
- 'billing_name' => $seller['settings']['billing_name'],
- 'billing_address' => $seller['settings']['billing_address'],
- 'billing_state' => $seller['settings']['billing_state'],
- 'billing_city' => $seller['settings']['billing_city'],
- 'billing_postal_code' => $seller['settings']['billing_postal_code'],
- 'billing_country' => $seller['settings']['billing_country'],
- 'billing_phone_number' => $seller['settings']['billing_phone_number'],
- 'billing_vat_number' => $seller['settings']['billing_vat_number'],
- ],
- 'client' => [
- 'billing_name' => $user->settings->billing_name,
- 'billing_address' => $user->settings->billing_address,
- 'billing_state' => $user->settings->billing_state,
- 'billing_city' => $user->settings->billing_city,
- 'billing_postal_code' => $user->settings->billing_postal_code,
- 'billing_country' => $user->settings->billing_country,
- 'billing_phone_number' => $user->settings->billing_phone_number,
- ],
- 'bag' => [
- [
- 'description' => 'Subscription - Starter Pack',
- 'date' => '01-05-2020 01-06-2020',
- 'amount' => 2.99,
- ]
- ],
- 'notes' => '',
- 'total' => 2.99,
- 'currency' => 'USD',
- 'path' => '/invoices/200001-8HUrJkNdLKilNMeF.pdf',
- ]);
- }
-}
diff --git a/database/seeds/PageSeeder.php b/database/seeds/PageSeeder.php
new file mode 100644
index 00000000..bee675a8
--- /dev/null
+++ b/database/seeds/PageSeeder.php
@@ -0,0 +1,40 @@
+ 1,
+ 'title' => 'Terms of Service',
+ 'slug' => 'terms-of-service',
+ 'content' => 'Laoreet cum hendrerit iaculis arcu phasellus congue et elementum, pharetra risus imperdiet aptent posuere rutrum parturient blandit, dapibus tellus ridiculus potenti aliquam sociis turpis. Nullam commodo eget laoreet risus cursus vel placerat, in dapibus sociis gravida faucibus sodales, fringilla potenti elit semper iaculis ullamcorper. Dignissim vulputate pretium montes pellentesque mollis, consectetur adipiscing curabitur semper sem rhoncus, litora viverra curae proin.',
+ ],
+ [
+ 'visibility' => 1,
+ 'title' => 'Privacy Policy',
+ 'slug' => 'privacy-policy',
+ 'content' => 'Sit orci justo augue maecenas laoreet consectetur natoque magnis in viverra sagittis, himenaeos urna facilisis mus proin primis diam accumsan tristique inceptos. Primis quisque posuere sit praesent lobortis feugiat semper convallis facilisis, vivamus gravida ligula nostra curae eu donec duis parturient senectus, arcu dolor viverra penatibus natoque cum nisi commodo. Litora sociis mauris justo nullam suspendisse mattis maecenas nascetur congue phasellus cras ultricies posuere donec, dapibus egestas diam lacus ornare montes senectus tincidunt eu taciti sed consequat.',
+ ],
+ [
+ 'visibility' => 1,
+ 'title' => 'Cookie Policy',
+ 'slug' => 'cookie-policy',
+ 'content' => 'Metus penatibus ligula dolor natoque non habitasse laoreet facilisis, libero vivamus eget semper vulputate interdum integer, phasellus lorem enim blandit consectetur nullam sollicitudin. Hendrerit interdum luctus ut in molestie himenaeos eros cum laoreet parturient est, eu lectus hac et netus viverra dictumst congue elit sem senectus litora, fames scelerisque adipiscing inceptos fringilla montes sociosqu suscipit auctor potenti. Elementum lacus vulputate viverra ac morbi ligula ipsum facilisi, sit eu imperdiet lacinia congue dis vitae.',
+ ],
+ ]);
+
+ $columns->each(function ($page) {
+ Page::create($page);
+ });
+ }
+}
diff --git a/database/seeds/PlansSeeder.php b/database/seeds/PlansSeeder.php
deleted file mode 100644
index b36afd25..00000000
--- a/database/seeds/PlansSeeder.php
+++ /dev/null
@@ -1,42 +0,0 @@
-insert([
- 'name' => 'Starter Pack',
- 'description' => 'Faucibus massa amet fermentum sodales natoque mauris',
- 'price' => '9.90',
- 'capacity' => '200',
- 'created_at' => Carbon::now(),
- 'updated_at' => Carbon::now(),
- ]);
-
- DB::table('Plans')->insert([
- 'name' => 'Professional Pack',
- 'description' => 'Fusce morbi a massa ullamcorper inceptos fermentum',
- 'price' => '19.90',
- 'capacity' => '500',
- 'created_at' => Carbon::now(),
- 'updated_at' => Carbon::now(),
- ]);
-
- DB::table('Plans')->insert([
- 'name' => 'Business Pack',
- 'description' => 'Taciti metus proin sociis aenean facilisis eu',
- 'price' => '44.90',
- 'capacity' => '1000',
- 'created_at' => Carbon::now(),
- 'updated_at' => Carbon::now(),
- ]);
- }
-}
diff --git a/database/seeds/SettingSeeder.php b/database/seeds/SettingSeeder.php
index e459f58e..1293a1eb 100644
--- a/database/seeds/SettingSeeder.php
+++ b/database/seeds/SettingSeeder.php
@@ -11,40 +11,8 @@ class SettingSeeder extends Seeder
*/
public function run()
{
- $columns = collect([
+/* $columns = collect([
- // Service Billing Info
- ['name' => 'billing_phone_number'],
- ['name' => 'billing_postal_code'],
- ['name' => 'billing_vat_number'],
- ['name' => 'billing_address'],
- ['name' => 'billing_country'],
- ['name' => 'billing_state'],
- ['name' => 'billing_city'],
- ['name' => 'billing_name'],
-
- // General Settings
- ['name' => 'app_title'],
- ['name' => 'app_description'],
-
- ['name' => 'app_logo'],
- ['name' => 'app_favicon'],
-
- ['name' => 'google_analytics'],
- ['name' => 'contact_email'],
-
- // Users
- ['name' => 'registration', 'value' => 1],
- ['name' => 'storage_limitation', 'value' => 1],
- ['name' => 'storage_default', 'value' => 1],
-
- // Mail settings
- ['name' => 'mail_driver'],
- ['name' => 'mail_host'],
- ['name' => 'mail_port'],
- ['name' => 'mail_username'],
- ['name' => 'mail_password'],
- ['name' => 'mail_encryption'],
]);
$columns->each(function ($col) {
@@ -52,6 +20,6 @@ class SettingSeeder extends Seeder
'name' => $col['name'],
'value' => isset($col['value']) ? $col['value'] : null,
]);
- });
+ });*/
}
}
diff --git a/public/assets/images/vuefilemanager-horizontal-logo-dark.svg b/public/assets/images/vuefilemanager-horizontal-logo-dark.svg
new file mode 100644
index 00000000..eb8bf33f
--- /dev/null
+++ b/public/assets/images/vuefilemanager-horizontal-logo-dark.svg
@@ -0,0 +1,20 @@
+
+
+
+ vuefilemanager-horizontal-logo-dark
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+ .Vue
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/vuefilemanager-logo-icon.svg b/public/assets/images/vuefilemanager-logo-icon.svg
new file mode 100644
index 00000000..7347dc0f
--- /dev/null
+++ b/public/assets/images/vuefilemanager-logo-icon.svg
@@ -0,0 +1,15 @@
+
+
+
+ vuefilemanager-logo-icon
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/vuefilemanager-screenshot-dark.png b/public/assets/images/vuefilemanager-screenshot-dark.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef89a03e363868304f3eb65773f61f1ede000093
GIT binary patch
literal 690425
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