Changed correct dashboard route and introduced a stripped down version of the pagesettings helper class from the main CMS codebase, in order to maintain compatability/functionality
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run

This commit is contained in:
Helge-Mikael Nordgård 2025-05-05 19:12:42 +02:00
parent e15d3ae146
commit 3c49569962
11 changed files with 390 additions and 13 deletions

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers;
class PageSettingsHelper
{
public static function pageSettings(): array {
return config('standard-pagesettings.defaults');
}
public static function get(string $key): string {
// Get first result from database
$settings = config('standard-pagesettings.defaults');
return $settings[$key];
}
}

View File

@ -46,6 +46,6 @@ class RegisteredUserController extends Controller
Auth::login($user); Auth::login($user);
return to_route('dashboard'); return to_route('page-builder.index');
} }
} }

View File

@ -3,22 +3,30 @@
namespace App\Providers; namespace App\Providers;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Inertia\Inertia;
use App\Helpers\PageSettingsHelper;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
/** /**
* Register any application services. * Register any application services.
*/ */
public function register(): void public function register(): void {
{
// //
} }
/** /**
* Bootstrap any application services. * Bootstrap any application services.
*/ */
public function boot(): void public function boot(): void {
{ Inertia::share([
// 'pageSettings' => function () {
return PageSettingsHelper::pageSettings();
},
'siteName' => function () {
return config('app.name');
},
]);
} }
} }

View File

