first commit

This commit is contained in:
2025-07-07 18:01:52 +05:45
commit 71241f5167
2095 changed files with 112735 additions and 0 deletions

View File

@ -0,0 +1,27 @@
<x-guest-layout>
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
{{ __('This is a secure area of the application. Please confirm your password before continuing.') }}
</div>
<form method="POST" action="{{ route('password.confirm') }}">
@csrf
<!-- Password -->
<div>
<x-input-label for="password" :value="__('Password')" />
<x-text-input id="password" class="block mt-1 w-full"
type="password"
name="password"
required autocomplete="current-password" />
<x-input-error :messages="$errors->get('password')" class="mt-2" />
</div>
<div class="flex justify-end mt-4">
<x-primary-button>
{{ __('Confirm') }}
</x-primary-button>
</div>
</form>
</x-guest-layout>

View File

@ -0,0 +1,25 @@
<x-guest-layout>
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
{{ __('Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.') }}
</div>
<!-- Session Status -->
<x-auth-session-status class="mb-4" :status="session('status')" />
<form method="POST" action="{{ route('password.email') }}">
@csrf
<!-- Email Address -->
<div>
<x-input-label for="email" :value="__('Email')" />
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
<div class="flex items-center justify-end mt-4">
<x-primary-button>
{{ __('Email Password Reset Link') }}
</x-primary-button>
</div>
</form>
</x-guest-layout>

View File

@ -0,0 +1,47 @@
<x-guest-layout>
<!-- Session Status -->
<x-auth-session-status class="mb-4" :status="session('status')" />
<form method="POST" action="{{ route('login') }}">
@csrf
<!-- Email Address -->
<div>
<x-input-label for="email" :value="__('Email')" />
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus autocomplete="username" />
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
<!-- Password -->
<div class="mt-4">
<x-input-label for="password" :value="__('Password')" />
<x-text-input id="password" class="block mt-1 w-full"
type="password"
name="password"
required autocomplete="current-password" />
<x-input-error :messages="$errors->get('password')" class="mt-2" />
</div>
<!-- Remember Me -->
<div class="block mt-4">
<label for="remember_me" class="inline-flex items-center">
<input id="remember_me" type="checkbox" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="remember">
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Remember me') }}</span>
</label>
</div>
<div class="flex items-center justify-end mt-4">
@if (Route::has('password.request'))
<a class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800" href="{{ route('password.request') }}">
{{ __('Forgot your password?') }}
</a>
@endif
<x-primary-button class="ml-3">
{{ __('Log in') }}
</x-primary-button>
</div>
</form>
</x-guest-layout>

View File

@ -0,0 +1,52 @@
<x-guest-layout>
<form method="POST" action="{{ route('register') }}">
@csrf
<!-- Name -->
<div>
<x-input-label for="name" :value="__('Name')" />
<x-text-input id="name" class="block mt-1 w-full" type="text" name="name" :value="old('name')" required autofocus autocomplete="name" />
<x-input-error :messages="$errors->get('name')" class="mt-2" />
</div>
<!-- Email Address -->
<div class="mt-4">
<x-input-label for="email" :value="__('Email')" />
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autocomplete="username" />
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
<!-- Password -->
<div class="mt-4">
<x-input-label for="password" :value="__('Password')" />
<x-text-input id="password" class="block mt-1 w-full"
type="password"
name="password"
required autocomplete="new-password" />
<x-input-error :messages="$errors->get('password')" class="mt-2" />
</div>
<!-- Confirm Password -->
<div class="mt-4">
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
<x-text-input id="password_confirmation" class="block mt-1 w-full"
type="password"
name="password_confirmation" required autocomplete="new-password" />
<x-input-error :messages="$errors->get('password_confirmation')" class="mt-2" />
</div>
<div class="flex items-center justify-end mt-4">
<a class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800" href="{{ route('login') }}">
{{ __('Already registered?') }}
</a>
<x-primary-button class="ml-4">
{{ __('Register') }}
</x-primary-button>
</div>
</form>
</x-guest-layout>

View File

@ -0,0 +1,39 @@
<x-guest-layout>
<form method="POST" action="{{ route('password.store') }}">
@csrf
<!-- Password Reset Token -->
<input type="hidden" name="token" value="{{ $request->route('token') }}">
<!-- Email Address -->
<div>
<x-input-label for="email" :value="__('Email')" />
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email', $request->email)" required autofocus autocomplete="username" />
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
<!-- Password -->
<div class="mt-4">
<x-input-label for="password" :value="__('Password')" />
<x-text-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="new-password" />
<x-input-error :messages="$errors->get('password')" class="mt-2" />
</div>
<!-- Confirm Password -->
<div class="mt-4">
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
<x-text-input id="password_confirmation" class="block mt-1 w-full"
type="password"
name="password_confirmation" required autocomplete="new-password" />
<x-input-error :messages="$errors->get('password_confirmation')" class="mt-2" />
</div>
<div class="flex items-center justify-end mt-4">
<x-primary-button>
{{ __('Reset Password') }}
</x-primary-button>
</div>
</form>
</x-guest-layout>

View File

@ -0,0 +1,31 @@
<x-guest-layout>
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
{{ __('Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.') }}
</div>
@if (session('status') == 'verification-link-sent')
<div class="mb-4 font-medium text-sm text-green-600 dark:text-green-400">
{{ __('A new verification link has been sent to the email address you provided during registration.') }}
</div>
@endif
<div class="mt-4 flex items-center justify-between">
<form method="POST" action="{{ route('verification.send') }}">
@csrf
<div>
<x-primary-button>
{{ __('Resend Verification Email') }}
</x-primary-button>
</div>
</form>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit" class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800">
{{ __('Log Out') }}
</button>
</form>
</div>
</x-guest-layout>

View File

