From 2b5b210acd7a05409a02c473d88d8cfb03ca7cef Mon Sep 17 00:00:00 2001 From: armiejean Date: Mon, 14 Apr 2025 13:34:21 +0800 Subject: [PATCH] converting react.js codes to laravel php --- app/Livewire/AboutUs/CardTypes/CardTypes.php | 13 ++ .../AboutUs/CardTypes/CardTypesCreate.php | 140 ++++++++++++++ .../AboutUs/CardTypes/CardTypesEdit.php | 172 +++++++++++++++++ .../AboutUs/CardTypes/CardTypesList.php | 44 +++++ .../AboutUs/CardTypes/CardTypesView.php | 45 +++++ .../AboutUs/TermAndPrivacy/TermAndPrivacy.php | 13 ++ .../TermAndPrivacy/TermAndPrivacyCreate.php | 68 +++++++ .../TermAndPrivacy/TermAndPrivacyEdit.php | 86 +++++++++ .../TermAndPrivacy/TermAndPrivacyList.php | 44 +++++ .../TermAndPrivacy/TermAndPrivacyView.php | 45 +++++ .../card-types/card-types-create.blade.php | 126 ++++++++++++ .../card-types/card-types-edit.blade.php | 130 +++++++++++++ .../card-types/card-types-list.blade.php | 48 +++++ .../card-types/card-types-view.blade.php | 77 ++++++++ .../about-us/card-types/card-types.blade.php | 15 ++ .../term-and-privacy-create.blade.php | 45 +++++ .../term-and-privacy-edit.blade.php | 49 +++++ .../term-and-privacy-list.blade.php | 54 ++++++ .../term-and-privacy-view.blade.php | 42 ++++ .../term-and-privacy.blade.php | 15 ++ .../views/partials/header-form.blade.php | 9 + routes/web.php | 179 ++++++++++-------- 22 files changed, 1382 insertions(+), 77 deletions(-) create mode 100644 app/Livewire/AboutUs/CardTypes/CardTypes.php create mode 100644 app/Livewire/AboutUs/CardTypes/CardTypesCreate.php create mode 100644 app/Livewire/AboutUs/CardTypes/CardTypesEdit.php create mode 100644 app/Livewire/AboutUs/CardTypes/CardTypesList.php create mode 100644 app/Livewire/AboutUs/CardTypes/CardTypesView.php create mode 100644 app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacy.php create mode 100644 app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyCreate.php create mode 100644 app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyEdit.php create mode 100644 app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyList.php create mode 100644 app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyView.php create mode 100644 resources/views/livewire/about-us/card-types/card-types-create.blade.php create mode 100644 resources/views/livewire/about-us/card-types/card-types-edit.blade.php create mode 100644 resources/views/livewire/about-us/card-types/card-types-list.blade.php create mode 100644 resources/views/livewire/about-us/card-types/card-types-view.blade.php create mode 100644 resources/views/livewire/about-us/card-types/card-types.blade.php create mode 100644 resources/views/livewire/about-us/term-and-privacy/term-and-privacy-create.blade.php create mode 100644 resources/views/livewire/about-us/term-and-privacy/term-and-privacy-edit.blade.php create mode 100644 resources/views/livewire/about-us/term-and-privacy/term-and-privacy-list.blade.php create mode 100644 resources/views/livewire/about-us/term-and-privacy/term-and-privacy-view.blade.php create mode 100644 resources/views/livewire/about-us/term-and-privacy/term-and-privacy.blade.php diff --git a/app/Livewire/AboutUs/CardTypes/CardTypes.php b/app/Livewire/AboutUs/CardTypes/CardTypes.php new file mode 100644 index 0000000..d49cb02 --- /dev/null +++ b/app/Livewire/AboutUs/CardTypes/CardTypes.php @@ -0,0 +1,13 @@ + '', + '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'); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/CardTypes/CardTypesEdit.php b/app/Livewire/AboutUs/CardTypes/CardTypesEdit.php new file mode 100644 index 0000000..be12464 --- /dev/null +++ b/app/Livewire/AboutUs/CardTypes/CardTypesEdit.php @@ -0,0 +1,172 @@ + '', + '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'); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/CardTypes/CardTypesList.php b/app/Livewire/AboutUs/CardTypes/CardTypesList.php new file mode 100644 index 0000000..cb3e69b --- /dev/null +++ b/app/Livewire/AboutUs/CardTypes/CardTypesList.php @@ -0,0 +1,44 @@ +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'); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/CardTypes/CardTypesView.php b/app/Livewire/AboutUs/CardTypes/CardTypesView.php new file mode 100644 index 0000000..fec0eee --- /dev/null +++ b/app/Livewire/AboutUs/CardTypes/CardTypesView.php @@ -0,0 +1,45 @@ +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]); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacy.php b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacy.php new file mode 100644 index 0000000..6742eb8 --- /dev/null +++ b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacy.php @@ -0,0 +1,13 @@ + '', + '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'); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyEdit.php b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyEdit.php new file mode 100644 index 0000000..ac8be11 --- /dev/null +++ b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyEdit.php @@ -0,0 +1,86 @@ + '', + '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'); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyList.php b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyList.php new file mode 100644 index 0000000..160df48 --- /dev/null +++ b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyList.php @@ -0,0 +1,44 @@ +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'); + } +} \ No newline at end of file diff --git a/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyView.php b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyView.php new file mode 100644 index 0000000..24e2972 --- /dev/null +++ b/app/Livewire/AboutUs/TermAndPrivacy/TermAndPrivacyView.php @@ -0,0 +1,45 @@ +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]); + } +} \ No newline at end of file diff --git a/resources/views/livewire/about-us/card-types/card-types-create.blade.php b/resources/views/livewire/about-us/card-types/card-types-create.blade.php new file mode 100644 index 0000000..7ed5e33 --- /dev/null +++ b/resources/views/livewire/about-us/card-types/card-types-create.blade.php @@ -0,0 +1,126 @@ +
+

