From 0578122fc341cc353b91ac40218f8a570a7b1656 Mon Sep 17 00:00:00 2001 From: radhika587 Date: Fri, 18 Feb 2022 12:21:13 +0530 Subject: [PATCH 1/6] add admin_document_title --- .../V1/Admin/General/BootstrapController.php | 3 ++- app/Providers/ViewServiceProvider.php | 1 + app/Space/helpers.php | 12 ++++++++++++ resources/scripts/admin/layouts/LayoutLogin.vue | 11 ++++++++++- resources/views/app.blade.php | 5 +++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/General/BootstrapController.php b/app/Http/Controllers/V1/Admin/General/BootstrapController.php index da489946..56ab082b 100644 --- a/app/Http/Controllers/V1/Admin/General/BootstrapController.php +++ b/app/Http/Controllers/V1/Admin/General/BootstrapController.php @@ -55,7 +55,8 @@ class BootstrapController extends Controller 'admin_portal_logo', 'login_page_logo', 'login_page_heading', - 'login_page_description' + 'login_page_description', + 'admin_document_title' ]); return response()->json([ diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index f9a27763..9c88fd3a 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -29,6 +29,7 @@ class ViewServiceProvider extends ServiceProvider View::share('login_page_logo', get_login_page_logo()); View::share('login_page_heading', get_login_page_heading()); View::share('login_page_description', get_login_page_description()); + View::share('admin_document_title', get_admin_document_title()); } } } diff --git a/app/Space/helpers.php b/app/Space/helpers.php index 160bf1ec..8ddaedb3 100644 --- a/app/Space/helpers.php +++ b/app/Space/helpers.php @@ -93,6 +93,18 @@ function get_login_page_description() } } +/** + * Get admin document title + * + * @param $company_id + * @return string + */ +function get_admin_document_title() +{ + if (\Storage::disk('local')->has('database_created')) { + return Setting::getSetting('admin_document_title'); + } +} /** * Set Active Path diff --git a/resources/scripts/admin/layouts/LayoutLogin.vue b/resources/scripts/admin/layouts/LayoutLogin.vue index 653fd93f..1987a1e4 100644 --- a/resources/scripts/admin/layouts/LayoutLogin.vue +++ b/resources/scripts/admin/layouts/LayoutLogin.vue @@ -54,7 +54,8 @@ " >

- Copyright @ Crater Invoice, Inc. {{ new Date().getFullYear() }} + Copyright @ {{ documentTitle }}, Inc. + {{ new Date().getFullYear() }}

@@ -159,6 +160,14 @@ const pageDescription = computed(() => { return 'Crater helps you track expenses, record payments & generate beautiful invoices & estimates.' }) +const documentTitle = computed(() => { + if (window.admin_document_title) { + return window.admin_document_title + } + + return 'Crater Invoice' +}) + const loginPageLogo = computed(() => { if (window.login_page_logo) { return window.login_page_logo diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 1c1cdfda..f3606209 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -57,6 +57,11 @@ window.login_page_description = "{{$login_page_description}}" + @endif + @if(isset($admin_document_title)) + + window.admin_document_title = "{{$admin_document_title}}" + @endif window.Crater.start() From 439fc4e0028dcb4032d793aa626f4f61ab216716 Mon Sep 17 00:00:00 2001 From: radhika587 Date: Mon, 21 Feb 2022 18:34:04 +0530 Subject: [PATCH 2/6] add fields --- .../V1/Admin/General/BootstrapController.php | 3 +- app/Providers/ViewServiceProvider.php | 3 +- app/Space/helpers.php | 31 +++++++++++++++++-- .../scripts/admin/layouts/LayoutLogin.vue | 9 +++--- resources/views/app.blade.php | 24 +++++++++++--- routes/web.php | 3 +- 6 files changed, 57 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/General/BootstrapController.php b/app/Http/Controllers/V1/Admin/General/BootstrapController.php index 56ab082b..b9c72ff4 100644 --- a/app/Http/Controllers/V1/Admin/General/BootstrapController.php +++ b/app/Http/Controllers/V1/Admin/General/BootstrapController.php @@ -56,7 +56,8 @@ class BootstrapController extends Controller 'login_page_logo', 'login_page_heading', 'login_page_description', - 'admin_document_title' + 'admin_page_title', + 'copyright_text' ]); return response()->json([ diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index 9c88fd3a..b24925eb 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -29,7 +29,8 @@ class ViewServiceProvider extends ServiceProvider View::share('login_page_logo', get_login_page_logo()); View::share('login_page_heading', get_login_page_heading()); View::share('login_page_description', get_login_page_description()); - View::share('admin_document_title', get_admin_document_title()); + View::share('admin_page_title', get_admin_page_title()); + View::share('copyright_text', get_copyright_text()); } } } diff --git a/app/Space/helpers.php b/app/Space/helpers.php index 8ddaedb3..b590592f 100644 --- a/app/Space/helpers.php +++ b/app/Space/helpers.php @@ -33,6 +33,18 @@ function get_customer_logo($company_id) } } +/** + * Get current customer page title + * + * @param $company_id + * @return string + */ +function get_customer_page_title($company_id) +{ + if (\Storage::disk('local')->has('database_created')) { + return CompanySetting::getSetting('customer_portal_page_title', $company_id); + } +} /** * Get current admin portal logo @@ -94,15 +106,28 @@ function get_login_page_description() } /** - * Get admin document title + * Get admin page title * * @param $company_id * @return string */ -function get_admin_document_title() +function get_admin_page_title() { if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting('admin_document_title'); + return Setting::getSetting('admin_page_title'); + } +} + +/** + * Get admin page title + * + * @param $company_id + * @return string + */ +function get_copyright_text() +{ + if (\Storage::disk('local')->has('database_created')) { + return Setting::getSetting('copyright_text'); } } diff --git a/resources/scripts/admin/layouts/LayoutLogin.vue b/resources/scripts/admin/layouts/LayoutLogin.vue index 1987a1e4..7e07d1c1 100644 --- a/resources/scripts/admin/layouts/LayoutLogin.vue +++ b/resources/scripts/admin/layouts/LayoutLogin.vue @@ -54,7 +54,7 @@ " >