@ -0,0 +1,135 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Welcome to Dashboard</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboard</a></li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row project-wrapper">
<div class="col-xxl-12">
<div class="row">
<div class="col-xl-3">
<div class="card card-animate">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="avatar-sm flex-shrink-0">
<span class="avatar-title bg-soft-primary text-primary rounded-2 fs-2">
<i data-feather="users" class="text-primary"></i>
</span>
</div>
<div class="flex-grow-1 ms-3 overflow-hidden">
<p class="text-uppercase fw-medium text-muted text-truncate mb-3">Total Enquiries</p>
<div class="d-flex align-items-center mb-3">
<h4 class="fs-4 flex-grow-1 mb-0"><span class="counter-value"
data-target="{{ $totalEnquiries }}">0</span></h4>
</div>
</div>
</div>
</div><!-- end card body -->
</div>
</div><!-- end col -->
</div><!-- end row -->
<div class="row">
<div class="col-xl-8">
<div class="card card-height-100">
<div class="card-header d-flex align-items-center">
<h4 class="card-title flex-grow-1 mb-0">Recent Enquiries</h4>
</div><!-- end cardheader -->
<div class="card-body">
<div class="table-responsive table-card">
<table class="table-centered table align-middle">
<thead class="bg-light text-muted">
<tr>
<th scope="col" style="width: 10%;">Date</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Phone</th>
<th scope="col">Service</th>
<th scope="col">Message</th>
<th scope="col">Status</th>
<th scope="col">Action</th>
</tr><!-- end tr -->
</thead><!-- thead -->
<tbody>
@forelse ($enquiries as $enquiry)
<tr>
<td class="text-muted">{{ $enquiry->created_at->diffForHumans() }}</td>
<td>
<a href="javascript: void(0);" class="text-reset">{{ $enquiry->name }}</a>
</td>
<td>
<a href="javascript: void(0);" class="text-reset">{{ $enquiry->email }}</a>
</td>
<td>
<a href="javascript: void(0);" class="text-reset">{{ $enquiry->phone }}</a>
</td>
<td>
<a href="javascript: void(0);" class="text-reset">{{ $enquiry->service?->title }}</a>
</td>
<td class="fw-medium">{{ $enquiry->message }}</td>
<td><span class="badge badge-soft-danger">New</span></td>
<td>
<a href="{{ route('enquiry.markAsRead', ['id' => $enquiry->id]) }}"
onclick="confirmRead(this.href)"><i
class="ri-mail-check-line fs-17 lh-1 text-warning align-middle" data-bs-toggle="tooltip"
data-bs-placement="top" data-bs-custom-class="custom-tooltip" title="Mark as Read"></i></a>
</td>
</tr>
@empty
@endforelse
<!-- end tr -->
</tbody><!-- end tbody -->
</table><!-- end table -->
</div>
</div><!-- end card body -->
</div><!-- end card -->
</div><!-- end col -->
</div><!-- end row -->
</div><!-- end col -->
</div><!-- end row -->
@endsection
@push('js')
<script>
function confirmRead(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'It will be marked as read',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Mark as read',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'post',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Mark!', 'The item has been marked as read.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while marking the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,167 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Enquiries List') }}</h2>
</div>
<div class="card-body">
<table class="dataTable table" id="tbl_enquiries">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('S.N') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Name') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Email') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('contact') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Service') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Message') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
@php
$isRead = $item->is_read == 0 ? true : false;
@endphp
<tr data-id="{{ $item->id }}" data-display_order="{{ $item->display_order }}" class="draggable-row">
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">{{ $i++ }}</td>
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">{{ $item->name }}</td>
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">{{ $item->email }}</td>
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">{{ $item->phone }}</td>
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">{{ $item->service?->title }}</td>
@if ($item->message)
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">{{ $item->message }}</td>
@else
<td class="tb-col {{ $isRead ? 'text-success' : 'text-muted' }}">
-
</td>
@endif
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li>
<a href="{{ route('enquiry.destroy', ['id' => $item->id]) }}" class="dropdown-item"
onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i>
{{ label('Delete') }}
</a>
@if ($item->is_read == 0)
<a href="{{ route('enquiry.markAsRead', ['id' => $item->id]) }}" class="dropdown-item"
onclick="confirmRead(this.href)">
<i class="ri-mail-check-line text-muted me-2 align-bottom"></i>
{{ label('Mark as read') }}
</a>
@endif
</li>
{{-- <li>
<a href="{{ route('enquiry.markread', ['id' => $item->id]) }}"
class="dropdown-item remove-item-btn">
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i>
{{ label('Mark Read') }}
</a>
</li> --}}
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function() {
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
})
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmRead(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'It will be marked as read',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Mark as read',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'post',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Mark!', 'The item has been marked as read.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while marking the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,71 @@
<header id="page-topbar">
<div class="layout-width">
<div class="navbar-header">
<div class="d-flex">
<!-- LOGO -->
<div class="navbar-brand-box horizontal-logo">
<a href="{{ route('dashboard') }}" class="logo logo-dark">
<span class="logo-sm">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="{{ asset('assets/images/logo-dark.png') }}" alt="" height="17">
</span>
</a>
<a href="{{ route('dashboard') }}" class="logo logo-light">
<span class="logo-sm">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="{{ asset('assets/images/logo-light.png') }}" alt="" height="17">
</span>
</a>
</div>
<button type="button" class="btn btn-sm fs-16 header-item vertical-menu-btn topnav-hamburger px-3"
id="topnav-hamburger-icon">
<span class="hamburger-icon">
<span></span>
<span></span>
<span></span>
</span>
</button>
<?php /*
@include("backend.parts.search")
*/
?>
</div>
<div class="d-flex align-items-center">
<div class="header-item d-none d-sm-flex ms-1">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
data-toggle="fullscreen">
<i class='bx bx-fullscreen fs-22'></i>
</button>
</div>
<div class="header-item d-none d-sm-flex ms-1">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle light-dark-mode">
<i class='bx bx-moon fs-22'></i>
</button>
</div>
<?php /*
@include("backend.parts.ghost")
@include("backend.parts.lang")
@include("backend.parts.apps")
@include("backend.parts.cart")
@include("backend.parts.profile")
*/
?>
@include('backend.parts.notifications')
@include('backend.parts.profile')
<div id="removeNotificationModal">
<!-- Modal content -->
</div>
</div>
</div>
</div>
</header>

View File

@ -0,0 +1,59 @@
articles@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label("articles List") }}</h2>
<a href="{{ route('articles.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
</div>
<div class="card-body">
<table class="table dataTable">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("parent_article") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label("Action") }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr>
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->parent_article }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">{{ $item->alias }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a href="{{route('articles.show',[$item->article_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
<li><a href="{{route('articles.edit',[$item->article_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
<li>
<a class="dropdown-item remove-item-btn" data-route="{{route('articles.destroy',[$item->article_id])}}">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{label("Delete")}}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
<textarea rows="20" class="form-control">{{App\Http\Controllers\GeneralFormController::listContent("tbl_articles","")}}</textarea>
</div>
</div>
@endsection

View File

@ -0,0 +1,62 @@
<div class="dropdown topbar-head-dropdown ms-1 header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class='bx bx-category-alt fs-22'></i>
</button>
<div class="dropdown-menu dropdown-menu-lg p-0 dropdown-menu-end">
<div class="p-3 border-top-0 border-start-0 border-end-0 border-dashed border">
<div class="row align-items-center">
<div class="col">
<h6 class="m-0 fw-semibold fs-15"> Web Apps </h6>
</div>
<div class="col-auto">
<a href="#!" class="btn btn-sm btn-soft-info"> View All Apps
<i class="ri-arrow-right-s-line align-middle"></i></a>
</div>
</div>
</div>
<div class="p-2">
<div class="row g-0">
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/github.png" alt="Github">
<span>GitHub</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/bitbucket.png" alt="bitbucket">
<span>Bitbucket</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/dribbble.png" alt="dribbble">
<span>Dribbble</span>
</a>
</div>
</div>
<div class="row g-0">
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/dropbox.png" alt="dropbox">
<span>Dropbox</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/mail_chimp.png" alt="mail_chimp">
<span>Mail Chimp</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/slack.png" alt="slack">
<span>Slack</span>
</a>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,146 @@
<div class="dropdown topbar-head-dropdown ms-1 header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-cart-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
<i class='bx bx-shopping-bag fs-22'></i>
<span class="position-absolute topbar-badge cartitem-badge fs-10 translate-middle badge rounded-pill bg-info">5</span>
</button>
<div class="dropdown-menu dropdown-menu-xl dropdown-menu-end p-0 dropdown-menu-cart" aria-labelledby="page-header-cart-dropdown">
<div class="p-3 border-top-0 border-start-0 border-end-0 border-dashed border">
<div class="row align-items-center">
<div class="col">
<h6 class="m-0 fs-16 fw-semibold"> My Cart</h6>
</div>
<div class="col-auto">
<span class="badge badge-soft-warning fs-13"><span class="cartitem-badge">7</span>
items</span>
</div>
</div>
</div>
<div data-simplebar style="max-height: 300px;">
<div class="p-2">
<div class="text-center empty-cart" id="empty-cart">
<div class="avatar-md mx-auto my-3">
<div class="avatar-title bg-soft-info text-info fs-36 rounded-circle">
<i class='bx bx-cart'></i>
</div>
</div>
<h5 class="mb-3">Your Cart is Empty!</h5>
<a href="apps-ecommerce-products.html" class="btn btn-success w-md mb-3">Shop Now</a>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-1.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Branded
T-Shirts</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>10 x $32</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">320</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-2.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Bentwood Chair</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>5 x $18</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">89</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-3.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">
Borosil Paper Cup</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>3 x $250</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">750</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-6.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Gray
Styled T-Shirt</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>1 x $1250</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$ <span class="cart-item-price">1250</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-5.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Stillbird Helmet</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>2 x $495</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">990</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
</div>
</div>
<div class="p-3 border-bottom-0 border-start-0 border-end-0 border-dashed border" id="checkout-elem">
<div class="d-flex justify-content-between align-items-center pb-3">
<h5 class="m-0 text-muted">Total:</h5>
<div class="px-2">
<h5 class="m-0" id="cart-item-total">$1258.58</h5>
</div>
</div>
<a href="apps-ecommerce-checkout.html" class="btn btn-success text-center w-100">
Checkout
</a>
</div>
</div>
</div>

View File

@ -0,0 +1,754 @@
<button onclick="topFunction()" class="btn btn-danger btn-icon" id="back-to-top">
<i class="ri-arrow-up-line"></i>
</button>
<!--end back-to-top-->
<!--preloader-->
<div id="preloader">
<div id="status">
<div class="spinner-border text-primary avatar-sm" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
<div class="customizer-setting d-none d-md-block">
<div class="btn-info btn-rounded shadow-lg btn btn-icon btn-lg p-2" data-bs-toggle="offcanvas" data-bs-target="#theme-settings-offcanvas" aria-controls="theme-settings-offcanvas">
<i class='mdi mdi-spin mdi-cog-outline fs-22'></i>
</div>
</div>
<!-- Theme Settings -->
<div class="offcanvas offcanvas-end border-0" tabindex="-1" id="theme-settings-offcanvas">
<div class="d-flex align-items-center bg-primary bg-gradient p-3 offcanvas-header">
<h5 class="m-0 me-2 text-white">Layout Customizer</h5>
<button type="button" class="btn-close btn-close-white ms-auto" id="customizerclose-btn" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body p-0">
<div data-simplebar class="h-100">
<div class="p-4">
<h6 class="mb-0 fw-semibold text-uppercase">Layout</h6>
<p class="text-muted">Choose your layout</p>
<div class="row gy-3">
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout01" name="data-layout" type="radio" value="vertical" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout01">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Vertical</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout02" name="data-layout" type="radio" value="horizontal" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout02">
<span class="d-flex h-100 flex-column gap-1">
<span class="bg-light d-flex p-1 gap-1 align-items-center">
<span class="d-block p-1 bg-soft-primary rounded me-1"></span>
<span class="d-block p-1 pb-0 px-2 bg-soft-primary ms-auto"></span>
<span class="d-block p-1 pb-0 px-2 bg-soft-primary"></span>
</span>
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Horizontal</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout03" name="data-layout" type="radio" value="twocolumn" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout03">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1">
<span class="d-block p-1 bg-soft-primary mb-2"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Two Column</h5>
</div>
<!-- end col -->
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout04" name="data-layout" type="radio" value="semibox" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout04">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0 p-1">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column pt-1 pe-2">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Semi Box</h5>
</div>
<!-- end col -->
</div>
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Color Scheme</h6>
<p class="text-muted">Choose Light or Dark Scheme.</p>
<div class="colorscheme-cardradio">
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-layout-mode" id="layout-mode-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="layout-mode-light">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check card-radio dark">
<input class="form-check-input" type="radio" name="data-layout-mode" id="layout-mode-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100 bg-dark" for="layout-mode-dark">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-soft-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-light rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-soft-light d-block p-1"></span>
<span class="bg-soft-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Dark</h5>
</div>
</div>
</div>
<div id="sidebar-visibility">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Visibility</h6>
<p class="text-muted">Choose show or Hidden sidebar.</p>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-visibility" id="sidebar-visibility-show" value="show">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-visibility-show">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0 p-1">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column pt-1 pe-2">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Show</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-visibility" id="sidebar-visibility-hidden" value="hidden">
<label class="form-check-label p-0 avatar-md w-100 px-2" for="sidebar-visibility-hidden">
<span class="d-flex gap-1 h-100">
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column pt-1 px-2">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Hidden</h5>
</div>
</div>
</div>
<div id="layout-width">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Layout Width</h6>
<p class="text-muted">Choose Fluid or Boxed layout.</p>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-layout-width" id="layout-width-fluid" value="fluid">
<label class="form-check-label p-0 avatar-md w-100" for="layout-width-fluid">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Fluid</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-layout-width" id="layout-width-boxed" value="boxed">
<label class="form-check-label p-0 avatar-md w-100 px-2" for="layout-width-boxed">
<span class="d-flex gap-1 h-100 border-start border-end">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Boxed</h5>
</div>
</div>
</div>
<div id="layout-position">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Layout Position</h6>
<p class="text-muted">Choose Fixed or Scrollable Layout Position.</p>
<div class="btn-group radio" role="group">
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-fixed" value="fixed">
<label class="btn btn-light w-sm" for="layout-position-fixed">Fixed</label>
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-scrollable" value="scrollable">
<label class="btn btn-light w-sm ms-0" for="layout-position-scrollable">Scrollable</label>
</div>
</div>
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Topbar Color</h6>
<p class="text-muted">Choose Light or Dark Topbar Color.</p>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar" id="topbar-color-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-light">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar" id="topbar-color-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-dark">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-primary d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Dark</h5>
</div>
</div>
<div id="sidebar-size">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Size</h6>
<p class="text-muted">Choose a size of Sidebar.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-default" value="lg">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-default">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Default</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-compact" value="md">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-compact">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Compact</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-small" value="sm">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-small">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1">
<span class="d-block p-1 bg-soft-primary mb-2"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Small (Icon View)</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-small-hover" value="sm-hover">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-small-hover">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1">
<span class="d-block p-1 bg-soft-primary mb-2"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Small Hover View</h5>
</div>
</div>
</div>
<div id="sidebar-view">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar View</h6>
<p class="text-muted">Choose Default or Detached Sidebar view.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-layout-style" id="sidebar-view-default" value="default">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-view-default">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Default</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-layout-style" id="sidebar-view-detached" value="detached">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-view-detached">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 gap-1 align-items-center px-2">
<span class="d-block p-1 bg-soft-primary rounded me-1"></span>
<span class="d-block p-1 pb-0 px-2 bg-soft-primary ms-auto"></span>
<span class="d-block p-1 pb-0 px-2 bg-soft-primary"></span>
</span>
<span class="d-flex gap-1 h-100 p-1 px-2">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
</span>
<span class="bg-light d-block p-1 mt-auto px-2"></span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Detached</h5>
</div>
</div>
</div>
<div id="sidebar-color">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Color</h6>
<p class="text-muted">Choose a color of Sidebar.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient.show">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-color-light">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-white border-end d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient.show">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-color-dark">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-primary d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-light rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Dark</h5>
</div>
<div class="col-4">
<button class="btn btn-link avatar-md w-100 p-0 overflow-hidden border collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient" aria-expanded="false" aria-controls="collapseBgGradient">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-vertical-gradient d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-light rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</button>
<h5 class="fs-13 text-center mt-2">Gradient</h5>
</div>
</div>
<!-- end row -->
<div class="collapse" id="collapseBgGradient">
<div class="d-flex gap-2 flex-wrap img-switch p-2 px-3 bg-light rounded">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient" value="gradient">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient">
<span class="avatar-title rounded-circle bg-vertical-gradient"></span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-2" value="gradient-2">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-2">
<span class="avatar-title rounded-circle bg-vertical-gradient-2"></span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-3" value="gradient-3">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-3">
<span class="avatar-title rounded-circle bg-vertical-gradient-3"></span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-4" value="gradient-4">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-4">
<span class="avatar-title rounded-circle bg-vertical-gradient-4"></span>
</label>
</div>
</div>
</div>
</div>
<div id="sidebar-img">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Images</h6>
<p class="text-muted">Choose a image of Sidebar.</p>
<div class="d-flex gap-2 flex-wrap img-switch">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-none" value="none">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-none">
<span class="avatar-md w-auto bg-light d-flex align-items-center justify-content-center">
<i class="ri-close-fill fs-20"></i>
</span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-01" value="img-1">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-01">
<img src="{{asset('assets/images/sidebar/img-1.jpg')}}" alt="" class="avatar-md w-auto object-cover">
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-02" value="img-2">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-02">
<img src="{{asset('assets/images/sidebar/img-2.jpg')}}" alt="" class="avatar-md w-auto object-cover">
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-03" value="img-3">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-03">
<img src="{{asset('assets/images/sidebar/img-3.jpg')}}" alt="" class="avatar-md w-auto object-cover">
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-04" value="img-4">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-04">
<img src="{{asset('assets/images/sidebar/img-4.jpg')}}" alt="" class="avatar-md w-auto object-cover">
</label>
</div>
</div>
</div>
<div id="preloader-menu">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Preloader</h6>
<p class="text-muted">Choose a preloader.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-preloader" id="preloader-view-custom" value="enable">
<label class="form-check-label p-0 avatar-md w-100" for="preloader-view-custom">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
<!-- <div id="preloader"> -->
<div id="status" class="d-flex align-items-center justify-content-center">
<div class="spinner-border text-primary avatar-xxs m-auto" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<!-- </div> -->
</label>
</div>
<h5 class="fs-13 text-center mt-2">Enable</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-preloader" id="preloader-view-none" value="disable">
<label class="form-check-label p-0 avatar-md w-100" for="preloader-view-none">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Disable</h5>
</div>
</div>
</div>
<!-- end preloader-menu -->
</div>
</div>
</div>
<div class="offcanvas-footer border-top p-3 text-center">
<div class="row">
<div class="col-6">
<button type="button" class="btn btn-light w-100" id="reset-layout">Reset</button>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,15 @@
<div class="dropdown d-md-none topbar-head-dropdown header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-search-dropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="bx bx-search fs-22"></i>
</button>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0" aria-labelledby="page-header-search-dropdown">
<form class="p-3">
<div class="form-group m-0">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search ..." aria-label="Recipient's username">
<button class="btn btn-primary" type="submit"><i class="mdi mdi-magnify"></i></button>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,54 @@
<div class="dropdown ms-1 topbar-head-dropdown header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img id="header-lang-img" src="{{ asset('assets/images/flags/us.svg') }}" alt="Header Language" height="20" class="rounded">
</button>
<div class="dropdown-menu dropdown-menu-end">
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language py-2" data-lang="en" title="English">
<img src="{{ asset('assets/images/flags/us.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">English</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="sp" title="Spanish">
<img src="{{ asset('assets/images/flags/spain.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">Española</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="gr" title="German">
<img src="{{ asset('assets/images/flags/germany.svg') }}" alt="user-image" class="me-2 rounded" height="18"> <span class="align-middle">Deutsche</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="it" title="Italian">
<img src="{{ asset('assets/images/flags/italy.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">Italiana</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ru" title="Russian">
<img src="{{ asset('assets/images/flags/russia.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">русский</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ch" title="Chinese">
<img src="{{ asset('assets/images/flags/china.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">中国人</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="fr" title="French">
<img src="{{ asset('assets/images/flags/french.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">français</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ar" title="Arabic">
<img src="{{ asset('assets/images/flags/ae.svg') }}" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">Arabic</span>
</a>
</div>
</div>

View File

@ -0,0 +1,183 @@
@use('App\Models\Enquiries')
@php
$enquiryList = Enquiries::where('status', 1)->where('is_read', 0)->latest()->get();
$enquiryCount = $enquiryList->count();
@endphp
<div class="dropdown topbar-head-dropdown header-item ms-1" id="notificationDropdown">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
id="page-header-notifications-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true"
aria-expanded="false">
<i class='bx bx-bell fs-22'></i>
<span
class="position-absolute topbar-badge fs-10 translate-middle badge rounded-pill bg-danger">{{ $enquiryCount ?? 0 }}<span
class="visually-hidden">unread messages</span></span>
</button>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0"
aria-labelledby="page-header-notifications-dropdown">
<div class="dropdown-head bg-primary bg-pattern rounded-top">
<div class="p-3">
<div class="row align-items-center">
<div class="col">
<h6 class="fs-16 fw-semibold m-0 text-white"> Notifications </h6>
</div>
<div class="dropdown-tabs col-auto">
<span class="badge badge-soft-light fs-13"> {{ $enquiryCount ?? 0 }} New</span>
</div>
</div>
</div>
<div class="px-2 pt-2">
<ul class="nav nav-tabs dropdown-tabs nav-tabs-custom" data-dropdown-tabs="true" id="notificationItemsTab"
role="tablist">
<li class="nav-item waves-effect waves-light">
<a class="nav-link active" data-bs-toggle="tab" href="#all-noti-tab" role="tab" aria-selected="true">
All ({{ $enquiryCount ?? 0 }})
</a>
</li>
{{-- <li class="nav-item waves-effect waves-light">
<a class="nav-link" data-bs-toggle="tab" href="#messages-tab" role="tab" aria-selected="false">
Contact
</a>
</li>
<li class="nav-item waves-effect waves-light">
<a class="nav-link" data-bs-toggle="tab" href="#alerts-tab" role="tab" aria-selected="false">
Enquiry
</a>
</li> --}}
</ul>
</div>
</div>
<div class="tab-content position-relative" id="notificationItemsTabContent">
<div class="tab-pane fade show active py-2 ps-2" id="all-noti-tab" role="tabpanel">
<div data-simplebar style="max-height: 300px;" class="pe-2">
@foreach ($enquiryList as $item)
<div class="text-reset notification-item d-block dropdown-item position-relative">
<div class="d-flex">
<div class="avatar-xs me-3 flex-shrink-0">
<span class="avatar-title bg-danger-subtle text-danger rounded-circle fs-16">
<i class='bx bx-message-square-dots'></i>
</span>
</div>
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="fs-13 fw-semibold mb-1 mt-0">{{ $item->name }}</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">
{{ Str::words($item->message, 10, '...') }}
</p>
</div>
<p class="fs-11 fw-medium text-uppercase text-muted mb-0">
<span><i class="mdi mdi-clock-outline"></i> {{ $item->created_at->diffForHumans() }}</span>
</p>
</div>
<div class="fs-15 px-2">
<div class="form-check notification-check">
{{-- <input class="form-check-input" type="checkbox" value="{{ $item->enquiry_id }}"
id="all-notification-check02">
<label class="form-check-label" for="all-notification-check02"></label> --}}
</div>
</div>
</div>
</div>
@endforeach
<div class="view-all my-3 text-center">
<a href="{{route('enquiries-list')}}" type="button" class="btn btn-soft-success waves-effect waves-light">View
All Notifications <i class="ri-arrow-right-line align-middle"></i></a>
</div>
</div>
</div>
{{-- <div class="tab-pane fade py-2 ps-2" id="messages-tab" role="tabpanel" aria-labelledby="messages-tab">
<div data-simplebar style="max-height: 300px;" class="pe-2">
@foreach ($enquiryList->where('enquiry_type', 'contact') as $contactItem)
<div class="text-reset notification-item d-block dropdown-item">
<div class="d-flex">
<div class="avatar-xs me-3 flex-shrink-0">
<span class="avatar-title bg-danger-subtle text-danger rounded-circle fs-16">
<i class='bx bx-message-square-dots'></i>
</span>
</div>
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="fs-13 fw-semibold mb-1 mt-0">{{ $contactItem->name }}</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">{{ $contactItem->message }}</p>
</div>
<p class="fs-11 fw-medium text-uppercase text-muted mb-0">
<span><i class="mdi mdi-clock-outline"></i> {{ $contactItem->created_at->diffForHumans() }}</span>
</p>
</div>
<div class="fs-15 px-2">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="{{ $contactItem->enquiry_id }}"
id="messages-notification-check01">
<label class="form-check-label" for="messages-notification-check01"></label>
</div>
</div>
</div>
</div>
@endforeach
<div class="view-all my-3 text-center">
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
All Messages <i class="ri-arrow-right-line align-middle"></i></button>
</div>
</div>
</div> --}}
{{-- <div class="tab-pane fade p-1" id="alerts-tab" role="tabpanel" aria-labelledby="alerts-tab">
<div data-simplebar style="max-height: 300px;" class="pe-2">
@foreach ($enquiryList->where('enquiry_type', 'class') as $classItem)
<div class="text-reset notification-item d-block dropdown-item">
<div class="d-flex">
<div class="avatar-xs me-3 flex-shrink-0">
<span class="avatar-title bg-danger-subtle text-danger rounded-circle fs-16">
<i class='bx bx-message-square-dots'></i>
</span>
</div>
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="fs-13 fw-semibold mb-1 mt-0">{{ $classItem->name }}</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">{{ 'Class Inquiry: ' . $classItem->class->title }}
({{ $classItem->class->classtime->format('H:i A') ?? '00:00' }})
</p>
</div>
<p class="fs-11 fw-medium text-uppercase text-muted mb-0">
<span><i class="mdi mdi-clock-outline"></i> {{ $classItem->created_at->diffForHumans() }}</span>
</p>
</div>
<div class="fs-15 px-2">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="{{ $classItem->enquiry_id }}"
id="messages-notification-check01">
<label class="form-check-label" for="messages-notification-check01"></label>
</div>
</div>
</div>
</div>
@endforeach
<div class="view-all my-3 text-center">
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
All Enquiry <i class="ri-arrow-right-line align-middle"></i></button>
</div>
</div>
</div> --}}
{{-- <div class="notification-actions" id="notification-actions">
<div class="d-flex text-muted justify-content-center">
Select <div id="select-content" class="text-body fw-semibold px-1">0</div> Result <button type="button"
class="btn btn-link link-danger ms-3 p-0" data-bs-toggle="modal"
data-bs-target="#removeNotificationModal">Mark Read</button>
</div>
</div> --}}
</div>
</div>
</div>

View File

@ -0,0 +1,21 @@
<div class="dropdown ms-sm-3 header-item topbar-user">
<button type="button" class="btn" id="page-header-user-dropdown" data-bs-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
<span class="d-flex align-items-center">
<img class="rounded-circle header-profile-user"
src="{{ asset(SITEVARS->icon) ?? asset('assets/images/users/avatar-1.jpg') }}" alt="Header Avatar">
<span class="ms-xl-2 text-start">
<span class="d-none d-xl-inline-block fw-medium user-name-text ms-1">{{ auth()->user()->name }}</span>
</span>
</span>
</button>
<div class="dropdown-menu dropdown-menu-end">
<!-- item-->
<h6 class="dropdown-header">Welcome {{ auth()->user()->name }}</h6>
<a class="dropdown-item" href="{{ route('auth.logout') }}"><i
class="mdi mdi-logout text-muted fs-16 me-1 align-middle"></i> <span class="align-middle"
data-key="t-logout">Logout</span></a>
</div>
</div>

View File

@ -0,0 +1,93 @@
<button type="button" class="btn btn-sm px-3 fs-16 header-item vertical-menu-btn topnav-hamburger" id="topnav-hamburger-icon">
<span class="hamburger-icon">
<span></span>
<span></span>
<span></span>
</span>
</button>
<!-- App Search-->
<form class="app-search d-none d-md-block">
<div class="position-relative">
<input type="text" class="form-control" placeholder="Search..." autocomplete="off" id="search-options" value="">
<span class="mdi mdi-magnify search-widget-icon"></span>
<span class="mdi mdi-close-circle search-widget-icon search-widget-icon-close d-none" id="search-close-options"></span>
</div>
<div class="dropdown-menu dropdown-menu-lg" id="search-dropdown">
<div data-simplebar style="max-height: 320px;">
<!-- item-->
<div class="dropdown-header">
<h6 class="text-overflow text-muted mb-0 text-uppercase">Recent Searches</h6>
</div>
<div class="dropdown-item bg-transparent text-wrap">
<a href="index.html" class="btn btn-soft-secondary btn-sm btn-rounded">how to setup <i class="mdi mdi-magnify ms-1"></i></a>
<a href="index.html" class="btn btn-soft-secondary btn-sm btn-rounded">buttons <i class="mdi mdi-magnify ms-1"></i></a>
</div>
<!-- item-->
<div class="dropdown-header mt-2">
<h6 class="text-overflow text-muted mb-1 text-uppercase">Pages</h6>
</div>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item">
<i class="ri-bubble-chart-line align-middle fs-18 text-muted me-2"></i>
<span>Analytics Dashboard</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item">
<i class="ri-lifebuoy-line align-middle fs-18 text-muted me-2"></i>
<span>Help Center</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item">
<i class="ri-user-settings-line align-middle fs-18 text-muted me-2"></i>
<span>My account settings</span>
</a>
<!-- item-->
<div class="dropdown-header mt-2">
<h6 class="text-overflow text-muted mb-2 text-uppercase">Members</h6>
</div>
<div class="notification-list">
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-2.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">Angela Bernier</h6>
<span class="fs-11 mb-0 text-muted">Manager</span>
</div>
</div>
</a>
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-3.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">David Grasso</h6>
<span class="fs-11 mb-0 text-muted">Web Designer</span>
</div>
</div>
</a>
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-5.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">Mike Bunch</h6>
<span class="fs-11 mb-0 text-muted">React Developer</span>
</div>
</div>
</a>
</div>
</div>
<div class="text-center pt-3 pb-1">
<a href="pages-search-results.html" class="btn btn-primary btn-sm">View All Results <i class="ri-arrow-right-line ms-1"></i></a>
</div>
</div>
</form>

View File

@ -0,0 +1,55 @@
@extends("backend.template")
@section("content")
<?php
$ShortCodes = array(
["title"=>"Photo Gallery","description"=>"[gallery alias=\'your_gallery_alias\']"]
)
?>
<div class="accordion" id="accordionExample">
@foreach($ShortCodes as $shortcode)
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Accordion Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the first item's accordion body.</strong> It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
@endforeach
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the second item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Accordion Item #3
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the third item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
</div>
@endsection
@push("js")
@endpush

View File

@ -0,0 +1,103 @@
<div class="app-menu navbar-menu">
<!-- LOGO -->
<div class="navbar-brand-box">
<!-- Dark Logo-->
<a href="{{ route('dashboard') }}" class="logo logo-dark">
<span class="logo-sm">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="{{ asset('assets/images/logo-dark.png') }}" alt="" height="57">
</span>
</a>
<!-- Light Logo-->
<a href="{{ route('dashboard') }}" class="logo logo-light">
<span class="logo-sm">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="{{ asset('assets/images/logo-light.png') }}" alt="" height="57">
</span>
</a>
<button type="button" class="btn btn-sm fs-20 header-item float-end btn-vertical-sm-hover p-0"
id="vertical-hover">
<i class="ri-record-circle-line"></i>
</button>
</div>
<div id="scrollbar">
<div class="container-fluid">
<div id="two-column-menu">
</div>
<ul class="navbar-nav" id="navbar-nav">
<li class="nav-item">
<a class="nav-link menu-link" href="{{ route('dashboard') }}">
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">Dashboard</span>
</a>
</li>
<li class="menu-title"><span data-key="t-menu">Menu</span></li>
<div class="simplebar-content" style="padding: 0px;">
@if (auth()->user()->is_admin)
<li class="nav-item">
<a class="nav-link menu-link active" href="{{ route('form.create') }}">
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">CRUD</span>
</a>
</li>
@endif
<li class="nav-item">
<a class="nav-link menu-link collapsed" href="#sidebarMenu0" data-bs-toggle="collapse"
role="button" aria-expanded="false" aria-controls="sidebarMenu0">
<i class="ri-pages-line"></i> <span data-key="t-pages">Settings</span>
</a>
<div class="menu-dropdown collapse" id="sidebarMenu0">
<ul class="nav nav-sm flex-column">
{{ CCMS::createMenuLink('Website Setting', route('settings.edit', 1)) }}
{{ CCMS::createMenuLink('User Setup', route('users.index')) }}
@if (auth()->user()->is_admin)
{{ CCMS::createMenuLink('Custom Forms', route('forms.index')) }}
{{ CCMS::createMenuLink('Custom Fields', route('customfields.index')) }}
{{ CCMS::createMenuLink('Shortcode Fields', route('shortcodes.index')) }}
{{ CCMS::createMenuLink('Resource Types', route('resourcetypes.index')) }}
{{ CCMS::createMenuLink('Backup Database', route('backup.db')) }}
</ul>
@endif
</div>
</li>
<li class="menu-title"><i class="ri-more-fill"></i> <span data-key="t-pages">Pages</span></li>
{{ CCMS::createMenuLink('Page', route('articles.index')) }}
{{ CCMS::createMenuLink('Services', route('services.index')) }}
{{ CCMS::createMenuLink('Enquiries', route('enquiries-list')) }}
</div>
</ul>
</div>
</div>
<div class="sidebar-background"></div>
</div>
@push('js')
<script>
var menuDropdowns = document.querySelectorAll('div.menu-dropdown');
menuDropdowns.forEach(function(menuDropdown) {
var childLinks = menuDropdown.querySelectorAll('ul > li > a');
var hasActiveLink = Array.from(childLinks).some(function(childLink) {
return childLink.classList.contains('active');
});
if (hasActiveLink) {
menuDropdown.classList.add('show');
} else {
menuDropdown.classList.remove('show');
}
});
</script>
@endpush

View File

@ -0,0 +1,231 @@
<!DOCTYPE html>
<html lang="en" data-layout="vertical" data-topbar="light" data-sidebar="dark" data-sidebar-size="lg"
data-sidebar-image="none" data-preloader="disable">
<head>
<meta charset="utf-8" />
<title>{{ config('app.name') }} - Admin Dashboard </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="{{ config('app.name') }} - Admin & Dashboard" name="description" />
<meta content="Bibhuti" name="author" />
<meta name="csrf-token" content="{{ csrf_token() }}">
<script>
window.appUrl = "{{ env('APP_URL') }}";
var route_prefix = "{{ env('APP_URL') }}/files";
</script>
<!-- App favicon -->
<link rel="shortcut icon" href="assets/images/favicon.ico">
<link rel="shortcut icon" href="{{ asset('assets/images/favicon.ico') }}">
<!-- gridjs css -->
<link rel="stylesheet" href="{{ asset('assets/libs/gridjs/theme/mermaid.min.css') }}">
<!-- Layout config Js -->
<script src="{{ asset('assets/js/layout.js') }}"></script>
<!-- Bootstrap Css -->
<link href="{{ asset('assets/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css" />
<!-- Icons Css -->
<link href="{{ asset('assets/css/icons.min.css') }}" rel="stylesheet" type="text/css" />
<!-- App Css-->
<link href="{{ asset('assets/css/app.min.css') }}" rel="stylesheet" type="text/css" />
<!-- jsvectormap css -->
<link href="https://cdn.datatables.net/1.13.5/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/libs/jsvectormap/css/jsvectormap.min.css') }}" rel="stylesheet" type="text/css" />
<!-- custom Css-->
@stack('css')
<link href="{{ asset('assets/css/custom.min.css') }}" rel="stylesheet" type="text/css" />
<style>
.auth-one-bg .bg-overlay {
background: linear-gradient(to right, #bf2628, #b9070a);
opacity: .9;
}
</style>
</head>
<body class="file-detail-show">
<!-- Begin page -->
<div id="layout-wrapper">
@include('backend.header')
@include('backend.sidebar')
<div class="vertical-overlay"></div>
<div class="main-content">
<div class="page-content">
<div class="container-fluid">
@yield('content')
</div>
</div>
<footer class="footer">
<div class="container-fluid">
<div class="row">
<div class="col-sm-6">
@php
echo date('Y');
@endphp © {{ config('app.name') }}.
</div>
<div class="col-sm-6">
<div class="text-sm-end d-none d-sm-block">
Developed by <a href="https://www.bibhutisolutions.com/" target="_blank">Bibhuti
Solutions Pvt. Ltd.</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- end main content-->
</div>
<!-- END layout-wrapper -->
<!--start back-to-top-->
<?php /*
@include("backend.parts.customizer")
*/
?>
<!-- JAVASCRIPT -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="{{ asset('assets/libs/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('assets/libs/simplebar/simplebar.min.js') }}"></script>
<script src="{{ asset('assets/libs/node-waves/waves.min.js') }}"></script>
<script src="{{ asset('assets/libs/feather-icons/feather.min.js') }}"></script>
<script src="{{ asset('assets/js/pages/plugins/lord-icon-2.1.0.js') }}"></script>
<script src="{{ asset('assets/js/plugins.js') }}"></script>
<!-- apexcharts -->
<script src="{{ asset('assets/libs/apexcharts/apexcharts.min.js') }}"></script>
<script src="{{ asset('assets/js/pages/file-manager.init.js') }}"></script>
<!-- App js -->
<script src="{{ asset('assets/js/app.js') }}"></script>
<script src="{{ asset('vendor/laravel-filemanager/js/stand-alone-button.js') }}"></script>
<!-- Vector map-->
<script src="{{ asset('assets/libs/jsvectormap/js/jsvectormap.min.js') }}"></script>
<script src="{{ asset('assets/libs/jsvectormap/maps/world-merc.js') }}"></script>
<!-- gridjs js -->
<script src="{{ asset('assets/libs/gridjs/gridjs.umd.js') }}"></script>
<script type='text/javascript' src='https://cdn.jsdelivr.net/npm/toastify-js'></script>
<script type='text/javascript' src='https://choices-js.github.io/Choices/assets/scripts/choices.js'></script>
<script src='https://cdn.jsdelivr.net/npm/flatpickr'></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.14.0/Sortable.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap-datepicker@1.10.0/dist/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap-datepicker@1.10.0/dist/css/bootstrap-datepicker3.min.css"
rel="stylesheet">
<!-- JAVASCRIPT -->
<script src="{{ asset('assets/libs/ckeditor4/ckeditor.js') }}"></script>
<script src="{{ asset('assets/libs/ckeditor4/adapters/jquery.js') }}"></script>
<script src="{{ asset('assets/libs/sweetalert2/sweetalert2.min.js') }}"></script>
<script defer src="https://cdn.jsdelivr.net/npm/@flasher/flasher@1.2.4/dist/flasher.min.js"></script>
<script>
const rootUrl = new URL(window.location.href);
document.querySelectorAll(".ckeditor-classic").forEach((editor) => {
CKEDITOR.replace(editor, {
filebrowserBrowseUrl: `${rootUrl.origin}/laravel-filemanager?type=Files`,
filebrowserUploadUrl: "{{ route('file.upload', ['_token' => csrf_token()]) }}",
filebrowserUploadMethod: "form",
});
});
function onSelectFile(rootUrl) {
console.log(rootUrl);
}
jQuery(document).ready(function($) {
$('.datepicker').datepicker({
format: 'yyyy-mm-dd',
autoclose: true
});
});
</script>
<script>
var lfm = function(id, type, options) {
let button = document.getElementById(id);
button.addEventListener('click', function() {
var route_prefix = (options && options.prefix) ? options.prefix : '/filemanager';
var target_input = document.getElementById(button.getAttribute('data-input'));
var target_preview = document.getElementById(button.getAttribute('data-preview'));
var multiple_selection = (options && options.multi_selection) ? options.multi_selection : false;
// alert(multiple_selection);
window.open(route_prefix + '?type=' + options.type || 'file', 'FileManager',
'width=900,height=600');
window.SetUrl = function(items) {
var file_path = items.map(function(item) {
return item.url;
}).join(',');
// set the value of the desired input to image url
target_input.value = file_path;
target_input.dispatchEvent(new Event('change'));
// clear previous preview
target_preview.innerHtml = '';
// set or change the preview image src
items.forEach(function(item) {
let img = document.createElement('img')
img.setAttribute('style', 'height: 5rem')
img.setAttribute('src', item.thumb_url)
if (!multiple_selection) target_preview.innerHTML = '';
target_preview.appendChild(img);
});
// trigger change event
target_preview.dispatchEvent(new Event('change'));
};
});
};
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
let success = "{{ Session::pull('success', '') }}";
if (success) {
flasher.success(success);
}
});
</script>
@if (isset($GLOBALS['scripts']))
{!! implode(PHP_EOL, $GLOBALS['scripts']) !!}
@endif
@stack('js')
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 316 316" xmlns="http://www.w3.org/2000/svg" {{ $attributes }}>
<path d="M305.8 81.125C305.77 80.995 305.69 80.885 305.65 80.755C305.56 80.525 305.49 80.285 305.37 80.075C305.29 79.935 305.17 79.815 305.07 79.685C304.94 79.515 304.83 79.325 304.68 79.175C304.55 79.045 304.39 78.955 304.25 78.845C304.09 78.715 303.95 78.575 303.77 78.475L251.32 48.275C249.97 47.495 248.31 47.495 246.96 48.275L194.51 78.475C194.33 78.575 194.19 78.725 194.03 78.845C193.89 78.955 193.73 79.045 193.6 79.175C193.45 79.325 193.34 79.515 193.21 79.685C193.11 79.815 192.99 79.935 192.91 80.075C192.79 80.285 192.71 80.525 192.63 80.755C192.58 80.875 192.51 80.995 192.48 81.125C192.38 81.495 192.33 81.875 192.33 82.265V139.625L148.62 164.795V52.575C148.62 52.185 148.57 51.805 148.47 51.435C148.44 51.305 148.36 51.195 148.32 51.065C148.23 50.835 148.16 50.595 148.04 50.385C147.96 50.245 147.84 50.125 147.74 49.995C147.61 49.825 147.5 49.635 147.35 49.485C147.22 49.355 147.06 49.265 146.92 49.155C146.76 49.025 146.62 48.885 146.44 48.785L93.99 18.585C92.64 17.805 90.98 17.805 89.63 18.585L37.18 48.785C37 48.885 36.86 49.035 36.7 49.155C36.56 49.265 36.4 49.355 36.27 49.485C36.12 49.635 36.01 49.825 35.88 49.995C35.78 50.125 35.66 50.245 35.58 50.385C35.46 50.595 35.38 50.835 35.3 51.065C35.25 51.185 35.18 51.305 35.15 51.435C35.05 51.805 35 52.185 35 52.575V232.235C35 233.795 35.84 235.245 37.19 236.025L142.1 296.425C142.33 296.555 142.58 296.635 142.82 296.725C142.93 296.765 143.04 296.835 143.16 296.865C143.53 296.965 143.9 297.015 144.28 297.015C144.66 297.015 145.03 296.965 145.4 296.865C145.5 296.835 145.59 296.775 145.69 296.745C145.95 296.655 146.21 296.565 146.45 296.435L251.36 236.035C252.72 235.255 253.55 233.815 253.55 232.245V174.885L303.81 145.945C305.17 145.165 306 143.725 306 142.155V82.265C305.95 81.875 305.89 81.495 305.8 81.125ZM144.2 227.205L100.57 202.515L146.39 176.135L196.66 147.195L240.33 172.335L208.29 190.625L144.2 227.205ZM244.75 114.995V164.795L226.39 154.225L201.03 139.625V89.825L219.39 100.395L244.75 114.995ZM249.12 57.105L292.81 82.265L249.12 107.425L205.43 82.265L249.12 57.105ZM114.49 184.425L96.13 194.995V85.305L121.49 70.705L139.85 60.135V169.815L114.49 184.425ZM91.76 27.425L135.45 52.585L91.76 77.745L48.07 52.585L91.76 27.425ZM43.67 60.135L62.03 70.705L87.39 85.305V202.545V202.555V202.565C87.39 202.735 87.44 202.895 87.46 203.055C87.49 203.265 87.49 203.485 87.55 203.695V203.705C87.6 203.875 87.69 204.035 87.76 204.195C87.84 204.375 87.89 204.575 87.99 204.745C87.99 204.745 87.99 204.755 88 204.755C88.09 204.905 88.22 205.035 88.33 205.175C88.45 205.335 88.55 205.495 88.69 205.635L88.7 205.645C88.82 205.765 88.98 205.855 89.12 205.965C89.28 206.085 89.42 206.225 89.59 206.325C89.6 206.325 89.6 206.325 89.61 206.335C89.62 206.335 89.62 206.345 89.63 206.345L139.87 234.775V285.065L43.67 229.705V60.135ZM244.75 229.705L148.58 285.075V234.775L219.8 194.115L244.75 179.875V229.705ZM297.2 139.625L253.49 164.795V114.995L278.85 100.395L297.21 89.825V139.625H297.2Z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,7 @@
@props(['status'])
@if ($status)
<div {{ $attributes->merge(['class' => 'font-medium text-sm text-green-600 dark:text-green-400']) }}>
{{ $status }}
</div>
@endif

View File

@ -0,0 +1,3 @@
<button {{ $attributes->merge(['type' => 'submit', 'class' => 'inline-flex items-center px-4 py-2 bg-red-600 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-red-500 active:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150']) }}>
{{ $slot }}
</button>

View File

@ -0,0 +1 @@
<a {{ $attributes->merge(['class' => 'block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out']) }}>{{ $slot }}</a>

View File

@ -0,0 +1,43 @@
@props(['align' => 'right', 'width' => '48', 'contentClasses' => 'py-1 bg-white dark:bg-gray-700'])
@php
switch ($align) {
case 'left':
$alignmentClasses = 'origin-top-left left-0';
break;
case 'top':
$alignmentClasses = 'origin-top';
break;
case 'right':
default:
$alignmentClasses = 'origin-top-right right-0';
break;
}
switch ($width) {
case '48':
$width = 'w-48';
break;
}
@endphp
<div class="relative" x-data="{ open: false }" @click.outside="open = false" @close.stop="open = false">
<div @click="open = ! open">
{{ $trigger }}
</div>
<div x-show="open"
x-transition:enter="transition ease-out duration-200"
x-transition:enter-start="opacity-0 scale-95"
x-transition:enter-end="opacity-100 scale-100"
x-transition:leave="transition ease-in duration-75"
x-transition:leave-start="opacity-100 scale-100"
x-transition:leave-end="opacity-0 scale-95"
class="absolute z-50 mt-2 {{ $width }} rounded-md shadow-lg {{ $alignmentClasses }}"
style="display: none;"
@click="open = false">
<div class="rounded-md ring-1 ring-black ring-opacity-5 {{ $contentClasses }}">
{{ $content }}
</div>
</div>
</div>

View File

@ -0,0 +1,9 @@
@props(['messages'])
@if ($messages)
<ul {{ $attributes->merge(['class' => 'text-sm text-red-600 dark:text-red-400 space-y-1']) }}>
@foreach ((array) $messages as $message)
<li>{{ $message }}</li>
@endforeach
</ul>
@endif

View File

@ -0,0 +1,5 @@
@props(['value'])
<label {{ $attributes->merge(['class' => 'col-form-label']) }}>
{{ $value ?? $slot }}
</label>

View File

@ -0,0 +1,77 @@
@props([
'name',
'show' => false,
'maxWidth' => '2xl'
])
@php
$maxWidth = [
'sm' => 'sm:max-w-sm',
'md' => 'sm:max-w-md',
'lg' => 'sm:max-w-lg',
'xl' => 'sm:max-w-xl',
'2xl' => 'sm:max-w-2xl',
][$maxWidth];
@endphp
<div
x-data="{
show: @js($show),
focusables() {
// All focusable element types...
let selector = 'a, button, input:not([type=\'hidden\']), textarea, select, details, [tabindex]:not([tabindex=\'-1\'])'
return [...$el.querySelectorAll(selector)]
// All non-disabled elements...
.filter(el => ! el.hasAttribute('disabled'))
},
firstFocusable() { return this.focusables()[0] },
lastFocusable() { return this.focusables().slice(-1)[0] },
nextFocusable() { return this.focusables()[this.nextFocusableIndex()] || this.firstFocusable() },
prevFocusable() { return this.focusables()[this.prevFocusableIndex()] || this.lastFocusable() },
nextFocusableIndex() { return (this.focusables().indexOf(document.activeElement) + 1) % (this.focusables().length + 1) },
prevFocusableIndex() { return Math.max(0, this.focusables().indexOf(document.activeElement)) -1 },
}"
x-init="$watch('show', value => {
if (value) {
document.body.classList.add('overflow-y-hidden');
{{ $attributes->has('focusable') ? 'setTimeout(() => firstFocusable().focus(), 100)' : '' }}
} else {
document.body.classList.remove('overflow-y-hidden');
}
})"
x-on:open-modal.window="$event.detail == '{{ $name }}' ? show = true : null"
x-on:close.stop="show = false"
x-on:keydown.escape.window="show = false"
x-on:keydown.tab.prevent="$event.shiftKey || nextFocusable().focus()"
x-on:keydown.shift.tab.prevent="prevFocusable().focus()"
x-show="show"
class="fixed inset-0 overflow-y-auto px-4 py-6 sm:px-0 z-50"
style="display: {{ $show ? 'block' : 'none' }};"
>
<div
x-show="show"
class="fixed inset-0 transform transition-all"
x-on:click="show = false"
x-transition:enter="ease-out duration-300"
x-transition:enter-start="opacity-0"
x-transition:enter-end="opacity-100"
x-transition:leave="ease-in duration-200"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
>
<div class="absolute inset-0 bg-gray-500 dark:bg-gray-900 opacity-75"></div>
</div>
<div
x-show="show"
class="mb-6 bg-white dark:bg-gray-800 rounded-lg overflow-hidden shadow-xl transform transition-all sm:w-full {{ $maxWidth }} sm:mx-auto"
x-transition:enter="ease-out duration-300"
x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100"
x-transition:leave="ease-in duration-200"
x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
>
{{ $slot }}
</div>
</div>