@ -0,0 +1,353 @@
<?php
/*
|--------------------------------------------------------------------------
| Pagesettings definitions
|--------------------------------------------------------------------------
|
| These values are used to define the standard, default values for each
| settings used by the site. These values are used to populate the database
| with the default values.
|
| This settings file also contains the validation rules for each setting.
|
*/
return [
'defaults' => [
'site_name' => 'Østfold Milsim',
'site_description' => 'Østfold Milsim er en airsoftklubb som holder til i Østfold. Vi har medlemmer fra hele Østfold, og har som mål å være en klubb for alle som er interessert i airsoft.',
'site_keywords' => 'airsoft, milsim, østfold, norge, norway, airsoftklubb, airsoftklubb østfold, airsoftklubb norge, airsoftklubb norway, airsoftklubb østfold milsim, airsoftklubb norge milsim, airsoftklubb norway milsim, airsoftklubb østfold milsim norge, airsoftklubb norge milsim østfold, airsoftklubb norway milsim østfold, airsoftklubb østfold milsim norway, airsoftklubb norge milsim norway, airsoftklubb norway milsim østfold',
'webmaster' => 'Webmasters Navn',
'webmaster_email' => 'ikke@ikke.no',
'webmaster_phone' => '12345678',
'kasserer' => 'Vet Ikke',
'kasserer_email' => 'vet.ikke@ikke.no',
'kasserer_phone' => '12345678',
'postadresse' => 'Østfold Milsim, Postboks 123, 1234 Oslo',
'besoksadresse' => 'Østfold Milsim, Østfoldveien 123, 1234 Oslo',
'orgnr' => '123456789',
'bankkontonr' => '1234.56.78901',
'banknavn' => 'Østfold Milsim Bank',
'facebook' => 'https://www.facebook.com/ostfoldmilsim',
'instagram' => 'https://www.instagram.com/ostfoldmilsim',
'twitter' => 'https://www.twitter.com/ostfoldmilsim',
'youtube' => 'https://www.youtube.com/ostfoldmilsim',
'twitch' => 'https://www.twitch.tv/ostfoldmilsim',
'discord' => 'https://www.discord.gg/ostfoldmilsim',
'membership_fee' => '500',
'membership_time_interval_months' => '12',
'membership_fee_description' => 'Årlig medlemskontigent',
'membership_fee_description_long' => 'Årlig medlemskontigent for medlemskap i Østfold Milsim',
'membership_child_age_limit' => '18',
'membership_child_fee' => '250',
'membership_age_limit' => '16',
'membership_annual' => true,
'renew_alert' => '4',
'sales_terms' => '# Salgsbetingelser for Klubben',
'use_terms' => '# Bruksvilkår for Klubben',
'privacy_policy' => '# Personvernerklæring for Klubben',
'comment_rules' => '# Regler for kommentering',
'enable_vat' => false,
'module_vipps_payment' => false,
'module_stripe_payment' => false,
'module_registrationcodes' => false,
'module_required_full_profile' => false,
'module_mobile_app_scan_notification' => false,
'mobile_app_scan_notification_message' => '',
'mobile_app_scan_notification_threshold' => 1,
'mobile_app_welcome_text' => '',
'mobile_app_background_color' => '#003e71',
'mobile_app_text_color' => '#ffffff',
'mobile_app_header_color' => '#40c4ff',
'mobile_app_appbar_background_color' => '#0085f2',
'mobile_app_appbar_text_color' => '#ffffff',
'mobile_app_navigation_background_color' => '#ffffff',
'mobile_app_navigation_icon_color' => '#9E9E9E',
'mobile_app_navigation_active_icon_color' => '#0085f2',
'mobile_app_input_color' => '#ffffff',
'mobile_app_input_accent_color' => '#40c4ff',
'mobile_app_logo' => 0,
'membership_levels' => [],
],
'department_defaults' => [
'membership_fee' => '500',
'membership_child_fee' => '250',
'membership_time_interval_months' => '12',
'membership_fee_description' => 'Årlig medlemskontigent',
'membership_fee_description_long' => 'Årlig medlemskontigent for medlemskap i Østfold Milsim',
],
'department_defaults_fieldTypes' => [
'membership_fee' => 'number',
'membership_time_interval_months' => 'number',
'membership_fee_description' => 'text',
'membership_fee_description_long' => 'textarea',
],
'department_defaults_validation' => [
'deptId' => [
'required',
'integer',
'exists:departments,id',
],
'membership_fee' => [
'required',
'numeric',
'digits_between:1,6',
],
'membership_child_fee' => [
'required',
'numeric',
'digits_between:1,6',
],
'membership_time_interval_months' => [
'required',
'numeric',
'digits_between:1,2',
],
'membership_fee_description' => [
'required',
'string',
'max:255',
],
'membership_fee_description_long' => [
'required',
'string',
],
],
'validation' => [
'site_name' => [
'required',
'string',
'max:255',
],
'site_description' => [
'required',
'string',
],
'site_keywords' => [
'required',
'string',
],
'webmaster' => [
'required',
'string',
'max:255',
],
'webmaster_email' => [
'required',
'string',
'email',
'max:255',
],
'webmaster_phone' => [
'required',
'numeric',
'digits:8',
],
'kasserer' => [
'required',
'string',
'max:255',
],
'kasserer_email' => [
'required',
'string',
'email',
'max:255',
],
'kasserer_phone' => [
'required',
'numeric',
'digits:8',
],
'postadresse' => [
'required',
'string',
'max:255',
],
'besoksadresse' => [
'required',
'string',
'max:255',
],
'orgnr' => [
'required',
'numeric',
'digits:9',
],
'bankkontonr' => [
'required',
'string',
'max:13',
],
'banknavn' => [
'nullable',
'string',
'max:255',
],
'facebook' => [
'nullable',
'string',
'max:255',
],
'instagram' => [
'nullable',
'string',
'max:255',
],
'twitter' => [
'nullable',
'string',
'max:255',
],
'youtube' => [
'nullable',
'string',
'max:255',
],
'twitch' => [
'nullable',
'string',
'max:255',
],
'discord' => [
'nullable',
'string',
'max:255',
],
'membership_fee' => [
'required',
'numeric',
'digits_between:1,6',
],
'membership_time_interval_months' => [
'required',
'numeric',
'digits_between:1,2',
],
'membership_fee_description' => [
'required',
'string',
'max:255',
],
'membership_fee_description_long' => [
'required',
'string',
],
'membership_child_age_limit' => [
'required',
'numeric',
'digits_between:1,2',
],
'membership_child_fee' => [
'required',
'numeric',
'digits_between:1,6',
],
'membership_age_limit' => [
'required',
'numeric',
'digits_between:1,2',
],
'membership_annual' => [
'nullable',
'boolean',
],
'renew_alert' => [
'required',
'numeric',
'digits_between:1,12',
],
'sales_terms' => [
'required',
'string',
],
'use_terms' => [
'required',
'string',
],
'privacy_policy' => [
'required',
'string',
],
'mobile_app_background_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_text_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_header_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_logo' => [
'nullable',
'integer',
'exists:image_nodes,id',
],
'mobile_app_appbar_background_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_appbar_text_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_navigation_background_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_navigation_icon_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_navigation_active_icon_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_input_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'mobile_app_input_accent_color' => [
'required',
'string',
'regex:/^#([a-f0-9]{3}){1,2}$/i',
],
'membership_levels' => [
'array'
],
'mobile_app_scan_notification_message' => [
'required_if:module_mobile_app_scan_notification,true',
'max:255'
],
'mobile_app_scan_notification_threshold' => [
'required_if:module_mobile_app_scan_notification,true',
'between:1,99'
]
]
];

View File

