converting react.js codes to laravel php

This commit is contained in:
armiejean 2025-04-14 13:34:21 +08:00
parent 67bcc53114
commit 2b5b210acd
22 changed files with 1382 additions and 77 deletions

View File

@ -0,0 +1,13 @@
<?php
namespace App\Http\Livewire\AboutUs\CardTypes;
use Livewire\Component;
class CardTypes extends Component
{
public function render()
{
return view('livewire.about-us.card-types.card-types');
}
}

View File

@ -0,0 +1,140 @@
<?php
namespace App\Http\Livewire\AboutUs\CardTypes;
use Livewire\Component;
use Livewire\WithFileUploads;
use Illuminate\Support\Facades\Http;
class CardTypesCreate extends Component
{
use WithFileUploads;
public $loading = false;
public $form = [
'code' => '',
'type' => '',
'description' => '',
'image' => null,
'terms_and_conditions' => '',
'faqs' => '',
'virtual_card_font_color' => '1',
'bg_image' => null,
'id_number' => '2',
'id_number_description' => '',
];
public $errors = [];
public function submit()
{
$this->validateForm();
$this->loading = true;
try {
$formData = new \GuzzleHttp\Psr7\MultipartStream([
[
'name' => 'code',
'contents' => $this->form['code'],
],
[
'name' => 'type',
'contents' => $this->form['type'],
],
[
'name' => 'description',
'contents' => $this->form['description'],
],
[
'name' => 'terms_and_conditions',
'contents' => $this->form['terms_and_conditions'],
],
[
'name' => 'faqs',
'contents' => $this->form['faqs'],
],
[
'name' => 'virtual_card_font_color',
'contents' => $this->form['virtual_card_font_color'] == '2' ? '1' : '0',
],
[
'name' => 'id_number',
'contents' => $this->form['id_number'] == '1' ? '1' : '0',
],
[
'name' => 'id_number_description',
'contents' => $this->form['id_number_description'],
],
[
'name' => 'image',
'contents' => $this->form['image'] ? fopen($this->form['image']->getPathname(), 'r') : '',
'filename' => $this->form['image'] ? $this->form['image']->getClientOriginalName() : '',
],
[
'name' => 'bg_image',
'contents' => $this->form['bg_image'] ? fopen($this->form['bg_image']->getPathname(), 'r') : '',
'filename' => $this->form['bg_image'] ? $this->form['bg_image']->getClientOriginalName() : '',
],
]);
$response = Http::withHeaders(['Content-Type' => 'multipart/form-data; boundary=' . $formData->getBoundary()])
->withBody($formData)
->post('https://api.example.com/cardType');
if ($response->successful()) {
session()->flash('success', 'New record added.');
$this->redirect(route('card-types.list'));
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to create record: ' . $e->getMessage());
}
$this->loading = false;
}
public function validateForm()
{
$rules = [
'form.code' => 'required|max:128',
'form.type' => 'required|max:128',
'form.description' => 'required|max:140',
'form.image' => 'required',
'form.virtual_card_font_color' => 'required',
'form.bg_image' => 'required',
'form.terms_and_conditions' => 'required|max:32000',
'form.faqs' => 'required|max:32000',
'form.id_number' => 'required',
'form.id_number_description' => 'required_if:form.id_number,1|max:40',
];
$messages = [
'form.code.required' => 'Card Code is required!',
'form.code.max' => 'Maximum character is 128.',
'form.type.required' => 'Card Type Description is required!',
'form.type.max' => 'Maximum character is 128.',
'form.description.required' => 'Card Type Short Description is required!',
'form.description.max' => 'Maximum character is 140.',
'form.image.required' => 'Upload Card Type Image is required!',
'form.virtual_card_font_color.required' => 'Virtual Card Font Color is required!',
'form.bg_image.required' => 'Upload Card Type Cover Image is required!',
'form.terms_and_conditions.required' => 'Terms and Condition is required!',
'form.terms_and_conditions.max' => 'Maximum character is 32,000.',
'form.faqs.required' => 'FAQs is required!',
'form.faqs.max' => 'Maximum character is 32,000.',
'form.id_number.required' => 'ID Number is required!',
'form.id_number_description.required_if' => 'ID Number Description is required!',
'form.id_number_description.max' => 'Maximum character is 40.',
];
$this->errors = [];
try {
$this->validate($rules, $messages);
} catch (\Exception $e) {
$this->errors = collect($e->errors())->flatten()->toArray();
throw $e;
}
}
public function render()
{
return view('livewire.about-us.card-types.card-types-create');
}
}

View File

@ -0,0 +1,172 @@
<?php
namespace App\Http\Livewire\AboutUs\CardTypes;
use Livewire\Component;
use Livewire\WithFileUploads;
use Illuminate\Support\Facades\Http;
class CardTypesEdit extends Component
{
use WithFileUploads;
public $loading = false;
public $card;
public $form = [
'code' => '',
'type' => '',
'description' => '',
'image' => null,
'terms_and_conditions' => '',
'faqs' => '',
'virtual_card_font_color' => '1',
'bg_image' => null,
'id_number' => '2',
'id_number_description' => '',
];
public $errors = [];
public function mount($id)
{
$this->fetchCard($id);
}
public function fetchCard($id)
{
try {
$response = Http::get("https://api.example.com/cardType/{$id}");
$this->card = $response->json()['data'] ?? null;
if (!$this->card) {
throw new \Exception('No data found');
}
$this->form = [
'code' => $this->card['code'] ?? '',
'type' => $this->card['name'] ?? '',
'description' => $this->card['description'] ?? '',
'image' => $this->card['image'] ?? null,
'terms_and_conditions' => $this->card['terms_and_conditions'] ?? '',
'faqs' => $this->card['faqs'] ?? '',
'virtual_card_font_color' => $this->card['virtual_card_font_color'] == 1 ? '2' : '1',
'bg_image' => $this->card['bg_image'] ?? null,
'id_number' => $this->card['id_number'] == 1 ? '1' : '2',
'id_number_description' => $this->card['id_number_description'] ?? '',
];
} catch (\Exception $e) {
session()->flash('error', 'Failed to load card type details: ' . $e->getMessage());
$this->redirect(route('card-types.list'));
}
}
public function submit()
{
$this->validateForm();
$this->loading = true;
try {
$formData = new \GuzzleHttp\Psr7\MultipartStream([
[
'name' => 'code',
'contents' => $this->form['code'],
],
[
'name' => 'type',
'contents' => $this->form['type'],
],
[
'name' => 'description',
'contents' => $this->form['description'],
],
[
'name' => 'terms_and_conditions',
'contents' => $this->form['terms_and_conditions'],
],
[
'name' => 'faqs',
'contents' => $this->form['faqs'],
],
[
'name' => 'virtual_card_font_color',
'contents' => $this->form['virtual_card_font_color'] == '2' ? '1' : '0',
],
[
'name' => 'id_number',
'contents' => $this->form['id_number'] == '1' ? '1' : '0',
],
[
'name' => 'id_number_description',
'contents' => $this->form['id_number_description'],
],
[
'name' => 'image',
'contents' => $this->form['image'] instanceof \Livewire\TemporaryUploadedFile ? fopen($this->form['image']->getPathname(), 'r') : ($this->form['image'] ?? ''),
'filename' => $this->form['image'] instanceof \Livewire\TemporaryUploadedFile ? $this->form['image']->getClientOriginalName() : '',
],
[
'name' => 'bg_image',
'contents' => $this->form['bg_image'] instanceof \Livewire\TemporaryUploadedFile ? fopen($this->form['bg_image']->getPathname(), 'r') : ($this->form['bg_image'] ?? ''),
'filename' => $this->form['bg_image'] instanceof \Livewire\TemporaryUploadedFile ? $this->form['bg_image']->getClientOriginalName() : '',
],
]);
$response = Http::withHeaders(['Content-Type' => 'multipart/form-data; boundary=' . $formData->getBoundary()])
->withBody($formData)
->post("https://api.example.com/cardTypeUpdate/{$this->card['cardtype_uuid']}");
if ($response->successful()) {
session()->flash('success', 'Record was successfully updated.');
$this->redirect(route('card-types.list'));
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to update record: ' . $e->getMessage());
}
$this->loading = false;
}
public function validateForm()
{
$rules = [
'form.code' => 'required|max:128',
'form.type' => 'required|max:128',
'form.description' => 'required|max:140',
'form.image' => 'required',
'form.virtual_card_font_color' => 'required',
'form.bg_image' => 'required',
'form.terms_and_conditions' => 'required|max:32000',
'form.faqs' => 'required|max:32000',
'form.id_number' => 'required',
'form.id_number_description' => 'required_if:form.id_number,1|max:40',
];
$messages = [
'form.code.required' => 'Card Code is required!',
'form.code.max' => 'Maximum character is 128.',
'form.type.required' => 'Card Type Description is required!',
'form.type.max' => 'Maximum character is 128.',
'form.description.required' => 'Card Type Short Description is required!',
'form.description.max' => 'Maximum character is 140.',
'form.image.required' => 'Upload Card Type Image is required!',
'form.virtual_card_font_color.required' => 'Virtual Card Font Color is required!',
'form.bg_image.required' => 'Upload Card Type Cover Image is required!',
'form.terms_and_conditions.required' => 'Terms and Condition is required!',
'form.terms_and_conditions.max' => 'Maximum character is 32,000.',
'form.faqs.required' => 'FAQs is required!',
'form.faqs.max' => 'Maximum character is 32,000.',
'form.id_number.required' => 'ID Number is required!',
'form.id_number_description.required_if' => 'ID Number Description is required!',
'form.id_number_description.max' => 'Maximum character is 40.',
];
$this->errors = [];
try {
$this->validate($rules, $messages);
} catch (\Exception $e) {
$this->errors = collect($e->errors())->flatten()->toArray();
throw $e;
}
}
public function render()
{
return view('livewire.about-us.card-types.card-types-edit');
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace App\Http\Livewire\AboutUs\CardTypes;
use Livewire\Component;
use Illuminate\Support\Facades\Http;
class CardTypesList extends Component
{
public $cards = [];
public function mount()
{
$this->fetchCards();
}
public function fetchCards()
{
try {
$response = Http::get('https://api.example.com/cardType?page=1&page_size=10&_sort_by=create_dt&_sort_order=desc');
$this->cards = $response->json()['data'] ?? [];
} catch (\Exception $e) {
session()->flash('error', 'Failed to load card types: ' . $e->getMessage());
}
}
public function delete($uuid)
{
try {
$response = Http::delete("https://api.example.com/cardType/{$uuid}");
if ($response->successful()) {
session()->flash('success', 'Record was successfully deleted.');
$this->fetchCards();
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to delete record: ' . $e->getMessage());
}
}
public function render()
{
return view('livewire.about-us.card-types.card-types-list');
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace App\Http\Livewire\AboutUs\CardTypes;
use Livewire\Component;
use Illuminate\Support\Facades\Http;
class CardTypesView extends Component
{
public $card;
public function mount($id)
{
try {
$this->card = $this->fetchFromApi("https://api.example.com/cardType/{$id}");
} catch (\Exception $e) {
session()->flash('error', 'Failed to load card type details: ' . $e->getMessage());
return redirect()->route('card-types.list');
}
}
private function fetchFromApi($url)
{
$response = Http::get($url);
return $response->json()['data'] ?? null;
}
public function delete($uuid)
{
try {
$response = Http::delete("https://api.example.com/cardType/{$uuid}");
if ($response->successful()) {
session()->flash('success', 'Record was successfully deleted.');
return redirect()->route('card-types.list');
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to delete record: ' . $e->getMessage());
}
}
public function render()
{
return view('livewire.about-us.card-types.card-types-view', ['card' => $this->card]);
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace App\Http\Livewire\AboutUs\TermAndPrivacy;
use Livewire\Component;
class TermAndPrivacy extends Component
{
public function render()
{
return view('livewire.about-us.term-and-privacy.term-and-privacy');
}
}

View File

@ -0,0 +1,68 @@
<?php
namespace App\Http\Livewire\AboutUs\TermAndPrivacy;
use Livewire\Component;
use Illuminate\Support\Facades\Http;
class TermAndPrivacyCreate extends Component
{
public $loading = false;
public $type;
public $form = [
'title' => '',
'details' => '',
];
public $errors = [];
public function mount($id)
{
$this->type = $id; // 1 for Terms, 2 for Privacy
}
public function submit()
{
$this->validateForm();
$this->loading = true;
try {
$params = array_merge($this->form, ['type' => $this->type]);
$response = Http::post('https://api.example.com/TermsAndPrivacy', $params);
if ($response->successful()) {
session()->flash('success', 'New record added.');
$this->redirect(route('term-privacy.list'));
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to create record: ' . $e->getMessage());
}
$this->loading = false;
}
public function validateForm()
{
$rules = [
'form.title' => 'required|max:128',
'form.details' => 'required|max:32000',
];
$messages = [
'form.title.required' => 'Title is required!',
'form.title.max' => 'Maximum character is 128.',
'form.details.required' => 'Details is required!',
'form.details.max' => 'Maximum character is 32,000.',
];
$this->errors = [];
try {
$this->validate($rules, $messages);
} catch (\Exception $e) {
$this->errors = collect($e->errors())->flatten()->toArray();
throw $e;
}
}
public function render()
{
return view('livewire.about-us.term-and-privacy.term-and-privacy-create');
}
}

View File

@ -0,0 +1,86 @@
<?php
namespace App\Http\Livewire\AboutUs\TermAndPrivacy;
use Livewire\Component;
use Illuminate\Support\Facades\Http;
class TermAndPrivacyEdit extends Component
{
public $loading = false;
public $term;
public $form = [
'title' => '',
'details' => '',
];
public $errors = [];
public function mount($id)
{
$this->fetchTerm($id);
}
public function fetchTerm($id)
{
try {
$response = Http::get("https://api.example.com/TermsAndPrivacy/{$id}");
$this->term = $response->json()['data'] ?? null;
if (!$this->term) {
throw new \Exception('No data found');
}
$this->form = [
'title' => $this->term['title'] ?? '',
'details' => $this->term['details'] ?? '',
];
} catch (\Exception $e) {
session()->flash('error', 'Failed to load term details: ' . $e->getMessage());
$this->redirect(route('term-privacy.list'));
}
}
public function submit()
{
$this->validateForm();
$this->loading = true;
try {
$params = array_merge($this->form, ['type' => $this->term['type']]);
$response = Http::put("https://api.example.com/TermsAndPrivacy/{$this->term['tp_uuid']}", $params);
if ($response->successful()) {
session()->flash('success', 'Record was successfully updated.');
$this->redirect(route('term-privacy.list'));
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to update record: ' . $e->getMessage());
}
$this->loading = false;
}
public function validateForm()
{
$rules = [
'form.title' => 'required|max:128',
'form.details' => 'required|max:32000',
];
$messages = [
'form.title.required' => 'Title is required!',
'form.title.max' => 'Maximum character is 128.',
'form.details.required' => 'Details is required!',
'form.details.max' => 'Maximum character is 32,000.',
];
$this->errors = [];
try {
$this->validate($rules, $messages);
} catch (\Exception $e) {
$this->errors = collect($e->errors())->flatten()->toArray();
throw $e;
}
}
public function render()
{
return view('livewire.about-us.term-and-privacy.term-and-privacy-edit');
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace App\Http\Livewire\AboutUs\TermAndPrivacy;
use Livewire\Component;
use Illuminate\Support\Facades\Http;
class TermAndPrivacyList extends Component
{
public $terms = [];
public function mount()
{
$this->fetchTerms();
}
public function fetchTerms()
{
try {
$response = Http::get('https://api.example.com/TermsAndPrivacy?page=1&page_size=10&_sort_by=create_dt&_sort_order=desc');
$this->terms = $response->json()['data'] ?? [];
} catch (\Exception $e) {
session()->flash('error', 'Failed to load terms and privacy: ' . $e->getMessage());
}
}
public function delete($uuid)
{
try {
$response = Http::delete("https://api.example.com/TermsAndPrivacy/{$uuid}");
if ($response->successful()) {
session()->flash('success', 'Record was successfully deleted.');
$this->fetchTerms();
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to delete record: ' . $e->getMessage());
}
}
public function render()
{
return view('livewire.about-us.term-and-privacy.term-and-privacy-list');
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace App\Http\Livewire\AboutUs\TermAndPrivacy;
use Livewire\Component;
use Illuminate\Support\Facades\Http;
class TermAndPrivacyView extends Component
{
public $term;
public function mount($id)
{
try {
$this->term = $this->fetchFromApi("https://api.example.com/TermsAndPrivacy/{$id}");
} catch (\Exception $e) {
session()->flash('error', 'Failed to load term details: ' . $e->getMessage());
return redirect()->route('term-privacy.list');
}
}
private function fetchFromApi($url)
{
$response = Http::get($url);
return $response->json()['data'] ?? null;
}
public function delete($uuid)
{
try {
$response = Http::delete("https://api.example.com/TermsAndPrivacy/{$uuid}");
if ($response->successful()) {
session()->flash('success', 'Record was successfully deleted.');
return redirect()->route('term-privacy.list');
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to delete record: ' . $e->getMessage());
}
}
public function render()
{
return view('livewire.about-us.term-and-privacy.term-and-privacy-view', ['term' => $this->term]);
}
}

View File

@ -0,0 +1,126 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5; padding-bottom: 10px;">
<h2 style="margin: 25px 35px;">Card Type Details</h2>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(!empty($errors))
<div class="alert alert-danger">
<ul>
@foreach ($errors as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form wire:submit.prevent="submit">
@include('partials.header-form', [
'title' => 'Card Types',
'action' => '#',
'actionBtnName' => 'Submit',
'cancelAction' => route('card-types.list'),
'cancelBtnName' => 'Cancel'
])
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Card Code</label>
<div class="col-sm-10">
<input type="text" wire:model="form.code" class="form-control" placeholder="Card Code">
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Card Type Description</label>
<div class="col-sm-10">
<input type="text" wire:model="form.type" class="form-control" placeholder="Card Type Description">
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Card Type Short Description</label>
<div class="col-sm-10">
<textarea wire:model="form.description" class="form-control" rows="4" placeholder="Card Type Short Description" maxlength="140"></textarea>
<small class="form-text text-muted">Maximum 140 characters</small>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Upload Card Type Image</label>
<div class="col-sm-10">
<input type="file" wire:model="form.image" class="form-control" accept=".jpg,.png,.gif">
<small class="form-text text-muted">Maximum File Size: 100KB</small>
@if($form['image'] && is_string($form['image']))
<img src="{{ $form['image'] }}" alt="Preview" style="width: 294px; height: 170px; margin-top: 10px;">
@endif
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Virtual Card Font Color</label>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.virtual_card_font_color" value="1" class="form-check-input" id="fontWhite">
<label class="form-check-label" for="fontWhite">White</label>
</div>
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.virtual_card_font_color" value="2" class="form-check-input" id="fontBlack">
<label class="form-check-label" for="fontBlack">Black</label>
</div>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Upload Card Type Cover Image</label>
<div class="col-sm-10">
<input type="file" wire:model="form.bg_image" class="form-control" accept=".jpg,.png,.gif">
<small class="form-text text-muted">Image Size (ex. 375 x 260), Maximum File Size: 100KB</small>
@if($form['bg_image'] && is_string($form['bg_image']))
<img src="{{ $form['bg_image'] }}" alt="Preview" style="width: 294px; height: 170px; margin-top: 10px;">
@endif
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">ID Number Required?</label>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.id_number" value="1" class="form-check-input" id="idYes">
<label class="form-check-label" for="idYes">Yes</label>
</div>
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.id_number" value="2" class="form-check-input" id="idNo">
<label class="form-check-label" for="idNo">No</label>
</div>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">ID Number Description</label>
<div class="col-sm-10">
<textarea wire:model="form.id_number_description" class="form-control" rows="2" placeholder="ID Number Description" maxlength="40" @if($form['id_number'] == '2') disabled @endif></textarea>
<small class="form-text text-muted">Maximum 40 characters</small>
</div>
</div>
<h4 style="margin-left: 190px;">DATA PRIVACY</h4>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Terms & Conditions</label>
<div class="col-sm-10">
<textarea wire:model="form.terms_and_conditions" class="form-control" rows="10" placeholder="Terms & Conditions"></textarea>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">FAQs</label>
<div class="col-sm-10">
<textarea wire:model="form.faqs" class="form-control" rows="10" placeholder="FAQs"></textarea>
</div>
</div>
</form>
</div>

View File

@ -0,0 +1,130 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5; padding-bottom: 10px;">
<h2 style="margin: 25px 35px;">Card Types Details</h2>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(!empty($errors))
<div class="alert alert-danger">
<ul>
@foreach ($errors as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if($card)
<form wire:submit.prevent="submit">
@include('partials.header-form', [
'title' => 'Update Card Type',
'action' => '#',
'actionBtnName' => 'Submit',
'cancelAction' => route('card-types.list'),
'cancelBtnName' => 'Cancel'
])
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Card Code</label>
<div class="col-sm-10">
<input type="text" wire:model="form.code" class="form-control" placeholder="Card Code">
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Card Type Description</label>
<div class="col-sm-10">
<input type="text" wire:model="form.type" class="form-control" placeholder="Card Type Description">
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Card Type Short Description</label>
<div class="col-sm-10">
<textarea wire:model="form.description" class="form-control" rows="4" placeholder="Card Type Short Description" maxlength="140"></textarea>
<small class="form-text text-muted">Maximum 140 characters</small>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Upload Card Type Image</label>
<div class="col-sm-10">
<input type="file" wire:model="form.image" class="form-control" accept=".jpg,.png,.gif">
<small class="form-text text-muted">Maximum File Size: 100KB</small>
@if($form['image'] && is_string($form['image']))
<img src="{{ $form['image'] }}" alt="Preview" style="width: 294px; height: 170px; margin-top: 10px;">
@endif
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Virtual Card Font Color</label>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.virtual_card_font_color" value="1" class="form-check-input" id="fontWhiteEdit">
<label class="form-check-label" for="fontWhiteEdit">White</label>
</div>
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.virtual_card_font_color" value="2" class="form-check-input" id="fontBlackEdit">
<label class="form-check-label" for="fontBlackEdit">Black</label>
</div>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Upload Card Type Cover Image</label>
<div class="col-sm-10">
<input type="file" wire:model="form.bg_image" class="form-control" accept=".jpg,.png,.gif">
<small class="form-text text-muted">Image Size (ex. 375 x 260), Maximum File Size: 100KB</small>
@if($form['bg_image'] && is_string($form['bg_image']))
<img src="{{ $form['bg_image'] }}" alt="Preview" style="width: 294px; height: 170px; margin-top: 10px;">
@endif
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">ID Number Required?</label>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.id_number" value="1" class="form-check-input" id="idYesEdit">
<label class="form-check-label" for="idYesEdit">Yes</label>
</div>
<div class="form-check form-check-inline">
<input type="radio" wire:model="form.id_number" value="2" class="form-check-input" id="idNoEdit">
<label class="form-check-label" for="idNoEdit">No</label>
</div>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">ID Number Description</label>
<div class="col-sm-10">
<textarea wire:model="form.id_number_description" class="form-control" rows="2" placeholder="ID Number Description" maxlength="40" @if($form['id_number'] == '2') disabled @endif></textarea>
<small class="form-text text-muted">Maximum 40 characters</small>
</div>
</div>
<h4 style="margin-left: 190px;">DATA PRIVACY</h4>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">Terms & Conditions</label>
<div class="col-sm-10">
<textarea wire:model="form.terms_and_conditions" class="form-control" rows="10" placeholder="Terms & Conditions"></textarea>
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-6 col-form-label">FAQs</label>
<div class="col-sm-10">
<textarea wire:model="form.faqs" class="form-control" rows="10" placeholder="FAQs"></textarea>
</div>
</div>
</form>
@else
<p>No card type data found.</p>
@endif
</div>

View File

@ -0,0 +1,48 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5;">
@include('partials.header-form', [
'title' => 'Card Types',
'action' => route('card-types.create'),
'actionBtnName' => 'Add Card'
])
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
<div class="card">
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>Card Type Code</th>
<th>Card Type Description</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($cards as $card)
<tr>
<td>{{ $card['code'] }}</td>
<td>{{ $card['name'] }}</td>
<td>
<a href="{{ route('card-types.edit', $card['cardtype_uuid']) }}" class="btn btn-primary btn-sm me-2">
<i class="fas fa-edit"></i> Edit
</a>
<button wire:click="delete('{{ $card['cardtype_uuid'] }}')" class="btn btn-danger btn-sm me-2">
<i class="fas fa-trash"></i> Delete
</button>
<a href="{{ route('card-types.view', $card['cardtype_uuid']) }}" class="btn btn-info btn-sm">
<i class="fas fa-eye"></i> View
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>

View File

@ -0,0 +1,77 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5; padding-bottom: 10px;">
@include('partials.header-form', [
'title' => 'Card Type Details',
'action' => route('card-types.edit', ['id' => $card['cardtype_uuid'] ?? '']),
'actionBtnName' => 'Update',
'styleBtn' => 'background: white; border-color: rgb(184, 187, 201); color: rgb(101, 105, 127)',
'deleteAction' => "delete('{{ $card['cardtype_uuid'] ?? '' }}')",
'deleteBtnName' => 'Delete'
])
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if($card)
<div class="card">
<div class="card-body">
<div style="padding: 15px 30px 0px;">
<h2 style="margin: 0 0 20px;">Details</h2>
<h2 style="font-weight: bold; font-size: 16px;">CARD DETAILS</h2>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Card Code:</span></div>
<div class="col-7">{{ $card['code'] }}</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Card Type Description:</span></div>
<div class="col-7">{{ $card['name'] }}</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Card Type Short Description:</span></div>
<div class="col-7">{{ $card['description'] }}</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Card Type Image:</span></div>
<div class="col-7">
<img src="{{ $card['image'] }}" alt="Card Image" style="width: 300px; max-height: 250px;" onerror="this.src='https://via.placeholder.com/300x250?text=No+Image';">
</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Virtual Card Font Color:</span></div>
<div class="col-7">{{ $card['virtual_card_font_color'] ? 'Black' : 'White' }}</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Card Type Cover Image:</span></div>
<div class="col-7">
<img src="{{ $card['bg_image'] }}" alt="Cover Image" style="width: 300px; max-height: 250px;" onerror="this.src='https://via.placeholder.com/300x250?text=No+Image';">
</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">ID Number Required:</span></div>
<div class="col-7">{{ $card['id_number'] ? 'Yes' : 'No' }}</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">ID Number Description:</span></div>
<div class="col-7">{{ $card['id_number_description'] }}</div>
</div>
<h2 style="font-weight: bold; font-size: 16px; margin: 15px 0 10px;">DATA PRIVACY DETAILS</h2>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">Terms and Conditions:</span></div>
<div class="col-7">{{ $card['terms_and_conditions'] }}</div>
</div>
<div class="row mb-2">
<div class="col-5"><span style="font-weight: 600;">FAQs:</span></div>
<div class="col-7">{{ $card['faqs'] }}</div>
</div>
</div>
</div>
</div>
@else
<p>No card type data found.</p>
@endif
</div>

View File

@ -0,0 +1,15 @@
<div class="container mt-4" style="position: relative; border: 1px solid #E6ECF5;">
@if(Request::is('about-us'))
<script>
window.location.href = '{{ route('card-types.list') }}';
</script>
@elseif(Request::is('about-us/card-types'))
<livewire:about-us.card-types.card-types-list />
@elseif(Request::is('about-us/card-types/create'))
<livewire:about-us.card-types.card-types-create />
@elseif(Request::is('about-us/card-types/edit/*'))
<livewire:about-us.card-types.card-types-edit />
@elseif(Request::is('about-us/card-types/view/*'))
<livewire:about-us.card-types.card-types-view />
@endif
</div>

View File

@ -0,0 +1,45 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5; padding-bottom: 30px;">
<h2 style="margin: 25px 35px;">{{ $type == 1 ? 'Terms' : 'Privacy Policy' }} Details</h2>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(!empty($errors))
<div class="alert alert-danger">
<ul>
@foreach ($errors as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form wire:submit.prevent="submit">
@include('partials.header-form', [
'title' => $type == 1 ? 'Terms' : 'Privacy Policy',
'action' => '#',
'actionBtnName' => 'Submit',
'cancelAction' => route('term-privacy.list'),
'cancelBtnName' => 'Cancel'
])
<div class="mb-3 row">
<label class="col-sm-4 col-form-label">Title</label>
<div class="col-sm-16">
<input type="text" wire:model="form.title" class="form-control" placeholder="Title">
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-4 col-form-label">Details</label>
<div class="col-sm-16">
<textarea wire:model="form.details" class="form-control" rows="10" placeholder="Details"></textarea>
</div>
</div>
</form>
</div>

View File

@ -0,0 +1,49 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5; padding-bottom: 30px;">
<h2 style="margin: 25px 35px;">Update Terms</h2>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(!empty($errors))
<div class="alert alert-danger">
<ul>
@foreach ($errors as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if($term)
<form wire:submit.prevent="submit">
@include('partials.header-form', [
'title' => 'Update Terms',
'action' => '#',
'actionBtnName' => 'Submit',
'cancelAction' => route('term-privacy.list'),
'cancelBtnName' => 'Cancel'
])
<div class="mb-3 row">
<label class="col-sm-4 col-form-label">Title</label>
<div class="col-sm-16">
<input type="text" wire:model="form.title" class="form-control" placeholder="Title">
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-4 col-form-label">Details</label>
<div class="col-sm-16">
<textarea wire:model="form.details" class="form-control" rows="10" placeholder="Details"></textarea>
</div>
</div>
</form>
@else
<p>No term data found.</p>
@endif
</div>

View File

@ -0,0 +1,54 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5;">
@include('partials.header-form', [
'title' => 'Terms & Privacy',
'actionTerms' => route('term-privacy.create', 1),
'actionBtnNameTerms' => 'Add Terms',
'actionPrivacy' => route('term-privacy.create', 2),
'actionBtnNamePrivacy' => 'Add Privacy'
])
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
<div class="card">
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>Title</th>
<th>Details</th>
<th>Type</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($terms as $term)
<tr>
<td>{{ $term['title'] }}</td>
<td style="width: 490px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
{{ $term['details'] }}
</td>
<td>{{ $term['type'] == 1 ? 'Terms' : 'Privacy' }}</td>
<td>
<a href="{{ route('term-privacy.edit', $term['tp_uuid']) }}" class="btn btn-primary btn-sm me-2">
<i class="fas fa-edit"></i> Edit
</a>
<button wire:click="delete('{{ $term['tp_uuid'] }}')" class="btn btn-danger btn-sm me-2">
<i class="fas fa-trash"></i> Delete
</button>
<a href="{{ route('term-privacy.view', $term['tp_uuid']) }}" class="btn btn-info btn-sm">
<i class="fas fa-eye"></i> View
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>

View File

@ -0,0 +1,42 @@
<div class="container mt-4" style="border: 1px solid #E6ECF5; padding-bottom: 10px;">
@include('partials.header-form', [
'title' => 'Terms & Privacy Details',
'action' => route('term-privacy.edit', ['id' => $term['tp_uuid'] ?? '']),
'actionBtnName' => 'Update',
'styleBtn' => 'background: white; border-color: rgb(184, 187, 201); color: rgb(101, 105, 127)',
'deleteAction' => "delete('{{ $term['tp_uuid'] ?? '' }}')",
'deleteBtnName' => 'Delete'
])
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if($term)
<div class="card">
<div class="card-body">
<div style="padding: 15px 30px 30px;">
<h2 style="margin: 0 0 20px;">Details</h2>
<div class="row mb-2">
<div class="col-3"><span style="font-weight: 600;">Title:</span></div>
<div class="col-9">{{ $term['title'] }}</div>
</div>
<div class="row">
<div class="col-3"><span style="font-weight: 600;">Details:</span></div>
<div class="col-9">
<pre style="overflow: auto; overflow-wrap: break-word; white-space: pre-wrap; word-wrap: break-word;">
{{ $term['details'] }}
</pre>
</div>
</div>
</div>
</div>
</div>
@else
<p>No term data found.</p>
@endif
</div>

View File

@ -0,0 +1,15 @@
<div class="container mt-4" style="position: relative; border: 1px solid #E6ECF5;">
@if(Request::is('about-us'))
<script>
window.location.href = '{{ route('term-privacy.list') }}';
</script>
@elseif(Request::is('about-us/term-privacy'))
<livewire:about-us.term-and-privacy.term-and-privacy-list />
@elseif(Request::is('about-us/term-privacy/create/*'))
<livewire:about-us.term-and-privacy.term-and-privacy-create />
@elseif(Request::is('about-us/term-privacy/edit/*'))
<livewire:about-us.term-and-privacy.term-and-privacy-edit />
@elseif(Request::is('about-us/term-privacy/view/*'))
<livewire:about-us.term-and-privacy.term-and-privacy-view />
@endif
</div>

View File

@ -6,7 +6,16 @@
@if(isset($action) && !$disabled) @if(isset($action) && !$disabled)
<a href="{{ $action }}" class="btn" style="{{ $styleBtn ?? '' }}">{{ $actionBtnName }}</a> <a href="{{ $action }}" class="btn" style="{{ $styleBtn ?? '' }}">{{ $actionBtnName }}</a>
@endif @endif
@if(isset($actionTerms))
<a href="{{ $actionTerms }}" class="btn" style="{{ $styleBtn ?? '' }}">{{ $actionBtnNameTerms }}</a>
@endif
@if(isset($actionPrivacy))
<a href="{{ $actionPrivacy }}" class="btn" style="{{ $styleBtn ?? '' }}">{{ $actionBtnNamePrivacy }}</a>
@endif
@if(isset($deleteAction)) @if(isset($deleteAction))
<button wire:click="{{ $deleteAction }}" class="btn btn-danger ms-2">{{ $deleteBtnName }}</button> <button wire:click="{{ $deleteAction }}" class="btn btn-danger ms-2">{{ $deleteBtnName }}</button>
@endif @endif
@if(isset($cancelAction))
<a href="{{ $cancelAction }}" class="btn btn-secondary ms-2">{{ $cancelBtnName }}</a>
@endif
</div> </div>

View File

@ -87,6 +87,31 @@ use App\Http\Livewire\PhotoSlider\PhotoSliderCreate;
use App\Http\Livewire\PhotoSlider\PhotoSliderEdit; use App\Http\Livewire\PhotoSlider\PhotoSliderEdit;
use App\Http\Livewire\AboutUs\TermAndPrivacy\TermAndPrivacy;
use App\Http\Livewire\AboutUs\TermAndPrivacy\TermAndPrivacyList;
use App\Http\Livewire\AboutUs\TermAndPrivacy\TermAndPrivacyCreate;
use App\Http\Livewire\AboutUs\TermAndPrivacy\TermAndPrivacyEdit;
use App\Http\Livewire\AboutUs\TermAndPrivacy\TermAndPrivacyView;
use App\Http\Livewire\AboutUs\CardTypes\CardTypes;
use App\Http\Livewire\AboutUs\CardTypes\CardTypesList;
use App\Http\Livewire\AboutUs\CardTypes\CardTypesCreate;
use App\Http\Livewire\AboutUs\CardTypes\CardTypesEdit;
use App\Http\Livewire\AboutUs\CardTypes\CardTypesView;
// Route::get('/about-us', CardTypes::class)->name('about-us.index');
// Route::get('/about-us/card-types', CardTypesList::class)->name('card-types.list');
// Route::get('/about-us/card-types/create', CardTypesCreate::class)->name('card-types.create');
// Route::get('/about-us/card-types/edit/{id}', CardTypesEdit::class)->name('card-types.edit');
// Route::get('/about-us/card-types/view/{id}', CardTypesView::class)->name('card-types.view');
// Route::get('/about-us/term-privacy', TermAndPrivacyList::class)->name('term-privacy.list');
// Route::get('/about-us/term-privacy/create/{id}', TermAndPrivacyCreate::class)->name('term-privacy.create');
// Route::get('/about-us/term-privacy/edit/{id}', TermAndPrivacyEdit::class)->name('term-privacy.edit');
// Route::get('/about-us/term-privacy/view/{id}', TermAndPrivacyView::class)->name('term-privacy.view');
// Route::get('/home-page/photo-slider', PhotoSlider::class)->name('photo-slider.index'); // Route::get('/home-page/photo-slider', PhotoSlider::class)->name('photo-slider.index');
// Route::get('/home-page/photo-slider/create', PhotoSlider::class)->name('photo-slider.create'); // Route::get('/home-page/photo-slider/create', PhotoSlider::class)->name('photo-slider.create');
// Route::get('/home-page/photo-slider/edit/{id}', PhotoSlider::class)->name('photo-slider.edit'); // Route::get('/home-page/photo-slider/edit/{id}', PhotoSlider::class)->name('photo-slider.edit');
@ -130,19 +155,19 @@ use App\Http\Livewire\PhotoSlider\PhotoSliderEdit;
Route::middleware(['auth'])->group(function () { // Route::middleware(['auth'])->group(function () {
Route::get('/user-management', \App\Livewire\UserManagement\UserList::class)->name('user-management'); // Route::get('/user-management', \App\Livewire\UserManagement\UserList::class)->name('user-management');
Route::get('/user-management/create', \App\Livewire\UserManagement\Create::class)->name('user-management.create'); // Route::get('/user-management/create', \App\Livewire\UserManagement\Create::class)->name('user-management.create');
Route::get('/user-management/edit/{id}', \App\Livewire\UserManagement\Edit::class)->name('user-management.edit'); // Route::get('/user-management/edit/{id}', \App\Livewire\UserManagement\Edit::class)->name('user-management.edit');
Route::get('/user-management/view/{id}', \App\Livewire\UserManagement\View::class)->name('user-management.view'); // Route::get('/user-management/view/{id}', \App\Livewire\UserManagement\View::class)->name('user-management.view');
}); // });
Route::middleware(['auth'])->group(function () { // Route::middleware(['auth'])->group(function () {
Route::get('/top-up', \App\Livewire\TopUp\TopUpList::class)->name('top-up'); // Route::get('/top-up', \App\Livewire\TopUp\TopUpList::class)->name('top-up');
Route::get('/top-up/create', \App\Livewire\TopUp\Create::class)->name('top-up.create'); // Route::get('/top-up/create', \App\Livewire\TopUp\Create::class)->name('top-up.create');
Route::get('/top-up/edit/{id}', \App\Livewire\TopUp\Edit::class)->name('top-up.edit'); // Route::get('/top-up/edit/{id}', \App\Livewire\TopUp\Edit::class)->name('top-up.edit');
Route::get('/top-up/view/{id}', \App\Livewire\TopUp\View::class)->name('top-up.view'); // Route::get('/top-up/view/{id}', \App\Livewire\TopUp\View::class)->name('top-up.view');
}); // });
// Route::middleware(['auth'])->group(function () { // Route::middleware(['auth'])->group(function () {
// Route::get('/system-parameters', \App\Livewire\SystemPreferences\Create::class)->name('system-parameters'); // Route::get('/system-parameters', \App\Livewire\SystemPreferences\Create::class)->name('system-parameters');
@ -159,92 +184,92 @@ Route::middleware(['auth'])->group(function () {
Route::get('/change-password', \App\Livewire\ChangePassword::class)->name('change-password'); // Route::get('/change-password', \App\Livewire\ChangePassword::class)->name('change-password');
Route::get('/registration', \App\Livewire\Registration::class)->name('registration'); // Route::get('/registration', \App\Livewire\Registration::class)->name('registration');
Route::get('/topup-success-page', \App\Livewire\PublicTopSuccessPage::class)->name('topup-success'); // Route::get('/topup-success-page', \App\Livewire\PublicTopSuccessPage::class)->name('topup-success');
Route::get('/topup-error-page', \App\Livewire\PublicTopErrorPage::class)->name('topup-error'); // Route::get('/topup-error-page', \App\Livewire\PublicTopErrorPage::class)->name('topup-error');
Route::get('/login', \App\Livewire\Login::class)->name('login'); Route::get('/login', \App\Livewire\Login::class)->name('login');
Route::get('/change-password', \App\Livewire\ChangePassword::class)->name('change-password'); // Route::get('/change-password', \App\Livewire\ChangePassword::class)->name('change-password');
Route::get('/fetch-data/{url}', FetchData::class)->name('fetch.data'); // Route::get('/fetch-data/{url}', FetchData::class)->name('fetch.data');
Route::get('/logout', Logout::class)->name('logout'); // Route::get('/logout', Logout::class)->name('logout');
Route::get('/error-handler', ErrorHandler::class)->name('error.handler'); // Route::get('/error-handler', ErrorHandler::class)->name('error.handler');
Route::get('/404', function () { // Route::get('/404', function () {
return view('errors.404'); // return view('errors.404');
})->name('404'); // })->name('404');
Route::get('/auth-status', function () { // Route::get('/auth-status', function () {
return view('auth-status'); // return view('auth-status');
})->name('auth.status'); // })->name('auth.status');
Route::get('/fetch-data-status', function () { // Route::get('/fetch-data-status', function () {
return view('fetch-data-status'); // return view('fetch-data-status');
})->name('fetch.data.status'); // })->name('fetch.data.status');
Route::get('/logout-status', function () { // Route::get('/logout-status', function () {
return view('logout-status'); // return view('logout-status');
})->name('logout.status'); // })->name('logout.status');
Route::get('/global-constants', function () { return view('global-constants'); })->name('global.constants'); // Route::get('/global-constants', function () { return view('global-constants'); })->name('global.constants');
Route::get('/validation-display', function () { return view('validation-display'); })->name('validation.display'); // Route::get('/validation-display', function () { return view('validation-display'); })->name('validation.display');
Route::get('/response-display', function () { return view('response-display'); })->name('response.display'); // Route::get('/response-display', function () { return view('response-display'); })->name('response.display');
Route::get('/action-types', function () { return view('action-types'); })->name('action.types'); // Route::get('/action-types', function () { return view('action-types'); })->name('action.types');
Route::get('/dashboard', function () { return view('dashboard'); })->name('dashboard'); // Route::get('/dashboard', function () { return view('dashboard'); })->name('dashboard');
Route::get('/my-profile', function () { // Route::get('/my-profile', function () {
return view('my-profile'); // return view('my-profile');
})->name('my-profile'); // })->name('my-profile');
Route::get('/custom-table', function () { // Route::get('/custom-table', function () {
return view('custom-table'); // return view('custom-table');
})->name('custom.table'); // })->name('custom.table');
Route::get('/dropdown-export', function () { // Route::get('/dropdown-export', function () {
return view('dropdown-export'); // return view('dropdown-export');
})->name('dropdown.export'); // })->name('dropdown.export');
Route::get('/data-list', function () { // Route::get('/data-list', function () {
return view('data-list'); // return view('data-list');
})->name('data.list'); // })->name('data.list');
Route::get('/upload-image', function () { return view('upload-image'); })->name('upload.image'); // Route::get('/upload-image', function () { return view('upload-image'); })->name('upload.image');
Route::get('/radio-form', function () { return view('radio-form'); })->name('radio.form'); // Route::get('/radio-form', function () { return view('radio-form'); })->name('radio.form');
Route::get('/select-form', function () { return view('select-form'); })->name('select.form'); // Route::get('/select-form', function () { return view('select-form'); })->name('select.form');
Route::get('/single-upload-image', function () { return view('single-upload-image'); })->name('single.upload.image'); // Route::get('/single-upload-image', function () { return view('single-upload-image'); })->name('single.upload.image');
Route::get('/time-picker-form', function () { return view('time-picker-form'); })->name('time.picker.form'); // Route::get('/time-picker-form', function () { return view('time-picker-form'); })->name('time.picker.form');
Route::get('/advance-table', function () { return view('advance-table'); })->name('advance.table'); // Route::get('/advance-table', function () { return view('advance-table'); })->name('advance.table');
Route::get('/table-layout', function () { return view('table-layout'); })->name('table.layout'); // Route::get('/table-layout', function () { return view('table-layout'); })->name('table.layout');
Route::get('/station-table', function () { return view('station-table'); })->name('station.table'); // Route::get('/station-table', function () { return view('station-table'); })->name('station.table');
Route::get('/403', function () { return view('error-403'); })->name('error.403'); // Route::get('/403', function () { return view('error-403'); })->name('error.403');
Route::get('/404', function () { return view('error-404'); })->name('error.404'); // Route::get('/404', function () { return view('error-404'); })->name('error.404');
Route::get('/404-new', function () { return view('error-404-new'); })->name('error.404.new'); // Route::get('/404-new', function () { return view('error-404-new'); })->name('error.404.new');
Route::get('/notifications', function () { return view('notification-table'); })->name('notifications'); // Route::get('/notifications', function () { return view('notification-table'); })->name('notifications');
Route::get('/locations', function () { return view('locations'); })->name('locations'); // Route::get('/locations', function () { return view('locations'); })->name('locations');
Route::get('/test-modal', function () { return view('test-modal'); })->name('test.modal'); // Route::get('/test-modal', function () { return view('test-modal'); })->name('test.modal');
Route::get('/login', function () { return view('login'); })->name('login'); // Route::get('/login', function () { return view('login'); })->name('login');
Route::get('/loading', function () { return view('loading'); })->name('loading'); // Route::get('/loading', function () { return view('loading'); })->name('loading');
Route::get('/advance-search-filter', function () { return view('advance-search-filter'); })->name('advance.search.filter'); // Route::get('/advance-search-filter', function () { return view('advance-search-filter'); })->name('advance.search.filter');
Route::get('/cascader-form', function () { return view('cascader-form'); })->name('cascader.form'); // Route::get('/cascader-form', function () { return view('cascader-form'); })->name('cascader.form');
Route::get('/checkbox-form', function () { return view('checkbox-form'); })->name('checkbox.form'); // Route::get('/checkbox-form', function () { return view('checkbox-form'); })->name('checkbox.form');
Route::get('/date-picker-form', function () { return view('date-picker-form'); })->name('date.picker.form'); // Route::get('/date-picker-form', function () { return view('date-picker-form'); })->name('date.picker.form');
Route::get('/header-form', function () { return view('header-form'); })->name('header.form'); // Route::get('/header-form', function () { return view('header-form'); })->name('header.form');
Route::get('/input-mask-number-form', function () { return view('input-mask-number-form'); })->name('input.mask.number.form'); // Route::get('/input-mask-number-form', function () { return view('input-mask-number-form'); })->name('input.mask.number.form');
Route::get('/input-number-ant-d', function () { return view('input-number-ant-d'); })->name('input.number.antd'); // Route::get('/input-number-ant-d', function () { return view('input-number-ant-d'); })->name('input.number.antd');
Route::get('/input-password', function () { return view('input-password'); })->name('input.password'); // Route::get('/input-password', function () { return view('input-password'); })->name('input.password');
Route::get('/input-text-area', function () { return view('input-text-area'); })->name('input.text.area'); // Route::get('/input-text-area', function () { return view('input-text-area'); })->name('input.text.area');
Route::get('/input-form', function () { return view('input-form'); })->name('input.form'); // Route::get('/input-form', function () { return view('input-form'); })->name('input.form');
Route::get('/multi-select-form', function () { return view('multi-select-form'); })->name('multi.select.form'); // Route::get('/multi-select-form', function () { return view('multi-select-form'); })->name('multi.select.form');
Route::get('/multi-select-options', function () { return view('multi-select-options'); })->name('multi.select.options'); // Route::get('/multi-select-options', function () { return view('multi-select-options'); })->name('multi.select.options');