View File

@ -0,0 +1,11 @@
@props(['active'])
@php
$classes = ($active ?? false)
? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 dark:border-indigo-600 text-sm font-medium leading-5 text-gray-900 dark:text-gray-100 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out'
: 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300 dark:hover:border-gray-700 focus:outline-none focus:text-gray-700 dark:focus:text-gray-300 focus:border-gray-300 dark:focus:border-gray-700 transition duration-150 ease-in-out';
@endphp
<a {{ $attributes->merge(['class' => $classes]) }}>
{{ $slot }}
</a>

View File

@ -0,0 +1,3 @@
<button {{ $attributes->merge(['type' => 'submit', 'class' => 'inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150']) }}>
{{ $slot }}
</button>

View File

@ -0,0 +1,11 @@
@props(['active'])
@php
$classes = ($active ?? false)
? 'block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 dark:border-indigo-600 text-left text-base font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-900/50 focus:outline-none focus:text-indigo-800 dark:focus:text-indigo-200 focus:bg-indigo-100 dark:focus:bg-indigo-900 focus:border-indigo-700 dark:focus:border-indigo-300 transition duration-150 ease-in-out'
: 'block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600 focus:outline-none focus:text-gray-800 dark:focus:text-gray-200 focus:bg-gray-50 dark:focus:bg-gray-700 focus:border-gray-300 dark:focus:border-gray-600 transition duration-150 ease-in-out';
@endphp
<a {{ $attributes->merge(['class' => $classes]) }}>
{{ $slot }}
</a>