@ -108,7 +108,7 @@ const rightNavItems: NavItem[] = [
</Sheet> </Sheet>
</div> </div>
<Link :href="route('dashboard')" class="flex items-center gap-x-2"> <Link :href="route('page-builder.index')" class="flex items-center gap-x-2">
<AppLogo /> <AppLogo />
</Link> </Link>

View File

@ -36,7 +36,7 @@ const footerNavItems: NavItem[] = [
<SidebarMenu> <SidebarMenu>
<SidebarMenuItem> <SidebarMenuItem>
<SidebarMenuButton size="lg" as-child> <SidebarMenuButton size="lg" as-child>
<Link :href="route('dashboard')"> <Link :href="route('page-builder.index')">
<AppLogo /> <AppLogo />
</Link> </Link>
</SidebarMenuButton> </SidebarMenuButton>

View File

@ -31,7 +31,7 @@
varer i {{ page.props.pageSettings['membership_time_interval_months'] }} måneder varer i {{ page.props.pageSettings['membership_time_interval_months'] }} måneder
<span v-if="page.props.pageSettings['membership_annual']"> eller ut kalenderåret </span> <span v-if="page.props.pageSettings['membership_annual']"> eller ut kalenderåret </span>
før det fornyes. Betalinger kan gjøres nettsiden via vipps <span v-if="page.props.pageSettings['module_stripe_payment']">eller bankkort</span> ved å besøke før det fornyes. Betalinger kan gjøres nettsiden via vipps <span v-if="page.props.pageSettings['module_stripe_payment']">eller bankkort</span> ved å besøke
<Link :href="route('dashboard')" class="text-amber-400 hover:text-amber-300 underline hover:no-underline"> <Link :href="route('page-builder.index')" class="text-amber-400 hover:text-amber-300 underline hover:no-underline">
din medlemsside din medlemsside
</Link> </Link>
. .

View File

@ -74,7 +74,7 @@
varer i {{ page.props.pageSettings['membership_time_interval_months'] }} måneder varer i {{ page.props.pageSettings['membership_time_interval_months'] }} måneder
<span v-if="page.props.pageSettings['membership_annual']"> eller ut kalenderåret </span> <span v-if="page.props.pageSettings['membership_annual']"> eller ut kalenderåret </span>
før det fornyes. Betalinger kan gjøres nettsiden via vipps <span v-if="page.props.pageSettings['module_stripe_payment']">eller bankkort</span> ved å besøke før det fornyes. Betalinger kan gjøres nettsiden via vipps <span v-if="page.props.pageSettings['module_stripe_payment']">eller bankkort</span> ved å besøke
<Link :href="route('dashboard')" class="text-amber-400 hover:text-amber-300 underline hover:no-underline"> <Link :href="route('page-builder.index')" class="text-amber-400 hover:text-amber-300 underline hover:no-underline">
din medlemsside din medlemsside
</Link> </Link>
. .

View File

@ -91,7 +91,7 @@
<h2 class="mb-6 text-sm font-semibold text-gray-900 uppercase dark:text-white">medlemsider</h2> <h2 class="mb-6 text-sm font-semibold text-gray-900 uppercase dark:text-white">medlemsider</h2>
<ul v-if="$page.props.auth.user" class="text-gray-500 dark:text-gray-400 font-medium"> <ul v-if="$page.props.auth.user" class="text-gray-500 dark:text-gray-400 font-medium">
<li> <li>
<Link :href="route('dashboard')" class="hover:underline ">Din medlemside</Link> <Link :href="route('page-builder.index')" class="hover:underline ">Din medlemside</Link>
</li> </li>
<li> <li>
<Link :href="route('profile.update')" class="hover:underline">Din brukerprofil</Link> <Link :href="route('profile.update')" class="hover:underline">Din brukerprofil</Link>

View File

@ -238,7 +238,7 @@
}); });
} else if (payload === 'medlemside' && useEventBus.value) { } else if (payload === 'medlemside' && useEventBus.value) {
clickMenuButton(); clickMenuButton();
loadLink(route('dashboard')); loadLink(route('page-builder.index'));
} else if (payload === 'loggpaa' && useEventBus.value) { } else if (payload === 'loggpaa' && useEventBus.value) {
clickMenuButton(); clickMenuButton();
loadLink(route('login')); loadLink(route('login'));

View File

@ -238,7 +238,7 @@
}); });
} else if (payload === 'medlemside' && useEventBus.value) { } else if (payload === 'medlemside' && useEventBus.value) {
clickMenuButton(); clickMenuButton();
loadLink(route('dashboard')); loadLink(route('page-builder.index'));
} else if (payload === 'loggpaa' && useEventBus.value) { } else if (payload === 'loggpaa' && useEventBus.value) {
clickMenuButton(); clickMenuButton();
loadLink(route('login')); loadLink(route('login'));