wip on visa/master payment
This commit is contained in:
@@ -35,24 +35,18 @@ class VisaMasterPaymentOrder extends Model implements HasMedia
|
|||||||
'payment_reciever' => 'array',
|
'payment_reciever' => 'array',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
|
||||||
* Media conversions
|
|
||||||
*
|
|
||||||
* @param Media|null $media
|
|
||||||
*/
|
|
||||||
public function registerMediaConversions(?Media $media = null): void
|
|
||||||
{
|
|
||||||
$this->addMediaConversion('thumb')
|
|
||||||
->width(200)
|
|
||||||
->height(200);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Media collections
|
* Media collections
|
||||||
*/
|
*/
|
||||||
public function registerMediaCollections(): void
|
public function registerMediaCollections(): void
|
||||||
{
|
{
|
||||||
$this->addMediaCollection('main');
|
foreach (static::reciverFiles() as $reciverFile) {
|
||||||
|
$this->addMediaCollection($reciverFile['code'])->singleFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (static::senderFiles() as $senderFile) {
|
||||||
|
$this->addMediaCollection($senderFile['code'])->singleFile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,4 +67,87 @@ class VisaMasterPaymentOrder extends Model implements HasMedia
|
|||||||
'master' => __('Master'),
|
'master' => __('Master'),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Required files
|
||||||
|
*/
|
||||||
|
public static function reciverFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[
|
||||||
|
'required' => true,
|
||||||
|
'code' => 'requisite',
|
||||||
|
'name' => 'Talyba degişli walýuta “VISA” kartyň rekwizitleri',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'document_stating_he_is_studying',
|
||||||
|
'name' => 'Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasy',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'passport_local',
|
||||||
|
'name' => 'Talyba degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'passport_international',
|
||||||
|
'name' => 'Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin (zagran) pasportynyň göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'visa',
|
||||||
|
'name' => 'Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary ýurtda galyp okap bilýändigi baradaky berlen möhleti hereket edýän rugsatnamasynyň (wizasynyň) bellenen sahypasynyň göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'travel_stamp_on_passport',
|
||||||
|
'name' => 'Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky Türkmenistandan çykandygy we daşary ýurt döwletine girendigi baradaky ştamplaryň (seneli ştampyň) bellenen sahypasynyň göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'document_stating_he_is_studying_2',
|
||||||
|
'name' => 'Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasyndaky maglumatyň doly takyk däl ýagdaýynda takyk däl maglumatyň sebäpleri baradaky daşary ýurt döwletiniň ýokary okuw mekdebinden haty',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sender files
|
||||||
|
*/
|
||||||
|
public static function senderFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[
|
||||||
|
'required' => true,
|
||||||
|
'code' => 'passport_local',
|
||||||
|
'name' => 'ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'passport_international',
|
||||||
|
'name' => 'ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportynyň asyl görnüşi we göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'travel_stamp_on_passport',
|
||||||
|
'name' => 'ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary döwletine gidendigi we daşary döwlete barandygy baradaky (ştampyň) bellenen sahypasynyň göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => true,
|
||||||
|
'code' => 'proof_of_kinship',
|
||||||
|
'name' => 'ugradyjynyň we kabul edijiniň (talybyň) özara garyndaşlyk derejesini tassyklaýjy resminamalarynyň göçürmesi',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'passport_local_old',
|
||||||
|
'name' => 'ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alan bolsa, onda birinji gezek alan pasportynyň seriýasy baradaky maglumat',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'required' => false,
|
||||||
|
'code' => 'passport_local_old_replacement',
|
||||||
|
'name' => 'ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alandan soňra birinji gezek alan pasportynyň seriýasy baradaky maglumaty bilmeýän ,bolsa onda polisiýanyň degişli edaralaryndan birinji alan pasportynyň seriýasy baradaky güwänamasy',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ use App\Repos\Order\OrderRepo;
|
|||||||
use App\Repos\System\Nova\NovaRepo;
|
use App\Repos\System\Nova\NovaRepo;
|
||||||
use App\Repos\System\Settings\Legal\PassportRepo;
|
use App\Repos\System\Settings\Legal\PassportRepo;
|
||||||
use App\Repos\System\Settings\Location\RegionRepo;
|
use App\Repos\System\Settings\Location\RegionRepo;
|
||||||
use Ebess\AdvancedNovaMediaLibrary\Fields\Files;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Laravel\Nova\Fields\Badge;
|
use Laravel\Nova\Fields\Badge;
|
||||||
@@ -104,13 +103,14 @@ class NovaVisaMasterPaymentOrder extends Resource
|
|||||||
public function fields(NovaRequest $request): array
|
public function fields(NovaRequest $request): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
ID::hidden(),
|
|
||||||
|
|
||||||
Hidden::make('user_id')
|
|
||||||
->default(auth()->id())
|
|
||||||
->hideWhenUpdating(),
|
|
||||||
|
|
||||||
new Panel(__('New :resource', ['resource' => $this->singularLabel()]), [
|
new Panel(__('New :resource', ['resource' => $this->singularLabel()]), [
|
||||||
|
ID::make()
|
||||||
|
->hideFromDetail(),
|
||||||
|
|
||||||
|
Hidden::make('user_id')
|
||||||
|
->default(auth()->id())
|
||||||
|
->hideWhenUpdating(),
|
||||||
|
|
||||||
Text::make(__('ID'), 'unique_id')
|
Text::make(__('ID'), 'unique_id')
|
||||||
->exceptOnForms(),
|
->exceptOnForms(),
|
||||||
|
|
||||||
@@ -229,13 +229,10 @@ class NovaVisaMasterPaymentOrder extends Resource
|
|||||||
attribute: 'full_name'
|
attribute: 'full_name'
|
||||||
),
|
),
|
||||||
])->maxRows(1)->minRows(1)->rules('required'),
|
])->maxRows(1)->minRows(1)->rules('required'),
|
||||||
|
|
||||||
Files::make('Talap edilýän resminamalar', 'main')
|
|
||||||
->conversionOnIndexView('thumb')
|
|
||||||
->rules('required')
|
|
||||||
->required()
|
|
||||||
->hideFromIndex(),
|
|
||||||
]),
|
]),
|
||||||
|
|
||||||
|
// new Panel(__('Reciver files'), VisaMasterPaymentOrderFileFields::reciverFiles()),
|
||||||
|
// new Panel(__('Sender files'), VisaMasterPaymentOrderFileFields::senderFiles()),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Modules\VisaMasterPaymentOrder\Nova\Resources;
|
||||||
|
|
||||||
|
use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
|
||||||
|
use Ebess\AdvancedNovaMediaLibrary\Fields\Files;
|
||||||
|
use Laravel\Nova\Fields\File;
|
||||||
|
|
||||||
|
class VisaMasterPaymentOrderFileFields
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Reciver files
|
||||||
|
*/
|
||||||
|
public static function reciverFiles(): array
|
||||||
|
{
|
||||||
|
return collect(VisaMasterPaymentOrder::reciverFiles())
|
||||||
|
->map(fn (array $file) => Files::make(__($file['name']), $file['code'])
|
||||||
|
->size('w-1/2')
|
||||||
|
->rules($file['required'] ? 'required' : 'nullable')
|
||||||
|
->required($file['required'])
|
||||||
|
)
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sender files
|
||||||
|
*/
|
||||||
|
public static function senderFiles(): array
|
||||||
|
{
|
||||||
|
return collect(VisaMasterPaymentOrder::senderFiles())
|
||||||
|
->map(fn (array $file) => Files::make(__($file['name']), $file['code'])
|
||||||
|
->size('w-1/2')
|
||||||
|
->rules($file['required'] ? 'required' : 'nullable')
|
||||||
|
->required($file['required'])
|
||||||
|
)
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// File::make(__($file['name']), $file['code'])
|
||||||
|
// ->size('w-1/2')
|
||||||
|
// ->deletable(false)
|
||||||
|
// ->rules('max:2048', 'mimes:jpg,png,jpeg')
|
||||||
|
// ->creationRules($file['required'] ? 'required' : 'nullable')
|
||||||
|
// ->updateRules('nullable')
|
||||||
42
index.html
Normal file
42
index.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<div id="app">
|
||||||
|
<div v-for="(step, index) in steps" :key="index" v-show="currentStep === index">
|
||||||
|
<h2>Step {{ index + 1 }}</h2>
|
||||||
|
<div v-html="step.content"></div>
|
||||||
|
<button v-if="currentStep > 0" @click="prevStep">Previous</button>
|
||||||
|
<button v-if="currentStep < steps.length - 1" @click="nextStep">Next</button>
|
||||||
|
<button v-if="currentStep === steps.length - 1" @click="submitForm">Submit</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
|
||||||
|
<script>
|
||||||
|
new Vue({
|
||||||
|
el: '#app',
|
||||||
|
data: {
|
||||||
|
currentStep: 0,
|
||||||
|
steps: [
|
||||||
|
{ content: '<div>Step 1 content goes here</div>' },
|
||||||
|
{ content: '<div>Step 2 content goes here</div>' },
|
||||||
|
{ content: '<div>Step 3 content goes here</div>' },
|
||||||
|
{ content: '<div>Step 4 content goes here</div>' },
|
||||||
|
{ content: '<div>Step 5 content goes here</div>' },
|
||||||
|
{ content: '<div>Step 6 content goes here</div>' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
nextStep() {
|
||||||
|
if (this.currentStep < this.steps.length - 1) {
|
||||||
|
this.currentStep++;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
prevStep() {
|
||||||
|
if (this.currentStep > 0) {
|
||||||
|
this.currentStep--;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
submitForm() {
|
||||||
|
alert('Form submitted!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
168
resources/js/vendor/nova/js/additional.js
vendored
168
resources/js/vendor/nova/js/additional.js
vendored
@@ -0,0 +1,168 @@
|
|||||||
|
// window.LaravelNovaWizardStore = {
|
||||||
|
// data: {
|
||||||
|
// steps: 0,
|
||||||
|
// currentStep: 1,
|
||||||
|
// },
|
||||||
|
|
||||||
|
// fields: {
|
||||||
|
// buttonsContainerElement: {},
|
||||||
|
// cancelFormButton: {},
|
||||||
|
// createFormButton: {},
|
||||||
|
// prevButtonElement: {},
|
||||||
|
// nextButtonElement: {},
|
||||||
|
// },
|
||||||
|
|
||||||
|
// nextStep() {
|
||||||
|
// if (this.data.steps > 0 && this.data.currentStep < this.data.steps) {
|
||||||
|
// document.querySelector(`div[wizard-step="${this.data.currentStep}"]`).style.display = 'none';
|
||||||
|
|
||||||
|
// this.data.currentStep++;
|
||||||
|
|
||||||
|
// document.querySelector(`div[wizard-step="${this.data.currentStep}"]`).style.display = 'inherit';
|
||||||
|
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (this.data.currentStep === this.data.steps) {
|
||||||
|
// this.hideNextButton()
|
||||||
|
// this.showFormSubmitButton()
|
||||||
|
// } else {
|
||||||
|
// this.hideFormSubmitButton()
|
||||||
|
// this.showNextButton()
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
|
// prevStep() {
|
||||||
|
// if (this.data.currentStep > 1) {
|
||||||
|
// document.querySelector(`div[wizard-step="${this.data.currentStep}"]`).style.display = 'none';
|
||||||
|
|
||||||
|
// this.data.currentStep--;
|
||||||
|
|
||||||
|
// document.querySelector(`div[wizard-step="${this.data.currentStep}"]`).style.display = 'inherit';
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
|
// hideNovaFormButtons() {
|
||||||
|
// this.fields.cancelFormButton = document.querySelector('button[dusk="cancel-create-button"]');
|
||||||
|
// this.fields.createFormButton = document.querySelector('button[dusk="create-button"]');
|
||||||
|
|
||||||
|
// this.fields.buttonsContainerElement = this.fields.createFormButton.parentNode;
|
||||||
|
// this.hideFormSubmitButton();
|
||||||
|
// this.hideFormCancelButton();
|
||||||
|
// },
|
||||||
|
|
||||||
|
// addWizardButtons() {
|
||||||
|
// this.fields.buttonsContainerElement.insertAdjacentHTML('afterbegin', this.nextButtonTemplate());
|
||||||
|
// this.fields.buttonsContainerElement.insertAdjacentHTML('afterbegin', this.prevButtonTemplate());
|
||||||
|
|
||||||
|
// this.fields.nextButtonElement = document.getElementById('laravel-nova-wizard-next-button');
|
||||||
|
// this.fields.prevButtonElement = document.getElementById('laravel-nova-wizard-prev-button');
|
||||||
|
|
||||||
|
// this.fields.nextButtonElement.addEventListener('click', () => {
|
||||||
|
// this.nextStep()
|
||||||
|
// })
|
||||||
|
|
||||||
|
// this.fields.prevButtonElement.addEventListener('click', () => {
|
||||||
|
// this.prevStep()
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
|
||||||
|
// nextButtonTemplate() {
|
||||||
|
// return `
|
||||||
|
// <button type="button" id="laravel-nova-wizard-next-button" class="border text-left appearance-none cursor-pointer rounded text-sm font-bold focus:outline-none focus:ring ring-primary-200 dark:ring-gray-600 relative disabled:cursor-not-allowed inline-flex items-center justify-center shadow h-9 px-3 bg-primary-500 border-primary-500 hover:[&:not(:disabled)]:bg-primary-400 hover:[&:not(:disabled)]:border-primary-400 text-white dark:text-gray-900">
|
||||||
|
// <span class="flex items-center gap-1">Next</span>
|
||||||
|
// </button>
|
||||||
|
// `;
|
||||||
|
// },
|
||||||
|
|
||||||
|
// prevButtonTemplate() {
|
||||||
|
// return `
|
||||||
|
// <button type="button" id="laravel-nova-wizard-prev-button" class="border text-left appearance-none cursor-pointer rounded text-sm font-bold focus:outline-none focus:ring ring-primary-200 dark:ring-gray-600 relative disabled:cursor-not-allowed inline-flex items-center justify-center shadow h-9 px-3 bg-red-500 border-red-500 hover:[&:not(:disabled)]:border-primary-400 text-white dark:text-gray-900">
|
||||||
|
// <span class="flex items-center gap-1">Previus</span>
|
||||||
|
// </button>
|
||||||
|
// `;
|
||||||
|
// },
|
||||||
|
|
||||||
|
// hidePrevButton() {
|
||||||
|
// this.fields.prevButtonElement.style.display = 'none'
|
||||||
|
// },
|
||||||
|
|
||||||
|
// showPrevButton() {
|
||||||
|
// this.fields.prevButtonElement.style.display = 'inherit'
|
||||||
|
// },
|
||||||
|
|
||||||
|
// hideNextButton() {
|
||||||
|
// this.fields.nextButtonElement.style.display = 'none'
|
||||||
|
// },
|
||||||
|
|
||||||
|
// showNextButton() {
|
||||||
|
// this.fields.nextButtonElement.style.display = 'inherit'
|
||||||
|
// },
|
||||||
|
|
||||||
|
// showFormSubmitButton() {
|
||||||
|
// this.fields.createFormButton.style.display = 'inherit';
|
||||||
|
// },
|
||||||
|
|
||||||
|
// hideFormSubmitButton() {
|
||||||
|
// this.fields.createFormButton.style.display = 'none';
|
||||||
|
// },
|
||||||
|
|
||||||
|
// hideFormCancelButton() {
|
||||||
|
// this.fields.cancelFormButton.style.display = 'none';
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
|
// function setupMultiStepWizard() {
|
||||||
|
// let refreshIntervalId = setInterval(() => {
|
||||||
|
// let formElement = document.querySelector('form');
|
||||||
|
|
||||||
|
// if (formElement) {
|
||||||
|
// clearInterval(refreshIntervalId)
|
||||||
|
|
||||||
|
// // Div container
|
||||||
|
// let fieldsContainerElement = formElement.firstChild;
|
||||||
|
// // Div elements
|
||||||
|
// let fieldElements = Array.from(fieldsContainerElement.children);
|
||||||
|
|
||||||
|
// // if there a less than 2 divs, no need to wizard it!
|
||||||
|
// if (fieldElements.length < 2) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// LaravelNovaWizardStore.data.steps = fieldElements.length;
|
||||||
|
// LaravelNovaWizardStore.hideNovaFormButtons()
|
||||||
|
// LaravelNovaWizardStore.addWizardButtons()
|
||||||
|
|
||||||
|
// let loopCount = 0;
|
||||||
|
// fieldElements.forEach(item => {
|
||||||
|
// loopCount++;
|
||||||
|
// item.setAttribute('wizard-step', loopCount)
|
||||||
|
|
||||||
|
// if (loopCount === 1) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// item.style.display = 'none'
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }, 300);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Nova.$on('liftedOff', () => {
|
||||||
|
// if (Nova.$router.page.component === 'Nova.Create') {
|
||||||
|
// setupMultiStepWizard()
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
|
||||||
|
// Nova.$router.on('success', (event) => {
|
||||||
|
// if (event.detail.page.component === 'Nova.Create') {
|
||||||
|
// setupMultiStepWizard()
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
|
||||||
|
// document.addEventListener('inertia:navigate', () => {
|
||||||
|
// console.log('page is updating')
|
||||||
|
// })
|
||||||
|
|
||||||
|
// when app is booting
|
||||||
|
// Nova.booting((app, store) => {})
|
||||||
|
|||||||
60
resources/views/vendor/nova/layout.blade.php
vendored
Normal file
60
resources/views/vendor/nova/layout.blade.php
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{ $locale = \Laravel\Nova\Nova::resolveUserLocale(request()) }}" dir="{{ \Laravel\Nova\Nova::rtlEnabled() ? 'rtl' : 'ltr' }}" class="h-full font-sans antialiased">
|
||||||
|
<head>
|
||||||
|
<meta name="theme-color" content="#fff">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
|
<meta name="viewport" content="width=device-width"/>
|
||||||
|
<meta name="locale" content="{{ $locale }}"/>
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
|
||||||
|
@include('nova::partials.meta')
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<link rel="stylesheet" href="{{ mix('app.css', 'vendor/nova') }}">
|
||||||
|
|
||||||
|
@if ($styles = \Laravel\Nova\Nova::availableStyles(request()))
|
||||||
|
<!-- Tool Styles -->
|
||||||
|
@foreach($styles as $asset)
|
||||||
|
<link rel="stylesheet" href="{!! $asset->url() !!}">
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<script>
|
||||||
|
if (localStorage.novaTheme === 'dark' || (!('novaTheme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
||||||
|
document.documentElement.classList.add('dark')
|
||||||
|
} else {
|
||||||
|
document.documentElement.classList.remove('dark')
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body class="min-w-site text-sm font-medium min-h-full text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-900">
|
||||||
|
@inertia
|
||||||
|
|
||||||
|
<!-- Scripts -->
|
||||||
|
<script src="{{ mix('manifest.js', 'vendor/nova') }}"></script>
|
||||||
|
<script src="{{ mix('vendor.js', 'vendor/nova') }}"></script>
|
||||||
|
<script src="{{ mix('app.js', 'vendor/nova') }}"></script>
|
||||||
|
|
||||||
|
<!-- Build Nova Instance -->
|
||||||
|
<script>
|
||||||
|
const config = @json(\Laravel\Nova\Nova::jsonVariables(request()));
|
||||||
|
window.Nova = createNovaApp(config)
|
||||||
|
Nova.countdown()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
@if ($scripts = \Laravel\Nova\Nova::availableScripts(request()))
|
||||||
|
<!-- Tool Scripts -->
|
||||||
|
@foreach ($scripts as $asset)
|
||||||
|
<script src="{!! $asset->url() !!}"></script>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<!-- Start Nova -->
|
||||||
|
<script defer>
|
||||||
|
Nova.liftOff()
|
||||||
|
|
||||||
|
Nova.$emit('liftedOff')
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user