View File

@ -0,0 +1,3 @@
<button {{ $attributes->merge(['type' => 'button', 'class' => 'inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-sm hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 disabled:opacity-25 transition ease-in-out duration-150']) }}>
{{ $slot }}
</button>

View File

@ -0,0 +1,3 @@
@props(['disabled' => false])
<input {{ $disabled ? 'disabled' : '' }} {!! $attributes->merge(['class' => 'w-100']) !!}>

View File

@ -0,0 +1,39 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container-fluid">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="nk-content-inner">
<form method="get" action="{{ route('form.store') }}" enctype="multipart/form-data">
{{Label('Operation')}}
{{ customCreateSelect('type', 'type', '', '', ['ajax-curd' => 'Ajax CURD', 'make-table-nullable'=>'Make Table Nullable','store' => 'store', 'update' => 'update']) }}
{{Label('Table Name')}}
{{ customCreateSelect('tableName', 'tableName', 'form-control custom-select2', '', $allTables) }}
{{Label('Write To')}}
{{ createText('directoryName', 'directoryName', 'Directory Name') }}
<?php createButton('mt-3 btn-primary', '', 'Submit'); ?>
</form>
</div>
</div>
</div>
@endsection
@push('js')
<script>
$(document).ready(function() {
$('.custom-select2').select2();
});
</script>
@endpush

View File