Card Type Details

+ + @if(session('error')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + + @if(!empty($errors)) +
+
    + @foreach ($errors as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + +
+ @include('partials.header-form', [ + 'title' => 'Card Types', + 'action' => '#', + 'actionBtnName' => 'Submit', + 'cancelAction' => route('card-types.list'), + 'cancelBtnName' => 'Cancel' + ]) + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ + Maximum 140 characters +
+
+ +
+ +
+ + Maximum File Size: 100KB + @if($form['image'] && is_string($form['image'])) + Preview + @endif +
+
+ +
+ +
+
+ + +
+
+ + +
+
+
+ +
+ +
+ + Image Size (ex. 375 x 260), Maximum File Size: 100KB + @if($form['bg_image'] && is_string($form['bg_image'])) + Preview + @endif +
+
+ +
+ +
+
+ + +
+
+ + +
+
+
+ +
+ +
+ + Maximum 40 characters +
+
+ +

DATA PRIVACY

+
+ +
+ +
+
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/resources/views/livewire/about-us/card-types/card-types-edit.blade.php b/resources/views/livewire/about-us/card-types/card-types-edit.blade.php new file mode 100644 index 0000000..61ac9a2 --- /dev/null +++ b/resources/views/livewire/about-us/card-types/card-types-edit.blade.php @@ -0,0 +1,130 @@ +
+

Card Types Details

+ + @if(session('error')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + + @if(!empty($errors)) +
+
    + @foreach ($errors as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + + @if($card) +
+ @include('partials.header-form', [ + 'title' => 'Update Card Type', + 'action' => '#', + 'actionBtnName' => 'Submit', + 'cancelAction' => route('card-types.list'), + 'cancelBtnName' => 'Cancel' + ]) + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ + Maximum 140 characters +
+
+ +
+ +
+ + Maximum File Size: 100KB + @if($form['image'] && is_string($form['image'])) + Preview + @endif +
+
+ +
+ +
+
+ + +
+
+ + +
+
+
+ +
+ +
+ + Image Size (ex. 375 x 260), Maximum File Size: 100KB + @if($form['bg_image'] && is_string($form['bg_image'])) + Preview + @endif +
+
+ +
+ +
+
+ + +
+
+ + +
+
+
+ +
+ +
+ + Maximum 40 characters +
+
+ +

DATA PRIVACY

+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ @else +

No card type data found.

+ @endif +
\ No newline at end of file diff --git a/resources/views/livewire/about-us/card-types/card-types-list.blade.php b/resources/views/livewire/about-us/card-types/card-types-list.blade.php new file mode 100644 index 0000000..7fd7610 --- /dev/null +++ b/resources/views/livewire/about-us/card-types/card-types-list.blade.php @@ -0,0 +1,48 @@ +
+ @include('partials.header-form', [ + 'title' => 'Card Types', + 'action' => route('card-types.create'), + 'actionBtnName' => 'Add Card' + ]) + + @if(session('error')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + +
+
+ + + + + + + + + + @foreach ($cards as $card) + + + + + + @endforeach + +
Card Type CodeCard Type DescriptionAction
{{ $card['code'] }}{{ $card['name'] }} + + Edit + + + + View + +
+
+
+
\ No newline at end of file diff --git a/resources/views/livewire/about-us/card-types/card-types-view.blade.php b/resources/views/livewire/about-us/card-types/card-types-view.blade.php new file mode 100644 index 0000000..3496b2b --- /dev/null +++ b/resources/views/livewire/about-us/card-types/card-types-view.blade.php @@ -0,0 +1,77 @@ +
+ @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')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + + @if($card) +
+
+
+

Details

+

CARD DETAILS

+
+
Card Code:
+
{{ $card['code'] }}
+
+
+
Card Type Description:
+
{{ $card['name'] }}
+
+
+
Card Type Short Description:
+
{{ $card['description'] }}
+
+
+
Card Type Image:
+
+ Card Image +
+
+
+
Virtual Card Font Color:
+
{{ $card['virtual_card_font_color'] ? 'Black' : 'White' }}
+
+
+
Card Type Cover Image:
+
+ Cover Image +
+
+
+
ID Number Required:
+
{{ $card['id_number'] ? 'Yes' : 'No' }}
+
+
+
ID Number Description:
+
{{ $card['id_number_description'] }}
+
+ +

DATA PRIVACY DETAILS

+
+
Terms and Conditions:
+
{{ $card['terms_and_conditions'] }}
+
+
+
FAQs:
+
{{ $card['faqs'] }}
+
+
+
+
+ @else +

No card type data found.

+ @endif +
\ No newline at end of file diff --git a/resources/views/livewire/about-us/card-types/card-types.blade.php b/resources/views/livewire/about-us/card-types/card-types.blade.php new file mode 100644 index 0000000..b5bdc78 --- /dev/null +++ b/resources/views/livewire/about-us/card-types/card-types.blade.php @@ -0,0 +1,15 @@ +
+ @if(Request::is('about-us')) + + @elseif(Request::is('about-us/card-types')) + + @elseif(Request::is('about-us/card-types/create')) + + @elseif(Request::is('about-us/card-types/edit/*')) + + @elseif(Request::is('about-us/card-types/view/*')) + + @endif +
\ No newline at end of file diff --git a/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-create.blade.php b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-create.blade.php new file mode 100644 index 0000000..6d91192 --- /dev/null +++ b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-create.blade.php @@ -0,0 +1,45 @@ +
+

{{ $type == 1 ? 'Terms' : 'Privacy Policy' }} Details

+ + @if(session('error')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + + @if(!empty($errors)) +
+
    + @foreach ($errors as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + +
+ @include('partials.header-form', [ + 'title' => $type == 1 ? 'Terms' : 'Privacy Policy', + 'action' => '#', + 'actionBtnName' => 'Submit', + 'cancelAction' => route('term-privacy.list'), + 'cancelBtnName' => 'Cancel' + ]) + +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-edit.blade.php b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-edit.blade.php new file mode 100644 index 0000000..ecead05 --- /dev/null +++ b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-edit.blade.php @@ -0,0 +1,49 @@ +
+

Update Terms

+ + @if(session('error')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + + @if(!empty($errors)) +
+
    + @foreach ($errors as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + + @if($term) +
+ @include('partials.header-form', [ + 'title' => 'Update Terms', + 'action' => '#', + 'actionBtnName' => 'Submit', + 'cancelAction' => route('term-privacy.list'), + 'cancelBtnName' => 'Cancel' + ]) + +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ @else +

No term data found.

+ @endif +
\ No newline at end of file diff --git a/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-list.blade.php b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-list.blade.php new file mode 100644 index 0000000..14ff435 --- /dev/null +++ b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-list.blade.php @@ -0,0 +1,54 @@ +
+ @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')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + +
+
+ + + + + + + + + + + @foreach ($terms as $term) + + + + + + + @endforeach + +
TitleDetailsTypeAction
{{ $term['title'] }} + {{ $term['details'] }} + {{ $term['type'] == 1 ? 'Terms' : 'Privacy' }} + + Edit + + + + View + +
+
+
+
\ No newline at end of file diff --git a/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-view.blade.php b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-view.blade.php new file mode 100644 index 0000000..6c1ee5a --- /dev/null +++ b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy-view.blade.php @@ -0,0 +1,42 @@ +
+ @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')) +
{{ session('error') }}
+ @endif + + @if(session('success')) +
{{ session('success') }}
+ @endif + + @if($term) +
+
+
+

Details

+
+
Title:
+
{{ $term['title'] }}
+
+
+
Details:
+
+
+                                {{ $term['details'] }}
+                            
+
+
+
+
+
+ @else +

No term data found.

+ @endif +
\ No newline at end of file diff --git a/resources/views/livewire/about-us/term-and-privacy/term-and-privacy.blade.php b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy.blade.php new file mode 100644 index 0000000..97743fc --- /dev/null +++ b/resources/views/livewire/about-us/term-and-privacy/term-and-privacy.blade.php @@ -0,0 +1,15 @@ +
+ @if(Request::is('about-us')) + + @elseif(Request::is('about-us/term-privacy')) + + @elseif(Request::is('about-us/term-privacy/create/*')) + + @elseif(Request::is('about-us/term-privacy/edit/*')) + + @elseif(Request::is('about-us/term-privacy/view/*')) + + @endif +
\ No newline at end of file diff --git a/resources/views/partials/header-form.blade.php b/resources/views/partials/header-form.blade.php index 1ec22e4..4ecf7d3 100644 --- a/resources/views/partials/header-form.blade.php +++ b/resources/views/partials/header-form.blade.php @@ -6,7 +6,16 @@ @if(isset($action) && !$disabled) {{ $actionBtnName }} @endif + @if(isset($actionTerms)) + {{ $actionBtnNameTerms }} + @endif + @if(isset($actionPrivacy)) + {{ $actionBtnNamePrivacy }} + @endif @if(isset($deleteAction)) @endif + @if(isset($cancelAction)) + {{ $cancelBtnName }} + @endif \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 4e7b0f4..9e9843e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -87,6 +87,31 @@ use App\Http\Livewire\PhotoSlider\PhotoSliderCreate; 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/create', PhotoSlider::class)->name('photo-slider.create'); // 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::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/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::middleware(['auth'])->group(function () { +// 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/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::middleware(['auth'])->group(function () { - 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/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::middleware(['auth'])->group(function () { +// 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/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::middleware(['auth'])->group(function () { // 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('/registration', \App\Livewire\Registration::class)->name('registration'); -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('/change-password', \App\Livewire\ChangePassword::class)->name('change-password'); +// Route::get('/registration', \App\Livewire\Registration::class)->name('registration'); +// 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('/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('/logout', Logout::class)->name('logout'); -Route::get('/error-handler', ErrorHandler::class)->name('error.handler'); +// Route::get('/fetch-data/{url}', FetchData::class)->name('fetch.data'); +// Route::get('/logout', Logout::class)->name('logout'); +// Route::get('/error-handler', ErrorHandler::class)->name('error.handler'); -Route::get('/404', function () { - return view('errors.404'); -})->name('404'); +// Route::get('/404', function () { +// return view('errors.404'); +// })->name('404'); -Route::get('/auth-status', function () { - return view('auth-status'); -})->name('auth.status'); +// Route::get('/auth-status', function () { +// return view('auth-status'); +// })->name('auth.status'); -Route::get('/fetch-data-status', function () { - return view('fetch-data-status'); -})->name('fetch.data.status'); +// Route::get('/fetch-data-status', function () { +// return view('fetch-data-status'); +// })->name('fetch.data.status'); -Route::get('/logout-status', function () { - return view('logout-status'); -})->name('logout.status'); +// Route::get('/logout-status', function () { +// return view('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('/dashboard', function () { return view('dashboard'); })->name('dashboard'); +// Route::get('/action-types', function () { return view('action-types'); })->name('action.types'); +// Route::get('/dashboard', function () { return view('dashboard'); })->name('dashboard'); -Route::get('/my-profile', function () { - return view('my-profile'); -})->name('my-profile'); +// Route::get('/my-profile', function () { +// return view('my-profile'); +// })->name('my-profile'); -Route::get('/custom-table', function () { - return view('custom-table'); -})->name('custom.table'); +// Route::get('/custom-table', function () { +// return view('custom-table'); +// })->name('custom.table'); -Route::get('/dropdown-export', function () { - return view('dropdown-export'); -})->name('dropdown.export'); +// Route::get('/dropdown-export', function () { +// return view('dropdown-export'); +// })->name('dropdown.export'); -Route::get('/data-list', function () { - return view('data-list'); -})->name('data.list'); +// Route::get('/data-list', function () { +// return view('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('/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('/time-picker-form', function () { return view('time-picker-form'); })->name('time.picker.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('/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('/advance-table', function () { return view('advance-table'); })->name('advance.table'); -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('/403', function () { return view('error-403'); })->name('error.403'); -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('/notifications', function () { return view('notification-table'); })->name('notifications'); -Route::get('/locations', function () { return view('locations'); })->name('locations'); -Route::get('/test-modal', function () { return view('test-modal'); })->name('test.modal'); -Route::get('/login', function () { return view('login'); })->name('login'); -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('/cascader-form', function () { return view('cascader-form'); })->name('cascader.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('/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-number-ant-d', function () { return view('input-number-ant-d'); })->name('input.number.antd'); +// 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('/station-table', function () { return view('station-table'); })->name('station.table'); +// 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-new', function () { return view('error-404-new'); })->name('error.404.new'); +// Route::get('/notifications', function () { return view('notification-table'); })->name('notifications'); +// Route::get('/locations', function () { return view('locations'); })->name('locations'); +// Route::get('/test-modal', function () { return view('test-modal'); })->name('test.modal'); +// Route::get('/login', function () { return view('login'); })->name('login'); +// 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('/cascader-form', function () { return view('cascader-form'); })->name('cascader.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('/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-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-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('/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('/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-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-options', function () { return view('multi-select-options'); })->name('multi.select.options');