Onboarding Upload
This commit is contained in:
111
extensions/Others/Onboarding/Onboarding.php
Normal file
111
extensions/Others/Onboarding/Onboarding.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace Paymenter\Extensions\Others\Onboarding;
|
||||
|
||||
use App\Classes\Extension\Extension;
|
||||
use App\Helpers\ExtensionHelper;
|
||||
|
||||
class Onboarding extends Extension
|
||||
{
|
||||
public function getMetadata()
|
||||
{
|
||||
return [
|
||||
'display_name' => 'Onboarding',
|
||||
'version' => '1.0.0',
|
||||
'author' => 'Paymenter',
|
||||
'website' => 'https://paymenter.org',
|
||||
];
|
||||
}
|
||||
|
||||
public function getConfig($values = [])
|
||||
{
|
||||
return [
|
||||
[
|
||||
'name' => 'test_mode',
|
||||
'type' => 'checkbox',
|
||||
'label' => 'Test Mode',
|
||||
'description' => 'Enable test mode to always show onboarding modal (bypass session tracking). Useful for testing while setting up slides.',
|
||||
'required' => false,
|
||||
'default' => false,
|
||||
],
|
||||
[
|
||||
'name' => 'show_backdrop',
|
||||
'type' => 'checkbox',
|
||||
'label' => 'Show Backdrop',
|
||||
'description' => 'Display a dark backdrop behind the onboarding modal.',
|
||||
'required' => false,
|
||||
'default' => false,
|
||||
],
|
||||
[
|
||||
'name' => 'per_session',
|
||||
'type' => 'checkbox',
|
||||
'label' => 'Per Session Onboarding',
|
||||
'description' => 'Use cookies instead of database session. Onboarding will show again if user clears cookies or uses a different browser/device.',
|
||||
'required' => false,
|
||||
'default' => false,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function installed()
|
||||
{
|
||||
|
||||
ExtensionHelper::runMigrations('extensions/Others/Onboarding/database/migrations');
|
||||
}
|
||||
|
||||
public function uninstalled()
|
||||
{
|
||||
|
||||
ExtensionHelper::rollbackMigrations('extensions/Others/Onboarding/database/migrations');
|
||||
}
|
||||
|
||||
public function boot()
|
||||
{
|
||||
|
||||
if (app()->runningInConsole() === false) {
|
||||
\Filament\Facades\Filament::getCurrentPanel()?->resources([
|
||||
\Paymenter\Extensions\Others\Onboarding\Admin\Resources\OnboardingResource::class,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
app('view')->addNamespace('onboarding', __DIR__ . '/resources/views');
|
||||
|
||||
|
||||
\Livewire\Livewire::component('onboarding.modal', \Paymenter\Extensions\Others\Onboarding\Livewire\Onboarding\Modal::class);
|
||||
|
||||
|
||||
\Illuminate\Support\Facades\Gate::policy(
|
||||
\Paymenter\Extensions\Others\Onboarding\Models\OnboardingSlide::class,
|
||||
\Paymenter\Extensions\Others\Onboarding\Policies\OnboardingSlidePolicy::class
|
||||
);
|
||||
|
||||
|
||||
\Illuminate\Support\Facades\Event::listen('permissions', function () {
|
||||
return [
|
||||
'admin.onboarding.view' => 'View Onboarding Slides',
|
||||
'admin.onboarding.create' => 'Create Onboarding Slides',
|
||||
'admin.onboarding.update' => 'Update Onboarding Slides',
|
||||
'admin.onboarding.delete' => 'Delete Onboarding Slides',
|
||||
];
|
||||
});
|
||||
|
||||
|
||||
\Illuminate\Support\Facades\Event::listen('body', function () {
|
||||
|
||||
if (!request()->is('admin/*') &&
|
||||
!request()->is('login') &&
|
||||
!request()->is('register') &&
|
||||
!request()->is('2fa') &&
|
||||
!request()->is('forgot-password') &&
|
||||
!request()->is('reset-password/*') &&
|
||||
!request()->is('verify-email') &&
|
||||
!request()->is('/') &&
|
||||
\Illuminate\Support\Facades\Auth::check()) {
|
||||
return [
|
||||
'view' => view('onboarding::widget'),
|
||||
];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user