@ -0,0 +1,65 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head">
<div class="nk-block-head-between flex-wrap gap g-2">
<div class="nk-block-head-content">
<h2 class="nk-block-title">Tables in Database</h1>
</div>
</div>
</div>
<div class="nk-block">
<div class="card">
<div class="accordion" id="accordionTables">
<?php $a = 0; ?>
@foreach ($allTables as $Table)
<?php $a++; ?>
<div class="accordion-item">
<h2 class="accordion-header"> <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{$a}}"> {{$a}}: {{$Table->tablename}} </button> </h2>
<div id="collapse{{$a}}" class="accordion-collapse collapse" data-bs-parent="#accordionTables">
<div class="accordion-body">
<table class="datatable-init table" data-nk-container="table-responsive">
<thead class="table-dark">
<tr>
<th class="tb-col"><span class="overline-title">S.N.</span></th>
<th class="tb-col"><span class="overline-title">{{__('lang.Column')}}</span></th>
<th class="tb-col"><span class="overline-title">{{label("Datatype")}}</span></th>
</tr>
</thead>
<tbody>
<?php $sn = 0; ?>
@foreach($Table->tablecolumns as $column)
<tr>
<?php $sn++; ?>
<td class="tb-col"><span >{{$sn}}</span></td>
<td class="tb-col"><span > {{$column->COLUMN_NAME}}</span></td>
<td class="tb-col"><span > {{$column->COLUMN_TYPE}}</span></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script>
$(document).ready(function() {
$('.custom-select2').select2();
});
</script>
@endpush

View File

@ -0,0 +1,103 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Contact</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Contact</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('contacts.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('name', 'name', 'Title') }}
</div>
<div class="col-lg-6">{{ createText('tagline', 'tagline', 'Tagline') }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-8">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Address
</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{ createText('address', 'address', 'Address') }}
</div>
<div class="col-lg-3">{{ createText('tel', 'tel', 'Tel') }}
</div>
<div class="col-lg-3">{{ createText('fax', 'fax', 'Fax') }}
</div>
<div class="col-lg-3">{{ createText('hp1', 'hp1', 'Helpline 1') }}
</div>
<div class="col-lg-3">{{ createText('hp2', 'hp2', 'Helpline 2') }}
</div>
<div class="col-lg-4">{{ createText('email1', 'email1', 'Email Address') }}
</div>
<div class="col-lg-4">{{ createText('email2', 'email2', 'Alternate Email') }}
</div>
<div class="col-lg-4">{{ createText('website', 'website', 'Website') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('google_map', 'google_map', 'Google Map') }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Social Media
</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('facebook', 'facebook', 'Facebook') }}
</div>
<div class="col-lg-12">{{ createText('twitter', 'twitter', 'Twitter') }}
</div>
<div class="col-lg-12">{{ createText('instagram', 'instagram', 'Instagram') }}
</div>
<div class="col-lg-12">{{ createText('tiktok', 'tiktok', 'Tiktok') }}
</div>
</div>
</div>
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', 'remarks', 'Remarks') }}
</div>
<div class="col-md-12 mb-3 mt-3"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('contacts.index')); ?>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,28 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2 class="">{{ label('Edit Contacts') }}</h2>
<?php createButton("btn-primary btn-cancel","","Cancel",route('contacts.index')); ?>
</div>
<div class='card-body'>
<form action="{{route('contacts.update',[$data->contact_id])}}" id="updateCustomForm" method="POST" >
@csrf <input type=hidden name='contact_id' value='{{$data->contact_id}}'/>
<div class="row"><div class="col-lg-6">{{createCustomSelect('tbl_forms', 'title', 'form_id', $data->forms_id, 'Forms Id','forms_id', 'form-control select2','status<>-1')}}</div><div class="col-lg-6">{{createText("name","name","Name",'',$data->name)}}
</div><div class="col-lg-6">{{createText("tagline","tagline","Tagline",'',$data->tagline)}}
</div><div class="col-lg-6">{{createText("address","address","Address",'',$data->address)}}
</div><div class="col-lg-6">{{createText("tel","tel","Tel",'',$data->tel)}}
</div><div class="col-lg-6">{{createText("fax","fax","Fax",'',$data->fax)}}
</div><div class="col-lg-6">{{createText("email1","email1","Email1",'',$data->email1)}}
</div><div class="col-lg-6">{{createText("email2","email2","Email2",'',$data->email2)}}
</div><div class="col-lg-6">{{createText("website","website","Website",'',$data->website)}}
</div><div class="col-lg-12 pb-2">{{createPlainTextArea("google_map","Google Map",'',$data->google_map)}}
</div><div class="col-lg-6">{{createText("facebook","facebook","Facebook",'',$data->facebook)}}
</div><div class="col-lg-6">{{createText("hp1","hp1","Hp1",'',$data->hp1)}}
</div><div class="col-lg-6">{{createText("hp2","hp2","Hp2",'',$data->hp2)}}
</div><div class="col-lg-12 pb-2">{{createPlainTextArea("remarks","Remarks",'',$data->remarks)}}
</div> <div class="col-md-12"><?php createButton("btn-primary btn-update","","Submit"); ?>
<?php createButton("btn-primary btn-cancel","","Cancel",route('contacts.index')); ?>
</div> </form></div></div>
@endsection

View File