- Copyright @ {{ documentTitle }}, Inc. + {{ documentTitle }}, Inc. {{ new Date().getFullYear() }}

@@ -161,11 +161,10 @@ const pageDescription = computed(() => { }) const documentTitle = computed(() => { - if (window.admin_document_title) { - return window.admin_document_title + if (window.copyright_text) { + return window.copyright_text } - - return 'Crater Invoice' + return 'Copyright @ Crater Invoice' }) const loginPageLogo = computed(() => { diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index f3606209..2df11c0d 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -3,7 +3,20 @@ - Crater - Self Hosted Invoicing Platform + @if (Route::currentRouteName() === 'admin') + @if(isset($admin_page_title) && $admin_page_title != null) + {{$admin_page_title}} + @else + Crater - Self Hosted Invoicing Platform + @endif + @endif + @if (Route::currentRouteName() === 'customer.login') + @if(isset($customer_page_title) && $customer_page_title != null) + {{$customer_page_title}} + @else + Crater - Self Hosted Invoicing Platform + @endif + @endif @@ -57,12 +70,13 @@ window.login_page_description = "{{$login_page_description}}" - @endif - @if(isset($admin_document_title)) + @endif + @if(isset($copyright_text)) - window.admin_document_title = "{{$admin_document_title}}" + window.copyright_text = "{{$copyright_text}}" + + @endif - @endif window.Crater.start() diff --git a/routes/web.php b/routes/web.php index ac694513..1759b63c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -136,7 +136,8 @@ Route::get('/admin/{vue?}', function () { Route::get('{company:slug}/customer/{vue?}', function (Company $company) { return view('app')->with([ 'customer_logo' => get_customer_logo($company->id), - 'current_theme' => get_customer_portal_theme($company->id) + 'current_theme' => get_customer_portal_theme($company->id), + 'customer_page_title' => get_customer_page_title($company->id) ]); })->where('vue', '[\/\w\.-]*')->name('customer.login')->middleware(['install']); From b8193076123d2a76e6fc385b98a38f597f06b132 Mon Sep 17 00:00:00 2001 From: radhika587 Date: Wed, 23 Feb 2022 17:58:07 +0530 Subject: [PATCH 3/6] refactor helpers --- .../V1/Customer/InvoicePdfController.php | 4 +- app/Providers/ViewServiceProvider.php | 10 +- app/Space/helpers.php | 106 +++--------------- resources/views/app.blade.php | 68 ++++++++--- routes/web.php | 10 +- 5 files changed, 81 insertions(+), 117 deletions(-) diff --git a/app/Http/Controllers/V1/Customer/InvoicePdfController.php b/app/Http/Controllers/V1/Customer/InvoicePdfController.php index 858e5005..ad94403c 100644 --- a/app/Http/Controllers/V1/Customer/InvoicePdfController.php +++ b/app/Http/Controllers/V1/Customer/InvoicePdfController.php @@ -44,8 +44,8 @@ class InvoicePdfController extends Controller } return view('app')->with([ - 'customer_logo' => get_customer_logo($invoice->company_id), - 'current_theme' => get_customer_portal_theme($invoice->company_id) + 'customer_logo' => get_company_setting('customer_portal_logo', $invoice->company_id), + 'current_theme' => get_company_setting('customer_portal_theme', $invoice->company_id) ]); } diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index b24925eb..216adbd6 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -26,11 +26,11 @@ class ViewServiceProvider extends ServiceProvider public function boot() { if (\Storage::disk('local')->has('database_created') && Schema::hasTable('settings')) { - View::share('login_page_logo', get_login_page_logo()); - View::share('login_page_heading', get_login_page_heading()); - View::share('login_page_description', get_login_page_description()); - View::share('admin_page_title', get_admin_page_title()); - View::share('copyright_text', get_copyright_text()); + View::share('login_page_logo', get_app_setting('login_page_logo')); + View::share('login_page_heading', get_app_setting('login_page_heading')); + View::share('login_page_description', get_app_setting('login_page_description')); + View::share('admin_page_title', get_app_setting('admin_page_title')); + View::share('copyright_text', get_app_setting('copyright_text')); } } } diff --git a/app/Space/helpers.php b/app/Space/helpers.php index b590592f..7a3e078e 100644 --- a/app/Space/helpers.php +++ b/app/Space/helpers.php @@ -7,127 +7,53 @@ use Crater\Models\Setting; use Illuminate\Support\Str; /** - * Get current customer theme + * Get company setting * * @param $company_id * @return string */ -function get_customer_portal_theme($company_id) +function get_company_setting($key, $company_id) { if (\Storage::disk('local')->has('database_created')) { - return CompanySetting::getSetting('customer_portal_theme', $company_id); + return CompanySetting::getSetting($key, $company_id); } } - /** - * Get current customer logo + * Get app setting * * @param $company_id * @return string */ -function get_customer_logo($company_id) +function get_app_setting($key) { if (\Storage::disk('local')->has('database_created')) { - return CompanySetting::getSetting('customer_portal_logo', $company_id); + return Setting::getSetting($key); } } /** - * Get current customer page title + * Get page title * * @param $company_id * @return string */ -function get_customer_page_title($company_id) +function get_page_title($company_id) { - if (\Storage::disk('local')->has('database_created')) { - return CompanySetting::getSetting('customer_portal_page_title', $company_id); - } -} + $routeName = Route::currentRouteName(); -/** - * Get current admin portal logo - * - * @param $company_id - * @return string - */ -function get_login_page_logo() -{ - if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting('login_page_logo'); - } -} + $pageTitle = null; + $defaultPageTitle = 'Crater - Self Hosted Invoicing Platform'; -/** - * Get current admin theme - * - * @return string - */ -function get_admin_portal_theme() -{ if (\Storage::disk('local')->has('database_created')) { - $setting = Setting::getSetting('admin_portal_theme'); + if ($routeName === 'customer.dashboard') { + $pageTitle = CompanySetting::getSetting('customer_portal_page_title', $company_id); - if ($setting) { - return $setting; + return $pageTitle ? $pageTitle : $defaultPageTitle; } - return 'crater'; - } - - return 'crater'; -} - -/** - * Get current login page heading - * - * @param $company_id - * @return string - */ -function get_login_page_heading() -{ - if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting('login_page_heading'); - } -} - -/** - * Get current login page description - * - * @param $company_id - * @return string - */ -function get_login_page_description() -{ - if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting('login_page_description'); - } -} - -/** - * Get admin page title - * - * @param $company_id - * @return string - */ -function get_admin_page_title() -{ - if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting('admin_page_title'); - } -} - -/** - * Get admin page title - * - * @param $company_id - * @return string - */ -function get_copyright_text() -{ - if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting('copyright_text'); + $pageTitle = Setting::getSetting('admin_page_title'); + return $pageTitle ? $pageTitle : $defaultPageTitle; } } diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 2df11c0d..b329be7e 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -3,20 +3,58 @@ - @if (Route::currentRouteName() === 'admin') - @if(isset($admin_page_title) && $admin_page_title != null) - {{$admin_page_title}} - @else - Crater - Self Hosted Invoicing Platform - @endif - @endif - @if (Route::currentRouteName() === 'customer.login') - @if(isset($customer_page_title) && $customer_page_title != null) - {{$customer_page_title}} - @else - Crater - Self Hosted Invoicing Platform - @endif - @endif + + + + + {{ get_page_title(!Request::header('company')) }} @@ -39,7 +77,7 @@ + @if(isset($current_theme)) theme-{{ $current_theme }} @else theme-{{get_app_setting('admin_portal_theme') ?? 'crater'}} @endif "> @foreach (\Crater\Services\Module\ModuleFacade::allScripts() as $name => $path) diff --git a/routes/web.php b/routes/web.php index 1759b63c..3a0fea9f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -131,15 +131,15 @@ Route::get('/installation', function () { Route::get('/admin/{vue?}', function () { return view('app'); -})->where('vue', '[\/\w\.-]*')->name('admin')->middleware(['install', 'redirect-if-unauthenticated']); +})->where('vue', '[\/\w\.-]*')->name('admin.dashboard')->middleware(['install', 'redirect-if-unauthenticated']); Route::get('{company:slug}/customer/{vue?}', function (Company $company) { return view('app')->with([ - 'customer_logo' => get_customer_logo($company->id), - 'current_theme' => get_customer_portal_theme($company->id), - 'customer_page_title' => get_customer_page_title($company->id) + 'customer_logo' => get_company_setting('customer_portal_logo', $company->id), + 'current_theme' => get_company_setting('customer_portal_theme', $company->id), + 'customer_page_title' => get_company_setting('customer_portal_page_title', $company->id) ]); -})->where('vue', '[\/\w\.-]*')->name('customer.login')->middleware(['install']); +})->where('vue', '[\/\w\.-]*')->name('customer.dashboard')->middleware(['install']); Route::get('/', function () { return view('app'); From a452ec5eafad390d853ce863fb75413a752e8d1d Mon Sep 17 00:00:00 2001 From: radhika587 Date: Wed, 23 Feb 2022 18:34:12 +0530 Subject: [PATCH 4/6] add migration --- ...e_column_to_nullable_on_settings_table.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 database/migrations/2022_02_23_130108_update_value_column_to_nullable_on_settings_table.php diff --git a/database/migrations/2022_02_23_130108_update_value_column_to_nullable_on_settings_table.php b/database/migrations/2022_02_23_130108_update_value_column_to_nullable_on_settings_table.php new file mode 100644 index 00000000..09d7f1f2 --- /dev/null +++ b/database/migrations/2022_02_23_130108_update_value_column_to_nullable_on_settings_table.php @@ -0,0 +1,30 @@ +string('value')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} From 48f9da14ba92535d3b08f4029d25a1db74e3e329 Mon Sep 17 00:00:00 2001 From: radhika587 Date: Thu, 24 Feb 2022 11:06:20 +0530 Subject: [PATCH 5/6] remove unwanted code --- resources/views/app.blade.php | 51 ----------------------------------- 1 file changed, 51 deletions(-) diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index b329be7e..80aed311 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -3,57 +3,6 @@ - - - - {{ get_page_title(!Request::header('company')) }} From 2a43ec9e9db28e01e0ad6cc49920d638b0d82062 Mon Sep 17 00:00:00 2001 From: radhika587 Date: Thu, 24 Feb 2022 11:29:32 +0530 Subject: [PATCH 6/6] fix minor issues --- resources/scripts/admin/layouts/LayoutLogin.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/scripts/admin/layouts/LayoutLogin.vue b/resources/scripts/admin/layouts/LayoutLogin.vue index 7e07d1c1..b915d550 100644 --- a/resources/scripts/admin/layouts/LayoutLogin.vue +++ b/resources/scripts/admin/layouts/LayoutLogin.vue @@ -54,7 +54,7 @@ " >

- {{ documentTitle }}, Inc. + {{ copyrightText }} {{ new Date().getFullYear() }}

@@ -160,11 +160,11 @@ const pageDescription = computed(() => { return 'Crater helps you track expenses, record payments & generate beautiful invoices & estimates.' }) -const documentTitle = computed(() => { +const copyrightText = computed(() => { if (window.copyright_text) { return window.copyright_text } - return 'Copyright @ Crater Invoice' + return 'Copyright @ Crater Invoice, Inc.' }) const loginPageLogo = computed(() => {