@ -0,0 +1,205 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Contacts List') }}</h2>
<a href="{{ route('contacts.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_contacts" data-url="{{ route('contacts.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Forms Id') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Name') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Tagline') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Address') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->contact_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">
{!! getFieldData('tbl_forms', 'title', 'form_id', $item->forms_id) !!}
</td>
<td class="tb-col">{{ $item->name }}</td>
<td class="tb-col">{{ $item->tagline }}</td>
<td class="tb-col">{{ $item->address }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('contacts.show', [$item->contact_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('contacts.edit', [$item->contact_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('contacts.destroy', [$item->contact_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('contacts.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('contacts.index')); ?>
</div>
<div class='card-body'>
<p><b>Forms Id :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->forms_id}}</span></p><p><b>Name :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->name}}</span></p><p><b>Tagline :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->tagline}}</span></p><p><b>Address :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->address}}</span></p><p><b>Tel :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->tel}}</span></p><p><b>Fax :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->fax}}</span></p><p><b>Email1 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email1}}</span></p><p><b>Email2 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email2}}</span></p><p><b>Website :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->website}}</span></p><p><b>Google Map :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->google_map}}</span></p><p><b>Facebook :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->facebook}}</span></p><p><b>Hp1 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->hp1}}</span></p><p><b>Hp2 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->hp2}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Remarks :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->remarks}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,83 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Accridiation</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Accridiation</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('accridiations.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">
{{ createText('title', 'title', 'Title') }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('display', 'display', 'Display') }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Images</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('image', 'Image') }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb') }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('cover', 'Cover') }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('accridiations.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,84 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Accridiation</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Accridiation</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('accridiations.update', [$data->accridiation_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='accridiation_id' value='{{ $data->accridiation_id }}' />
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">
{{ createText('title', 'title', 'Title', '', $data->title) }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('display', 'display', 'Display', '', $data->display) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Images</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('image', 'Image', '', $data->image) }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('cover', 'Cover', '', $data->cover) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('accridiations.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,203 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Accridiations List') }}</h2>
<a href="{{ route('accridiations.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_accridiations" data-url="{{ route('accridiations.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Display') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Image') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Thumb') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Cover') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->accridiation_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->display }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">{{ showImageThumb($item->image) }}</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
<td class="tb-col">{{ showImageThumb($item->cover) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('accridiations.show', [$item->accridiation_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('accridiations.edit', [$item->accridiation_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('accridiations.destroy', [$item->accridiation_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('accridiations.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('accridiations.index')); ?>
</div>
<div class='card-body'>
<p><b>Display :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Image :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->image}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Cover :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,48 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head">
<div class="nk-block-head-between flex-wrap gap g-2">
<div class="nk-block-head-content">
<h2 class="nk-block-title">{{ label('Add Applicants') }}</h1>
</div>
<div class="nk-block-head-content">
<ul class="d-flex"> <li>
<a href="{{ route('applicants.index') }}" class="btn btn-md d-md-none btn-primary">
<em class="icon ni ni-plus"></em>
<span>List All</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="nk-block">
<div class="card">
<div class="card-body">
<form action="{{route('applicants.store')}}" id="storeCustomForm" method="POST">
@csrf
<div class="row"><div class="col-lg-6">{{createText("name","name","Name")}}
</div><div class="col-lg-6">{{createText("father_name","father_name","Father Name")}}
</div><div class="col-lg-6">{{createText("mobile","mobile","Mobile")}}
</div><div class="col-lg-6">{{createText("sex","sex","Sex")}}
</div><div class="col-lg-6">{{createText("dob","dob","Dob")}}
</div><div class="col-lg-6">{{createText("email","email","Email")}}
</div><div class="col-lg-6">{{createText("religion","religion","Religion")}}
</div><div class="col-lg-6">{{createText("marital_status","marital_status","Marital Status")}}
</div><div class="col-lg-12 pb-2">{{createTextarea("qualification","qualification ckeditor-classic","Qualification")}}
</div><div class="col-lg-12 pb-2">{{createTextarea("biodata","biodata ckeditor-classic","Biodata")}}
</div><div class="col-lg-12 pb-2">{{createImageInput("photo","Photo")}}
</div><div class="col-lg-6">{{createText("passport_no","passport_no","Passport No")}}
</div><div class="col-lg-12 pb-2">{{createImageInput("passport_copy","Passport Copy")}}
</div><div class="col-lg-6">{{createText("remarks","remarks","Remarks")}}
</div> <br> <div class="col-md-12"><?php createButton("btn-primary btn-store","","Submit"); ?>
</div> </form></div></div></div></div></div></div></div></div>
@endsection

View File

@ -0,0 +1,48 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head">
<div class="nk-block-head-between flex-wrap gap g-2">
<div class="nk-block-head-content">
<h2 class="nk-block-title">{{ label('Edit Applicants') }}</h1>
</div>
<div class="nk-block-head-content">
<ul class="d-flex"> <li>
<a href="{{ route('applicants.index') }}" class="btn btn-md d-md-none btn-primary">
<em class="icon ni ni-plus"></em>
<span>View Cities</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="nk-block">
<div class="card">
<div class="card-body">
<form action="{{route('applicants.update',[$data->applicant_id])}}" id="updateCustomForm" method="POST" >
@csrf <input type=hidden name='applicant_id' value='{{$data->applicant_id}}'/>
<div class="row"><div class="col-lg-6">{{createText("name","name","Name",'',$data->name)}}
</div><div class="col-lg-6">{{createText("father_name","father_name","Father Name",'',$data->father_name)}}
</div><div class="col-lg-6">{{createText("mobile","mobile","Mobile",'',$data->mobile)}}
</div><div class="col-lg-6">{{createText("sex","sex","Sex",'',$data->sex)}}
</div><div class="col-lg-6 pb-2">{{createDate("dob","Dob",'',$data->dob)}}
</div><div class="col-lg-6">{{createText("email","email","Email",'',$data->email)}}
</div><div class="col-lg-6">{{createText("religion","religion","Religion",'',$data->religion)}}
</div><div class="col-lg-6">{{createText("marital_status","marital_status","Marital Status",'',$data->marital_status)}}
</div><div class="col-lg-12 pb-2">{{createTextarea("qualification","qualification ckeditor-classic","Qualification",'','',$data->qualification)}}
</div><div class="col-lg-12 pb-2">{{createTextarea("biodata","biodata ckeditor-classic","Biodata",'','',$data->biodata)}}
</div><div class="col-lg-12 pb-2">{{createImageInput("photo","Photo",'',$data->photo)}}
</div><div class="col-lg-6">{{createText("passport_no","passport_no","Passport No",'',$data->passport_no)}}
</div><div class="col-lg-12 pb-2">{{createImageInput("passport_copy","Passport Copy",'',$data->passport_copy)}}
</div><div class="col-lg-6">{{createText("remarks","remarks","Remarks",'',$data->remarks)}}
</div> <div class="col-md-12"><?php createButton("btn-primary btn-update","","Submit"); ?>
</div> </form></div></div></div></div></div></div></div></div>
@endsection

View File

@ -0,0 +1,214 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label("Applicants List") }}</h2>
<a href="{{ route('applicants.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_applicants" data-url="{{ route('applicants.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("name") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("father_name") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("mobile") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("sex") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("dob") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("email") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("religion") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("marital_status") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("qualification") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("biodata") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("photo") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("passport_no") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("passport_copy") }}</span></th>
<th class="tb-col" data-sortable="false"><span
class="overline-title">{{ label("Action") }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{$item->applicant_id}}" data-display_order="{{$item->display_order}}" class="draggable-row">
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">{{ $item->name }}</td>
<td class="tb-col">{{ $item->father_name }}</td>
<td class="tb-col">{{ $item->mobile }}</td>
<td class="tb-col">{{ $item->sex }}</td>
<td class="tb-col">{{ $item->dob }}</td>
<td class="tb-col">{{ $item->email }}</td>
<td class="tb-col">{{ $item->religion }}</td>
<td class="tb-col">{{ $item->marital_status }}</td>
<td class="tb-col">{{ $item->qualification }}</td>
<td class="tb-col">{{ $item->biodata }}</td>
<td class="tb-col">{{ showImageThumb($item->photo) }}</td>
<td class="tb-col">{{ $item->passport_no }}</td>
<td class="tb-col">{{ showImageThumb($item->passport_copy) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a href="{{route('applicants.show',[$item->applicant_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
<li><a href="{{route('applicants.edit',[$item->applicant_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
<li>
<a href="{{route('applicants.destroy',[$item->applicant_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push("css")
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push("js")
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('applicants.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete=false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,43 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block">
<div class="offcanvas-body" data-simplebar>
<div class="nk-block-head-content w-100">
<div class="d-flex justify-content-between pb-4">
<h2>{{ label('Applicants Details') }}</h2>
{{-- <button class="btn btn-primary print_pdf">Print PDF</button> --}}
</div>
<div class="card w-100">
<div class="p-5">
<div class="card-head">
<h2 class="text-center">{{$data['name']}}</h2>
</div>
<div class="card-body">
<p><b>Name :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->name}}</span></p><p><b>Father Name :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->father_name}}</span></p><p><b>Mobile :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->mobile}}</span></p><p><b>Sex :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->sex}}</span></p><p><b>Dob :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->dob}}</span></p><p><b>Email :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email}}</span></p><p><b>Religion :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->religion}}</span></p><p><b>Marital Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->marital_status}}</span></p><p><b>Qualification :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->qualification}}</span></p><p><b>Biodata :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->biodata}}</span></p><p><b>Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->photo}}</span></p><p><b>Passport No :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->passport_no}}</span></p><p><b>Passport Copy :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->passport_copy}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><p><b>Remarks :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->remarks}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,90 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Article</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Article</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('articles.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9 mb-3">
<div class="card">
<div class="card-body">
{{ createText('title', 'title', 'Title') }}
<div class="mt-3 border border-dashed"></div>
{{ createText('subtitle', 'subtitle', 'Sub Title') }}
<div class="mt-3 border border-dashed"></div>
{{ createTextarea('description', 'text ckeditor-classic', 'Description') }}
<div class="mt-3 border border-dashed"></div>
{{ createTextarea('additional_description', 'text ckeditor-classic', 'Additional Description') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('articles.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-body">
{{ createCustomSelect('tbl_articles', 'title', 'article_id', '', 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Cover Photo</h4>
</div>
<div class="card-body">
{{ createImageInput('cover_photo', 'Cover Photo') }}
<div class="mt-3 border border-dashed"></div>
{{ createImageInput('thumb', 'Thumb') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('articles.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,86 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Article - ({{ $data->title }} )</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Article</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('articles.update', [$data->article_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='article_id' value='{{ $data->article_id }}' />
<div class="row">
<div class="col-xl-9 mb-3">
<div class="card">
<div class="card-body">
{{ createText('title', 'title', 'Title', '', $data->title) }}
<div class="mt-3 border border-dashed"></div>
{{ createText('subtitle', 'subtitle', 'Sub Title', '', $data->subtitle) }}
<div class="mt-3 border border-dashed"></div>
{{ createTextarea('description', 'description ckeditor-classic', 'Description', $data->description) }}
{{ createTextarea('additional_description', 'description ckeditor-classic', 'Additional Description', $data->additional_description) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title', '', $data->sec_title) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords', $data->seo_keywords) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions', '', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags', '', $data->og_tags) }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('articles.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-body">
{{ createCustomSelect('tbl_articles', 'title', 'article_id', $data->parent_article, 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Cover Photo</h4>
</div>
<div class="card-body">
{{ createImageInput('cover_photo', 'Cover Photo', '', $data->cover_photo) }}
<div class="mt-3 border border-dashed"></div>
{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('articles.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,246 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Articles List') }}</h2>
<a href="{{ route('articles.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="dataTable table" id="tbl_articles" data-url="{{ route('articles.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('thumb') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('cover_photo') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Parent') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('alias') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->article_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ showImageThumb($item->cover_photo) }}</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
<td class="tb-col">
{!! getFieldData('tbl_articles', 'title', 'article_id', $item->parent_article) !!}
</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->article_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->article_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a href="{{ route('articles.show', [$item->article_id]) }}" class="dropdown-item"><i
class="ri-eye-fill text-muted me-2 align-bottom"></i> {{ label('View') }}</a></li>
<li><a href="{{ route('articles.edit', [$item->article_id]) }}"
class="dropdown-item edit-item-btn"><i class="ri-pencil-fill text-muted me-2 align-bottom"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('articles.toggle', [$item->article_id]) }}" class="dropdown-item toggle-item-btn"
onclick="confirmToggle(this.href)">
<i class="ri-article-fill text-muted me-2 align-bottom"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('articles.destroy', [$item->article_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('articles.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,26 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('articles.index')); ?>
</div>
<div class='card-body'>
<p><b>Parent Article :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->parent_article}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Cover Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover_photo}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Seo Keywords :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_keywords}}</span></p><p><b>Seo Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_title}}</span></p><p><b>Seo Descriptions :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_descriptions}}</span></p><p><b>Og Tags :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->og_tags}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,95 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Blog</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Blog</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('blogs.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}
</div>
<div class="mt-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
{{-- <div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Attributes</h4>
</div>
<div class="card-body">
{{ createCustomSelect('tbl_blogs', 'title', 'blog_id', '', 'Parent Blog', 'parent_blog', 'form-control select2', 'status<>-1') }}
</div>
</div> --}}
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Image</h4>
</div>
<div class="card-body">
{{-- {{ createImageInput('image', 'Image') }}
<div class="mb-3 border border-dashed"></div> --}}
{{ createImageInput('thumb', 'Thumb') }}
<div class="mb-3 border border-dashed"></div>
{{ createImageInput('cover', 'Cover') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('blogs.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,98 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Blog -( {{ $data->title }})</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Blog</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('blogs.update', [$data->blog_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='blog_id' value='{{ $data->blog_id }}' />
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title', '', $data->title) }}
</div>
<div class="mt-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title', '', $data->seo_title) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_description', 'Seo Descriptions', '', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_keywords', 'seo_keywords', 'Seo Keywords', '', $data->seo_keywords) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('og_tags', 'og_tags', 'Og Tags', '', $data->og_tags) }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
{{-- <div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Attributes</h4>
</div>
<div class="card-body">
{{ createCustomSelect('tbl_blogs', 'title', 'blog_id', $data->parent_blog, 'Parent Blog', 'parent_blog', 'form-control select2', 'status<>-1') }}
</div>
</div> --}}
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Image</h4>
</div>
<div class="card-body">
{{-- <div class="col-lg-12 pb-2">{{ createImageInput('image', 'Image', '', $data->image) }}
</div> --}}
<div class="mb-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
</div>
<div class="mb-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('cover', 'Cover', '', $data->cover) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('blogs.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,247 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Blogs List') }}</h2>
<a href="{{ route('blogs.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="dataTable table" id="tbl_blogs" data-url="{{ route('blogs.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Thumb') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Published at') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->blog_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->blog_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->blog_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">
{{ $item->created_at->format('Y-m-d') }}
</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('blogs.show', [$item->blog_id]) }}" class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('blogs.edit', [$item->blog_id]) }}" class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill text-muted me-2 align-bottom"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('blogs.toggle', [$item->blog_id]) }}" class="dropdown-item toggle-item-btn"
onclick="confirmToggle(this.href)">
<i class="ri-article-fill text-muted me-2 align-bottom"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('blogs.destroy', [$item->blog_id]) }}" class="dropdown-item remove-item-btn"
onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('blogs.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('blogs.index')); ?>
</div>
<div class='card-body'>
<p><b>Parent Blog :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->parent_blog}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Image :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->image}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Cover :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><p><b>Seo Keywords :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_keywords}}</span></p><p><b>Seo Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_title}}</span></p><p><b>Seo Descriptions :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_descriptions}}</span></p><p><b>Og Tags :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->og_tags}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,87 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Branch Article</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Branch Article</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('brancharticles.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9 mb-4">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6">
{{ createCustomSelect('tbl_branches', 'title', 'branch_id', '', 'Branches Id', 'branches_id', 'form-control select2', 'status<>-1') }}
</div>
<div class="col-lg-6">
{{ createCustomSelect('tbl_brancharticles', 'title', 'article_id', '', 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
{{ createText('title', 'title', 'Title') }}
<div class="border mt-3 border-dashed"></div>
{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('brancharticles.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Images</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb') }}
</div>
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo') }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('brancharticles.index')); ?>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,84 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Branch Article - ( {{ $data->title }} )</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Branch Article</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('brancharticles.update',$data->article_id) }}" id="storeCustomForm" method="POST">
@csrf <input type=hidden name='article_id' value='{{ $data->article_id }}' />
<div class="row">
<div class="col-xl-9 mb-4">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6">
{{ createCustomSelect('tbl_branches', 'title', 'branch_id', $data->branches_id, 'Branches Id', 'branches_id', 'form-control select2', 'status<>-1') }}
</div>
<div class="col-lg-6">
{{ createCustomSelect('tbl_brancharticles', 'title', 'article_id', $data->parent_article, 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
{{ createText('title', 'title', 'Title','', $data->title) }}
<div class="border mt-3 border-dashed"></div>
{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title','', $data->seo_title) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords','', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions','', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags','', $data->og_tags) }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('brancharticles.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Images</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb','', $data->thumb) }}
</div>
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo','', $data->cover_photo) }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('brancharticles.index')); ?>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,254 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Branch Articles List') }}</h2>
<a href="{{ route('brancharticles.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_brancharticles" data-url="{{ route('brancharticles.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Branches') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Parent') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Thumb') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Cover Photo') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->article_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">
{!! getFieldData('tbl_branches', 'title', 'branch_id', $item->branches_id) !!}
</td>
<td class="tb-col">
{!! getFieldData('tbl_brancharticles', 'title', 'article_id', $item->parent_article) !!}
</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->article_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->article_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
<td class="tb-col">{{ showImageThumb($item->cover_photo) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('brancharticles.show', [$item->article_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('brancharticles.edit', [$item->article_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('brancharticles.toggle', [$item->article_id]) }}"
class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
<i class="ri-article-fill align-bottom me-2 text-muted"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('brancharticles.destroy', [$item->article_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('brancharticles.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('brancharticles.index')); ?>
</div>
<div class='card-body'>
<p><b>Branches Id :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->branches_id}}</span></p><p><b>Parent Article :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->parent_article}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Description :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->description}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Cover Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover_photo}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Seo Keywords :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_keywords}}</span></p><p><b>Seo Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_title}}</span></p><p><b>Seo Descriptions :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_descriptions}}</span></p><p><b>Og Tags :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->og_tags}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,130 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Branch</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Branch</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('branches.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9 mb-3 ">
<div class="card">
<div class="card-body">
{{ createCustomSelect('tbl_branches', 'title', 'branch_id', '', 'Parent Branch', 'parent_branch', 'form-control select2', 'status<>-1') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Add Branch</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}
</div>
<div class="col-lg-6">{{ createText('contact_person', 'contact_person', 'Contact Person') }}
</div>
<div class="col-lg-6">{{ createText('designation', 'designation', 'Designation') }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Address</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('contact1', 'contact1', 'Contact Number') }}
</div>
<div class="col-lg-6">{{ createText('contact2', 'contact2', 'Contact Number 2') }}
</div>
<div class="col-lg-6">{{ createText('email', 'email', 'Email') }}
</div>
<div class="col-lg-6">{{ createText('address', 'address', 'Address') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('google_map', 'google_map ', 'Google Map') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header"> <h4 class="card-title mb-0">SEO</h4></div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_description', 'seo_description ', 'Seo Description') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
</div>
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('branches.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Cover Photo</h4>
</div>
<div class="card-body">
{{ createImageInput('cover_photo', 'Cover Photo') }}
<div class="border mt-3 border-dashed"></div>
{{ createImageInput('thumb', 'Thumb') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('branches.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,127 @@
@extends('backend.template')
@section('content')
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Branch</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Branch</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('branches.update', [$data->branch_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='branch_id' value='{{ $data->branch_id }}' />
<div class="row">
<div class="col-xl-9 mb-3">
<div class="card">
<div class="card-body">
{{ createCustomSelect('tbl_branches', 'title', 'branch_id', $data->parent_branch, 'Parent Branch', 'parent_branch', 'form-control select2', 'status<>-1') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Edit Branch</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{ createText('title', 'title', 'Title', '', $data->title) }}
</div>
<div class="col-lg-6"> {{ createText('contact_person', 'contact_person', 'Contact Person', '', $data->contact_person) }}
</div>
<div class="col-lg-6">{{ createText('designation', 'designation', 'Designation', '', $data->designation) }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Address</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('contact1', 'contact1', 'Contact Number', '', $data->contact1) }}
</div>
<div class="col-lg-6">{{ createText('contact2', 'contact2', 'Contact Number 2', '', $data->contact2) }}
</div>
<div class="col-lg-6">{{ createText('email', 'email', 'Email', '', $data->email) }}
</div>
<div class="col-lg-6">{{ createText('address', 'address', 'Address', '', $data->address) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('google_map', '', 'Google Map', $data->google_map) }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header"> <h4 class="card-title mb-0">SEO</h4></div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title', '', $data->seo_title) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', '', 'Seo Keywords', $data->seo_keywords) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_description', '', 'Seo Description', $data->seo_description) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', '', 'Og Tags', $data->og_tags) }}
</div>
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('branches.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Cover Photo</h4>
</div>
<div class="card-body">
{{ createImageInput('cover_photo', 'Cover Photo', '', $data->cover_photo) }}
<div class="border mt-3 border-dashed"></div>
{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('branches.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,262 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Branches List') }}</h2>
<a href="{{ route('branches.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_branches" data-url="{{ route('branches.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
{{-- <th class="tb-col"><span class="overline-title">{{ label('Parent') }}</span></th> --}}
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Contact Person') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Designation') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Thumb') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Contact1') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Email') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Address') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->branch_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
{{-- <td class="tb-col">
{!! getFieldData('tbl_branches', 'title', 'branch_id', $item->parent_branch) !!}
</td> --}}
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->branch_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->branch_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ $item->contact_person }}</td>
<td class="tb-col">{{ $item->designation }}</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
<td class="tb-col">{{ $item->contact1 }}</td>
<td class="tb-col">{{ $item->email }}</td>
<td class="tb-col">{{ $item->address }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('branches.show', [$item->branch_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('branches.edit', [$item->branch_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('branches.toggle', [$item->branch_id]) }}"
class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
<i class="ri-article-fill align-bottom me-2 text-muted"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('branches.destroy', [$item->branch_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('branches.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('branches.index')); ?>
</div>
<div class='card-body'>
<p><b>Parent Branch :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->parent_branch}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Contact Person :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->contact_person}}</span></p><p><b>Designation :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->designation}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Cover Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover_photo}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Description :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->description}}</span></p><p><b>Contact1 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->contact1}}</span></p><p><b>Contact2 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->contact2}}</span></p><p><b>Email :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email}}</span></p><p><b>Address :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->address}}</span></p><p><b>Google Map :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->google_map}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Seo Keywords :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_keywords}}</span></p><p><b>Seo Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_title}}</span></p><p><b>Seo Description :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_description}}</span></p><p><b>Og Tags :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->og_tags}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,71 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Certificates</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Certificates</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('certificates.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">
{{ createTextarea('description', 'description ckeditor-classic', 'Description -2') }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Cover Photo</h4>
</div>
<div class="card-body">
{{ createImageInput('cover_photo', 'Cover Photo') }}
<div class="border mb-3 border-dashed"></div>
{{ createImageInput('thumb', 'Thumb') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('certificates.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,73 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Certificates - ( {{ $data->title }})</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Certificates</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('certificates.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title', '', $data->title) }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">
{{ createTextarea('description', 'description ckeditor-classic', 'Description -2', $data->description) }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Cover Photo</h4>
</div>
<div class="card-body">
{{ createImageInput('cover_photo', 'Cover Photo', '', $data->cover_photo) }}
<div class="border mb-3 border-dashed"></div>
{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('certificates.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,208 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Certificates List') }}</h2>
<a href="{{ route('certificates.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_certificates" data-url="{{ route('certificates.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Photo') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Thumb') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->certificate_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->certificate_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->certificate_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ showImageThumb($item->photo) }}</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('certificates.show', [$item->certificate_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('certificates.edit', [$item->certificate_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('certificates.destroy', [$item->certificate_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('certificates.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('certificates.index')); ?>
</div>
<div class='card-body'>
<p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->photo}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Description :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->description}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,38 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head">
<div class="nk-block-head-between flex-wrap gap g-2">
<div class="nk-block-head-content">
<h2 class="nk-block-title">{{ label('Add Companies') }}</h1>
</div>
<div class="nk-block-head-content">
<ul class="d-flex"> <li>
<a href="{{ route('companies.index') }}" class="btn btn-md d-md-none btn-primary">
<em class="icon ni ni-plus"></em>
<span>List All</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="nk-block">
<div class="card">
<div class="card-body">
<form action="{{route('companies.store')}}" id="storeCustomForm" method="POST">
@csrf
<div class="row"><div class="col-lg-6">{{createText("title","title","Title")}}
</div><div class="col-lg-6">{{createText("email","email","Email")}}
</div><div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text")}}
</div><div class="col-lg-12 pb-2">{{createImageInput("logo","Logo")}}
</div> <br> <div class="col-md-12"><?php createButton("btn-primary btn-store","","Submit"); ?>
</div> </form></div></div></div></div></div></div></div></div>
@endsection

View File

@ -0,0 +1,38 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head">
<div class="nk-block-head-between flex-wrap gap g-2">
<div class="nk-block-head-content">
<h2 class="nk-block-title">{{ label('Edit Companies') }}</h1>
</div>
<div class="nk-block-head-content">
<ul class="d-flex"> <li>
<a href="{{ route('companies.index') }}" class="btn btn-md d-md-none btn-primary">
<em class="icon ni ni-plus"></em>
<span>View Cities</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="nk-block">
<div class="card">
<div class="card-body">
<form action="{{route('companies.update',[$data->company_id])}}" id="updateCustomForm" method="POST" >
@csrf <input type=hidden name='company_id' value='{{$data->company_id}}'/>
<div class="row"><div class="col-lg-6">{{createText("title","title","Title",'',$data->title)}}
</div><div class="col-lg-6">{{createText("email","email","Email",'',$data->email)}}
</div><div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text",'','',$data->text)}}
</div><div class="col-lg-12 pb-2">{{createImageInput("logo","Logo",'',$data->logo)}}
</div> <div class="col-md-12"><?php createButton("btn-primary btn-update","","Submit"); ?>
</div> </form></div></div></div></div></div></div></div></div>
@endsection

View File

@ -0,0 +1,202 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label("Companies List") }}</h2>
<a href="{{ route('companies.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_companies" data-url="{{ route('companies.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("email") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("logo") }}</span></th>
<th class="tb-col" data-sortable="false"><span
class="overline-title">{{ label("Action") }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{$item->company_id}}" data-display_order="{{$item->display_order}}" class="draggable-row">
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{$item->company_id}}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}" id="alias_{{$item->company_id}}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ $item->email }}</td>
<td class="tb-col">{{ showImageThumb($item->logo) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a href="{{route('companies.show',[$item->company_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
<li><a href="{{route('companies.edit',[$item->company_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
<li>
<a href="{{route('companies.destroy',[$item->company_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push("css")
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push("js")
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('companies.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete=false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,43 @@
@extends('backend.template')
@section('content')
<div class="nk-content">
<div class="container">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block">
<div class="offcanvas-body" data-simplebar>
<div class="nk-block-head-content w-100">
<div class="d-flex justify-content-between pb-4">
<h2>{{ label('Companies Details') }}</h2>
{{-- <button class="btn btn-primary print_pdf">Print PDF</button> --}}
</div>
<div class="card w-100">
<div class="p-5">
<div class="card-head">
<h2 class="text-center">{{$data['title']}}</h2>
</div>
<div class="card-body">
<p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Email :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Logo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->logo}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,18 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2 class="">{{ label('Add Companyarticles') }}</h2>
<?php createButton("btn-primary btn-cancel","","Cancel",route('companyarticles.index')); ?>
</div>
<div class='card-body'>
<form action="{{route('companyarticles.store')}}" id="storeCustomForm" method="POST">
@csrf
<div class="row"><div class="col-lg-6">{{createCustomSelect('tbl_companyarticles', 'title', 'article_id', '', 'Parent Article','parent_article', 'form-control select2','status<>-1')}}</div><div class="col-lg-6">{{createText("title","title","Title")}}
</div><div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text")}}
</div><div class="col-lg-12 pb-2">{{createImageInput("cover_photo","Cover Photo")}}
</div> <br> <div class="col-md-12"><?php createButton("btn-primary btn-store","","Submit"); ?>
<?php createButton("btn-primary btn-cancel","","Cancel",route('companyarticles.index')); ?>
</div> </form></div></div>
@endsection

View File

@ -0,0 +1,18 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2 class="">{{ label('Edit Companyarticles') }}</h2>
<?php createButton("btn-primary btn-cancel","","Cancel",route('companyarticles.index')); ?>
</div>
<div class='card-body'>
<form action="{{route('companyarticles.update',[$data->article_id])}}" id="updateCustomForm" method="POST" >
@csrf <input type=hidden name='article_id' value='{{$data->article_id}}'/>
<div class="row"><div class="col-lg-6">{{createCustomSelect('tbl_companyarticles', 'title', 'article_id', $data->parent_article, 'Parent Article','parent_article', 'form-control select2','status<>-1')}}</div><div class="col-lg-6">{{createText("title","title","Title",'',$data->title)}}
</div><div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text",$data->text)}}
</div><div class="col-lg-12 pb-2">{{createImageInput("cover_photo","Cover Photo",'',$data->cover_photo)}}
</div> <div class="col-md-12"><?php createButton("btn-primary btn-update","","Submit"); ?>
<?php createButton("btn-primary btn-cancel","","Cancel",route('companyarticles.index')); ?>
</div> </form></div></div>
@endsection

View File

@ -0,0 +1,204 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label("Companyarticles List") }}</h2>
<a href="{{ route('companyarticles.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_companyarticles" data-url="{{ route('companyarticles.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("parent_article") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("cover_photo") }}</span></th>
<th class="tb-col" data-sortable="false"><span
class="overline-title">{{ label("Action") }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{$item->article_id}}" data-display_order="{{$item->display_order}}" class="draggable-row">
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">
{!! getFieldData("tbl_companyarticles", "title", "article_id", $item->parent_article) !!}
</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{$item->article_id}}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}" id="alias_{{$item->article_id}}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ showImageThumb($item->cover_photo) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a href="{{route('companyarticles.show',[$item->article_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
<li><a href="{{route('companyarticles.edit',[$item->article_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
<li>
<a href="{{route('companyarticles.destroy',[$item->article_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push("css")
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push("js")
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('companyarticles.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete=false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('companyarticles.index')); ?>
</div>
<div class='card-body'>
<p><b>Parent Article :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->parent_article}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Cover Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover_photo}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,107 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Contact</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Contact</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('contacts.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('name', 'name', 'Title') }}
</div>
<div class="col-lg-6">{{createCustomSelect('tbl_branches', 'title', 'branch_id', '', 'Branches Id','branches_id', 'form-control select2','status<>-1')}}</div>
<div class="col-lg-6">{{ createText('tagline', 'tagline', 'Tagline') }}
</div>
<div class="col-lg-6">{{createCustomSelect('tbl_forms', 'title', 'form_id', '', 'Forms Id (if needed)','forms_id', 'form-control select2','status<>-1')}}</div>
</div>
</div>
</div>
</div>
<div class="col-xl-8">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Address
</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{ createText('address', 'address', 'Address') }}
</div>
<div class="col-lg-3">{{ createText('tel', 'tel', 'Phone Number') }}
</div>
<div class="col-lg-3">{{ createText('fax', 'fax', 'Fax Number') }}
</div>
<div class="col-lg-3">{{ createText('hp1', 'hp1', 'Helpline 1') }}
</div>
<div class="col-lg-3">{{ createText('hp2', 'hp2', 'Helpline 2') }}
</div>
<div class="col-lg-4">{{ createText('email1', 'email1', 'Email Address') }}
</div>
<div class="col-lg-4">{{ createText('email2', 'email2', 'Alternate Email') }}
</div>
<div class="col-lg-4">{{ createText('website', 'website', 'Website') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('google_map', 'google_map', 'Google Map') }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Social Media
</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('facebook', 'facebook', 'Facebook') }}
</div>
<div class="col-lg-12">{{ createText('twitter', 'twitter', 'Twitter') }}
</div>
<div class="col-lg-12">{{ createText('instagram', 'instagram', 'Instagram') }}
</div>
<div class="col-lg-12">{{ createText('tiktok', 'tiktok', 'Tiktok') }}
</div>
</div>
</div>
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', 'remarks', 'Remarks') }}
</div>
<div class="col-md-12 mb-3 mt-3"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('contacts.index')); ?>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,110 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Contact</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Contact</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{route('contacts.update',[$data->contact_id])}}" id="updateCustomForm" method="POST" >
@csrf <input type=hidden name='contact_id' value='{{$data->contact_id}}'/>
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{createText("name","name","Name",'',$data->name)}}
</div>
<div class="col-lg-6">{{createCustomSelect('tbl_branches', 'title', 'branch_id', $data->branches_id, 'Branches Id','branches_id', 'form-control select2','status<>-1')}}</div>
<div class="col-lg-6">{{createText("tagline","tagline","Tagline",'',$data->tagline)}}
</div>
<div class="col-lg-6">{{createCustomSelect('tbl_forms', 'title', 'form_id', $data->forms_id, 'Forms Id','forms_id', 'form-control select2','status<>-1')}}</div>
</div>
</div>
</div>
</div>
<div class="col-xl-8">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Address
</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">{{createText("address","address","Address",'',$data->address)}}
</div>
<div class="col-lg-3">{{createText("tel","tel","Tel",'',$data->tel)}}
</div>
<div class="col-lg-3">{{createText("fax","fax","Fax",'',$data->fax)}}
</div>
<div class="col-lg-3">{{createText("hp1","hp1","Helpline 1",'',$data->hp1)}}
</div>
<div class="col-lg-3">{{ createText('hp2', 'hp2', 'Helpline 2','',$data->hp2)}}
</div>
<div class="col-lg-4">{{ createText('email1', 'email1', 'Email Address' ,'',$data->email1)}}
</div>
<div class="col-lg-4">{{ createText('email2', 'email2', 'Alternate Email','',$data->email2)}}
</div>
<div class="col-lg-4">{{ createText('website', 'website', 'Website','',$data->website)}}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('google_map', 'google_map', 'Google Map',$data->google_map)}}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Social Media
</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('facebook', 'facebook', 'Facebook','',$data->facebook)}}
</div>
<div class="col-lg-12">{{ createText('twitter', 'twitter', 'Twitter','',$data->twitter) }}
</div>
<div class="col-lg-12">{{ createText('instagram', 'instagram', 'Instagram','',$data->instagram) }}
</div>
<div class="col-lg-12">{{ createText('tiktok', 'tiktok', 'Tiktok','',$data->tiktok) }}
</div>
</div>
</div>
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', 'remarks', 'Remarks',$data->remarks)}}
</div>
<div class="col-md-12 mb-3 mt-3"><?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('contacts.index')); ?>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,216 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label("Contacts List") }}</h2>
<a href="{{ route('contacts.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_contacts" data-url="{{ route('contacts.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Branches") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Name") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Address") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Tel") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Email 1") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Helpline 1") }}</span></th>
<th class="tb-col" data-sortable="false"><span
class="overline-title">{{ label("Action") }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{$item->contact_id}}" data-display_order="{{$item->display_order}}" class="draggable-row <?php echo ($item->status==0)?"bg-light bg-danger":""; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">
{!! getFieldData("tbl_branches", "title", "branch_id", $item->branches_id) !!}
</td><td class="tb-col">{{ $item->name }}</td>
<td class="tb-col">{{ $item->address }}</td>
<td class="tb-col">{{ $item->tel }}</td>
<td class="tb-col">{{ $item->email1 }}</td>
<td class="tb-col">{{ $item->hp1 }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<!-- <li><a href="{{route('contacts.show',[$item->contact_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li> -->
<li><a href="{{route('contacts.edit',[$item->contact_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
<li>
<a href="{{route('contacts.toggle',[$item->contact_id])}}" class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
<i class="ri-article-fill align-bottom me-2 text-muted"></i> {{ ($item->status==1)?label('Unpublish'):label('Publish') }}
</a>
</li>
<li>
<a href="{{route('contacts.destroy',[$item->contact_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push("css")
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push("js")
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('contacts.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete=false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('contacts.index')); ?>
</div>
<div class='card-body'>
<p><b>Forms Id :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->forms_id}}</span></p><p><b>Branches Id :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->branches_id}}</span></p><p><b>Name :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->name}}</span></p><p><b>Tagline :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->tagline}}</span></p><p><b>Address :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->address}}</span></p><p><b>Tel :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->tel}}</span></p><p><b>Fax :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->fax}}</span></p><p><b>Email1 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email1}}</span></p><p><b>Email2 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->email2}}</span></p><p><b>Website :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->website}}</span></p><p><b>Google Map :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->google_map}}</span></p><p><b>Facebook :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->facebook}}</span></p><p><b>Hp1 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->hp1}}</span></p><p><b>Hp2 :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->hp2}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Remarks :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->remarks}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,66 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Country</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Country</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('countries.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
<div class="border mt-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('details', 'details ckeditor-classic', 'Details') }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('countries.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Images
</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo') }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createMultiImageInput('images', 'Images') }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('image_thumb', 'Image Thumb') }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('countries.index')); ?>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,82 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Country</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Country</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('countries.update', [$data->country_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='country_id' value='{{ $data->country_id }}' />
<div class="row">
<div class="col-xl-9 mb-3">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title', '', $data->title) }}
</div>
<div class="mt-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
<div class="mt-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">
{{ createTextarea('details', 'details ckeditor-classic', 'Details', $data->details) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title', '', $data->sec_title) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords', $data->seo_keywords) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions', '', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags', '', $data->og_tags) }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('countries.index')); ?>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Images
</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo', '', $data->cover_photo) }}
</div>
<div class="mb-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createMultiImageInput('images', 'Images', '', $data->images) }}
</div>
<div class="mb-3 border border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('image_thumb', 'Image Thumb', '', $data->image_thumb) }}
</div>
</div>
</div>
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('countries.index')); ?>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,208 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Countries List') }}</h2>
<a href="{{ route('countries.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_countries" data-url="{{ route('countries.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Cover Photo') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Image Thumb') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->country_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->country_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->country_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ showImageThumb($item->cover_photo) }}</td>
<td class="tb-col">{{ showImageThumb($item->image_thumb) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('countries.show', [$item->country_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('countries.edit', [$item->country_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('countries.destroy', [$item->country_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('countries.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('countries.index')); ?>
</div>
<div class='card-body'>
<p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Details :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->details}}</span></p><p><b>Cover Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover_photo}}</span></p><p><b>Image Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->image_thumb}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,89 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Study Abroads Article</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Study Abroads Article</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('countryarticles.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}
</div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Atributes
</h4>
</div>
<div class="card-body">
{{ createCustomSelect('tbl_countries', 'title', 'country_id', '', 'Country', 'countries_id', 'form-control select2', 'status<>-1') }}
{{ createCustomSelect('tbl_countryarticles', 'title', 'article_id', '', 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Images
</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo') }}
</div>
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb') }}
</div>
</div>
</div>
<div class="col-md-12"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('countryarticles.index')); ?>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,91 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Study Abroads Article</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Study Abroads Article</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('countryarticles.update', [$data->article_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='article_id' value='{{ $data->article_id }}' />
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title','', $data->title) }}
</div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title','', $data->seo_title) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions','', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords', '', $data->seo_keywords) }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags', '', $data->og_tags) }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Atributes
</h4>
</div>
<div class="card-body">
{{ createCustomSelect('tbl_countries', 'title', 'country_id', $data->countries_id, 'Country', 'countries_id', 'form-control select2', 'status<>-1') }}
{{ createCustomSelect('tbl_countryarticles', 'title', 'article_id', $data->parent_article, 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
Images
</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo', '', $data->cover_photo) }}
</div>
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
</div>
</div>
</div>
<div class="col-md-12"><?php createButton('btn-primary btn-update', '', 'Update'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('countryarticles.index')); ?>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,254 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Countryarticles List') }}</h2>
<a href="{{ route('countryarticles.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="dataTable table" id="tbl_countryarticles" data-url="{{ route('countryarticles.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Image') }}</span></th>
{{-- <th class="tb-col"><span class="overline-title">{{ label('Parent') }}</span></th> --}}
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Countries') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->article_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
{{-- <td class="tb-col">
{!! getFieldData('tbl_countryarticles', 'title', 'article_id', $item->parent_article) !!}
</td> --}}
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->article_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->article_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">
{!! getFieldData('tbl_countries', 'title', 'country_id', $item->countries_id) !!}
</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('countryarticles.show', [$item->article_id]) }}"
class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('countryarticles.edit', [$item->article_id]) }}"
class="dropdown-item edit-item-btn"><i class="ri-pencil-fill text-muted me-2 align-bottom"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('countryarticles.toggle', [$item->article_id]) }}"
class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
<i class="ri-article-fill text-muted me-2 align-bottom"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('countryarticles.destroy', [$item->article_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('countryarticles.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('countryarticles.index')); ?>
</div>
<div class='card-body'>
<p><b>Countries Id :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->countries_id}}</span></p><p><b>Parent Article :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->parent_article}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Cover Photo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover_photo}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Seo Keywords :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_keywords}}</span></p><p><b>Seo Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_title}}</span></p><p><b>Seo Descriptions :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_descriptions}}</span></p><p><b>Og Tags :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->og_tags}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,97 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add New Page</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add New Page</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('customfields.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Custom Fields</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('customfield_for', 'customfield_for', 'Customfield For') }}
</div>
<div class="col-lg-6">
{{ createText('customfield_forref', 'customfield_forref', 'Customfield Forref') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
{{ createText('title', 'title', 'Title') }}
<div class="border mt-3 border-dashed"></div>
{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Others</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('link', 'link', 'Link') }}
</div>
<div class="col-lg-6">{{ createText('fa_icon', 'fa_icon', 'Fa Icon') }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Logo</h4>
</div>
<div class="card-body">
{{ createImageInput('logo', 'Logo') }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('customfields.index')); ?>
</div>
</div>
</div>
</div>
@endsection

View File

@ -0,0 +1,96 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Custom Field ({{ $data->title }})</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Custom Field</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('customfields.update', [$data->customfield_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='customfield_id' value='{{ $data->customfield_id }}' />
<div class="row">
<div class="col-xl-9">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Custom Fields</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">
{{ createText('customfield_for', 'customfield_for', 'Customfield For', '', $data->customfield_for) }}
</div>
<div class="col-lg-6">
{{ createText('customfield_forref', 'customfield_forref', 'Customfield Forref', '', $data->customfield_forref) }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
{{ createText('title', 'title', 'Title', '', $data->title) }}
<div class="border mt-3 border-dashed"></div>
{{ createTextarea('text', 'text ckeditor-classic', 'Description', $data->text) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Others</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">{{ createText('link', 'link', 'Link', '', $data->link) }}
</div>
<div class="col-lg-6">{{ createText('fa_icon', 'fa_icon', 'Fa Icon', '', $data->fa_icon) }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Logo</h4>
</div>
<div class="card-body">
{{ createImageInput('logo', 'Logo', '', $data->logo) }}
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('customfields.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,242 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label("Custom Fields List") }}</h2>
<a href="{{ route('customfields.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_customfields" data-url="{{ route('customfields.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Title") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Alias") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Link") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Icon") }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label("Logo") }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label("Action") }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{$item->customfield_id}}" data-display_order="{{$item->display_order}}" class="draggable-row <?php echo ($item->status == 0) ? "bg-light bg-danger" : ""; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{$item->customfield_id}}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}" id="alias_{{$item->customfield_id}}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">{{ $item->link }}</td>
<td class="tb-col">{{ $item->fa_icon }}</td>
<td class="tb-col">{{ showImageThumb($item->logo) }}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{route('customfields.show',[$item->customfield_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li> --}}
<li><a href="{{route('customfields.edit',[$item->customfield_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
<li>
<a href="{{route('customfields.toggle',[$item->customfield_id])}}" class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
<i class="ri-article-fill align-bottom me-2 text-muted"></i> {{ ($item->status==1)?label('Unpublish'):label('Publish') }}
</a>
</li>
<li>
<a href="{{route('customfields.destroy',[$item->customfield_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push("css")
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push("js")
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('customfields.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('customfields.index')); ?>
</div>
<div class='card-body'>
<p><b>Customfield For :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->customfield_for}}</span></p><p><b>Customfield Forref :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->customfield_forref}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Link :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->link}}</span></p><p><b>Fa Icon :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->fa_icon}}</span></p><p><b>Logo :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->logo}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,103 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Add Event</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Add Event</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{ route('events.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-xl-9">
<div class="mb-3">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}
</div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Descriptioon') }}
</div>
<div class="col-lg-12 pb-2">
{{ createTextarea('description', 'description ckeditor-classic', 'Details') }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_descriptions ', 'Seo Descriptions') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
</div>
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Attributes</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createDate('startdate', 'Startdate', '', date('Y-m-d')) }}
</div>
<div class="col-lg-12 pb-2">{{ createDate('enddate', 'Enddate', '', date('Y-m-d')) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Images</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{ createImageInput('image', 'Image') }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb') }}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{ createImageInput('cover', 'Cover') }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('events.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,101 @@
@extends('backend.template')
@section('content')
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Edit Event - ({{ $data->title }})</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
<li class="breadcrumb-item active">Edit Event</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<form action="{{route('events.update',[$data->event_id])}}" id="updateCustomForm" method="POST" >
@csrf <input type=hidden name='event_id' value='{{$data->event_id}}'/>
<div class="row">
<div class="col-xl-9">
<div class="mb-3">
<div class="card-body">
<div class="col-lg-12">{{ createText('title', 'title', 'Title','', $data->title) }}
</div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Descriptioon', $data->text) }}
</div>
<div class="col-lg-12 pb-2">
{{ createTextarea('description', 'description ckeditor-classic', 'Details', $data->description) }}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">SEO</h4>
</div>
<div class="card-body">
<div class="col-lg-12">{{ createText('seo_title', 'seo_title', 'Seo Title', '', $data->seo_title) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_descriptions', 'seo_description', 'Seo Descriptions', '', $data->seo_descriptions) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('seo_keywords', 'seo_keywords', 'Seo Keywords', '', $data->seo_keywords) }}
</div>
<div class="col-lg-12 pb-2">
{{ createPlainTextArea('og_tags', 'og_tags', 'Og Tags', '', $data->og_tags) }}
</div>
</div>
</div>
</div>
<div class="col-xl-3">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Attributes</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{createDate("startdate","Startdate",'',$data->startdate)}}
</div>
<div class="col-lg-12 pb-2">{{ createDate('enddate', 'Enddate','',$data->enddate)}}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Images</h4>
</div>
<div class="card-body">
<div class="col-lg-12 pb-2">{{createImageInput("image","Image",'',$data->image)}}</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{createImageInput("thumb","Thumb",'',$data->thumb)}}
</div>
<div class="border mb-3 border-dashed"></div>
<div class="col-lg-12 pb-2">{{createImageInput("cover","Cover",'',$data->cover)}}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Published</h4>
</div>
<div class="card-body">
<div class="form-check form-switch form-switch-lg form-switch-success mb-3" dir="ltr">
<input type="checkbox" class="form-check-input" id="customSwitchsizelg" checked="">
<label class="form-check-label" for="customSwitchsizelg">Active</label>
</div>
</div>
<div class="card-footer">
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('events.index')); ?>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,249 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Events List') }}</h2>
<a href="{{ route('events.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="table dataTable" id="tbl_events" data-url="{{ route('events.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Title') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Start Date') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('End date') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Alias') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->event_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">{{ myDate($item->startdate) }}</td>
<td class="tb-col">{{ myDate($item->enddate) }}</td>
<td class="tb-col">
<div class="alias-wrapper" data-id="{{ $item->event_id }}">
<span class="alias">{{ $item->alias }}</span>
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
id="alias_{{ $item->event_id }}" />
</div>
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
{{-- <li><a href="{{ route('events.show', [$item->event_id]) }}" class="dropdown-item"><i
class="ri-eye-fill align-bottom me-2 text-muted"></i>
{{ label('View') }}</a></li> --}}
<li><a href="{{ route('events.edit', [$item->event_id]) }}"
class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
{{ label('Edit') }}</a></li>
<li>
<a href="{{ route('events.toggle', [$item->event_id]) }}"
class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
<i class="ri-article-fill align-bottom me-2 text-muted"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('events.destroy', [$item->event_id]) }}"
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
{{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('events.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2><?php echo label('View Details'); ?></h2>
<?php createButton("btn-primary btn-cancel","","Back to List",route('events.index')); ?>
</div>
<div class='card-body'>
<p><b>Startdate :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->startdate}}</span></p><p><b>Enddate :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->enddate}}</span></p><p><b>Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->title}}</span></p><p><b>Alias :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->alias}}</span></p><p><b>Text :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->text}}</span></p><p><b>Description :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->description}}</span></p><p><b>Image :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->image}}</span></p><p><b>Thumb :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->thumb}}</span></p><p><b>Cover :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->cover}}</span></p><p><b>Link :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->link}}</span></p><p><b>Seo Title :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_title}}</span></p><p><b>Seo Description :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_description}}</span></p><p><b>Seo Keywords :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->seo_keywords}}</span></p><p><b>Og Tags :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->og_tags}}</span></p><p><b>Display Order :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->display_order}}</span></p><p><b>Status :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Createdby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->createdby}}</span></p><p><b>Updatedby :&nbsp;&nbsp;&nbsp;&nbsp;</b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
<div>
<p><b>Created On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->created_at}}</span></p>
<p><b>Created By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->createdBy}}</span></p>
</div>
<div>
<p><b>Updated On :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updated_at}}</span></p>
<p><b>Updated By :</b>&nbsp;&nbsp;&nbsp;<span>{{$data->updatedBy}}</span></p>
</div>
</div>
</div>
</div>
@endSection

View File

@ -0,0 +1,21 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2 class="">{{ label('Add Faqs') }}</h2>
</div>
<div class='card-body'>
<form action="{{ route('faqs.store') }}" id="storeCustomForm" method="POST">
@csrf
<div class="row">
<div class="col-lg-12">{{ createText('title', 'title', 'Question') }}
</div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Answer') }}
</div> <br>
<div class="col-md-12 mt-2"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('faqs.index')); ?>
</div>
</form>
</div>
</div>
@endsection

View File

@ -0,0 +1,21 @@
@extends('backend.template')
@section('content')
<div class='card'>
<div class='card-header d-flex justify-content-between align-items-center'>
<h2 class="">{{ label('Edit Faqs') }}</h2>
</div>
<div class='card-body'>
<form action="{{ route('faqs.update', [$data->faq_id]) }}" id="updateCustomForm" method="POST">
@csrf <input type=hidden name='faq_id' value='{{ $data->faq_id }}' />
<div class="row">
<div class="col-lg-12">{{ createText('title', 'title', 'Question', '', $data->title) }}
</div>
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Answer', $data->text) }}
</div>
<div class="col-md-12 mt-2"><?php createButton('btn-primary btn-update', '', 'Submit'); ?>
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('faqs.index')); ?>
</div>
</form>
</div>
</div>
@endsection

View File

@ -0,0 +1,225 @@
@extends('backend.template')
@section('content')
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ label('Faqs List') }}</h2>
<a href="{{ route('faqs.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
</div>
<div class="card-body">
<table class="dataTable table" id="tbl_faqs" data-url="{{ route('faqs.sort') }}">
<thead class="table-light">
<tr>
<th class="tb-col"><span class="overline-title">{{ label('S.N') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Question') }}</span></th>
<th class="tb-col"><span class="overline-title">{{ label('Answer') }}</span></th>
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@foreach ($data as $item)
<tr data-id="{{ $item->faq_id }}" data-display_order="{{ $item->display_order }}"
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
<td class="tb-col">{{ $i++ }}</td>
<td class="tb-col">{{ $item->title }}</td>
<td class="tb-col">{!! $item->text !!}</td>
<td class="tb-col">
<div class="dropdown d-inline-block">
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="ri-more-fill align-middle"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a href="{{ route('faqs.show', [$item->faq_id]) }}" class="dropdown-item"><i
class="ri-eye-fill text-muted me-2 align-bottom"></i> {{ label('View') }}</a></li>
<li><a href="{{ route('faqs.edit', [$item->faq_id]) }}" class="dropdown-item edit-item-btn"><i
class="ri-pencil-fill text-muted me-2 align-bottom"></i> {{ label('Edit') }}</a></li>
<li>
<a href="{{ route('faqs.toggle', [$item->faq_id]) }}" class="dropdown-item toggle-item-btn"
onclick="confirmToggle(this.href)">
<i class="ri-article-fill text-muted me-2 align-bottom"></i>
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
</a>
</li>
<li>
<a href="{{ route('faqs.destroy', [$item->faq_id]) }}" class="dropdown-item remove-item-btn"
onclick="confirmDelete(this.href)">
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i> {{ label('Delete') }}
</a>
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
@endpush
@push('js')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
$(document).ready(function(e) {
$('.change-alias-badge').on('click', function() {
var aliasWrapper = $(this).prev('.alias-wrapper');
var aliasSpan = aliasWrapper.find('.alias');
var aliasInput = aliasWrapper.find('.alias-input');
var isEditing = $(this).hasClass('editing');
aliasInput.toggleClass("d-none");
if (isEditing) {
// Update alias text and switch to non-editing state
var newAlias = aliasInput.val();
aliasSpan.text(newAlias);
aliasSpan.show();
aliasInput.hide();
$(this).removeClass('editing').text('Change Alias');
var articleId = $(aliasWrapper).data('id');
var ajaxUrl = "{{ route('faqs.updatealias') }}";
var data = {
articleId: articleId,
newAlias: newAlias
};
$.ajax({
url: ajaxUrl,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: data,
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else {
// Switch to editing state
aliasSpan.hide();
aliasInput.show().focus();
$(this).addClass('editing').text('Save Alias');
}
});
var mytable = $(".dataTable").DataTable({
ordering: true,
rowReorder: {
//selector: 'tr'
},
});
var isRowReorderComplete = false;
mytable.on('row-reorder', function(e, diff, edit) {
isRowReorderComplete = true;
});
mytable.on('draw', function() {
if (isRowReorderComplete) {
var url = mytable.table().node().getAttribute('data-url');
var ids = mytable.rows().nodes().map(function(node) {
return $(node).data('id');
}).toArray();
console.log(ids);
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
data: {
id_order: ids
},
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
isRowReorderComplete = false;
}
});
});
function confirmDelete(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this item!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Delete',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
}
});
}
});
}
function confirmToggle(url) {
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Proceed',
cancelButtonText: 'Cancel',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'GET',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
location.reload();
},
error: function(xhr, status, error) {
Swal.fire('Error!', 'An error occurred.', 'error');
}
});
}
});
}
</script>
@endpush

Some files were not shown because too many files have changed in this diff Show More