first change
This commit is contained in:
0
Modules/Admin/resources/assets/.gitkeep
Normal file
0
Modules/Admin/resources/assets/.gitkeep
Normal file
0
Modules/Admin/resources/assets/js/app.js
Normal file
0
Modules/Admin/resources/assets/js/app.js
Normal file
0
Modules/Admin/resources/assets/sass/app.scss
Normal file
0
Modules/Admin/resources/assets/sass/app.scss
Normal file
0
Modules/Admin/resources/views/.gitkeep
Normal file
0
Modules/Admin/resources/views/.gitkeep
Normal file
569
Modules/Admin/resources/views/calendar/index.blade.php
Normal file
569
Modules/Admin/resources/views/calendar/index.blade.php
Normal file
@@ -0,0 +1,569 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="row">
|
||||
<div class="col-xl-3">
|
||||
|
||||
<div class="card" style="height: 30%">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h4 class="card-title flex-grow-1 mb-0">Content Schedule</h4>
|
||||
</div><!-- end card header -->
|
||||
|
||||
<div class="card-body p-0">
|
||||
<div data-simplebar="init" style="max-height: 200px;" class="simplebar-scrollable-y">
|
||||
<div class="simplebar-wrapper" style="margin: 0px;">
|
||||
<div class="simplebar-height-auto-observer-wrapper">
|
||||
<div class="simplebar-height-auto-observer"></div>
|
||||
</div>
|
||||
<div class="simplebar-mask">
|
||||
<div class="simplebar-offset" style="right: 0px; bottom: 0px;">
|
||||
<div class="simplebar-content-wrapper" tabindex="0" role="region"
|
||||
aria-label="scrollable content"
|
||||
style="height: auto; overflow: hidden scroll;">
|
||||
<div class="simplebar-content" style="padding: 0px;">
|
||||
<ul class="list-group list-group-flush border-dashed px-3">
|
||||
@forelse ($contents as $content)
|
||||
<li class="list-group-item ps-0">
|
||||
<a href="javascript:void(0)"
|
||||
class="content-edit-btn"
|
||||
data-link="{{ route('content.partials.edit', $content->id) }}"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#contentModal">
|
||||
<div class="d-flex mb-3">
|
||||
<div class="flex-grow-1"><i
|
||||
class="mdi mdi-checkbox-blank-circle text-success me-2"></i><span
|
||||
class="fw-medium">{{ $content->release_date?->format('d M, Y') }}</span>
|
||||
</div>
|
||||
<div class="flex-shrink-0"><small
|
||||
class="badge bg-primary-subtle text-primary ms-auto">{{ $content->release_time?->format('h:i A') }}</small>
|
||||
</div>
|
||||
</div>
|
||||
<h6 class="card-title fs-12">
|
||||
{{ $content->title }}
|
||||
</h6>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@empty
|
||||
<h6 class="text-dark my-5 text-center">No upcoming
|
||||
schedule</h6>
|
||||
@endforelse
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="simplebar-placeholder" style="width: 655px; height: 268px;"></div>
|
||||
</div>
|
||||
<div class="simplebar-track simplebar-horizontal" style="visibility: hidden;">
|
||||
<div class="simplebar-scrollbar" style="width: 0px; display: none;"></div>
|
||||
</div>
|
||||
<div class="simplebar-track simplebar-vertical" style="visibility: visible;">
|
||||
<div class="simplebar-scrollbar"
|
||||
style="height: 178px; transform: translate3d(0px, 41px, 0px); display: block;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
|
||||
<div class="card" style="height: 30%">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h4 class="card-title flex-grow-1 mb-0">Events</h4>
|
||||
|
||||
<div class="flex-shrink-0">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-bs-toggle="modal"
|
||||
data-bs-target="#eventModal">
|
||||
<i class="ri-add-line me-1 align-middle"></i>
|
||||
Add Event</button>
|
||||
</div>
|
||||
</div><!-- end card header -->
|
||||
|
||||
<div class="card-body p-0">
|
||||
<div data-simplebar="init" style="max-height: 200px;" class="simplebar-scrollable-y">
|
||||
<div class="simplebar-wrapper" style="margin: 0px;">
|
||||
<div class="simplebar-height-auto-observer-wrapper">
|
||||
<div class="simplebar-height-auto-observer"></div>
|
||||
</div>
|
||||
<div class="simplebar-mask">
|
||||
<div class="simplebar-offset" style="right: 0px; bottom: 0px;">
|
||||
<div class="simplebar-content-wrapper" tabindex="0" role="region"
|
||||
aria-label="scrollable content"
|
||||
style="height: auto; overflow: hidden scroll;">
|
||||
<div class="simplebar-content" style="padding: 0px;">
|
||||
<ul class="list-group list-group-flush border-dashed px-3">
|
||||
@foreach ($events as $event)
|
||||
<li class="list-group-item ps-0">
|
||||
<div class="d-flex mb-3">
|
||||
<div class="flex-grow-1"><i
|
||||
class="mdi mdi-checkbox-blank-circle text-primary me-2"></i><span
|
||||
class="fw-medium">{{ $event->start_date?->format('d M, Y') }}
|
||||
@if ($event->end_date)
|
||||
<span>to
|
||||
{{ $event->end_date?->format('d M, Y') }}</span>
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex-shrink-0"><small
|
||||
class="badge bg-primary-subtle text-primary ms-auto">{{ $event->start_time?->format('h:i A') }}</small>
|
||||
</div>
|
||||
</div>
|
||||
<h6 class="card-title fs-12">{{ $event->title }}
|
||||
</h6>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="simplebar-placeholder" style="width: 655px; height: 350px;"></div>
|
||||
</div>
|
||||
<div class="simplebar-track simplebar-horizontal" style="visibility: hidden;">
|
||||
<div class="simplebar-scrollbar" style="width: 0px; display: none;"></div>
|
||||
</div>
|
||||
<div class="simplebar-track simplebar-vertical" style="visibility: visible;">
|
||||
<div class="simplebar-scrollbar"
|
||||
style="height: 178px; transform: translate3d(0px, 41px, 0px); display: block;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- end card body -->
|
||||
</div>
|
||||
|
||||
<div class="card" style="height: 30%">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h4 class="card-title flex-grow-1 mb-0">Meetings</h4>
|
||||
|
||||
<div class="flex-shrink-0">
|
||||
<button type="button" class="btn btn-sm btn-warning" data-bs-toggle="modal"
|
||||
data-bs-target="#meetingModal"><i class="ri-add-line me-1 align-middle"></i>
|
||||
Add Meeting</button>
|
||||
</div>
|
||||
</div><!-- end card header -->
|
||||
|
||||
<div class="card-body p-0">
|
||||
<div data-simplebar="init" style="max-height: 200px;" class="simplebar-scrollable-y">
|
||||
<div class="simplebar-wrapper" style="margin: 0px;">
|
||||
<div class="simplebar-height-auto-observer-wrapper">
|
||||
<div class="simplebar-height-auto-observer"></div>
|
||||
</div>
|
||||
<div class="simplebar-mask">
|
||||
<div class="simplebar-offset" style="right: 0px; bottom: 0px;">
|
||||
<div class="simplebar-content-wrapper" tabindex="0" role="region"
|
||||
aria-label="scrollable content"
|
||||
style="height: auto; overflow: hidden scroll;">
|
||||
<div class="simplebar-content" style="padding: 0px;">
|
||||
<ul class="list-group list-group-flush border-dashed px-3">
|
||||
@foreach ($meetings as $meeting)
|
||||
<li class="list-group-item ps-0">
|
||||
<div class="d-flex mb-3">
|
||||
<div class="flex-grow-1"><i
|
||||
class="mdi mdi-checkbox-blank-circle text-warning me-2"></i><span
|
||||
class="fw-medium">{{ $meeting->date?->format('d M, Y') }}</span>
|
||||
</div>
|
||||
<div class="flex-shrink-0"><small
|
||||
class="badge bg-primary-subtle text-primary ms-auto">{{ $meeting->start_time?->format('h:i A') }}</small>
|
||||
</div>
|
||||
</div>
|
||||
<h6 class="card-title fs-12">{{ $meeting->title }}
|
||||
</h6>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="simplebar-placeholder" style="width: 655px; height: 268px;"></div>
|
||||
</div>
|
||||
<div class="simplebar-track simplebar-horizontal" style="visibility: hidden;">
|
||||
<div class="simplebar-scrollbar" style="width: 0px; display: none;"></div>
|
||||
</div>
|
||||
<div class="simplebar-track simplebar-vertical" style="visibility: visible;">
|
||||
<div class="simplebar-scrollbar"
|
||||
style="height: 178px; transform: translate3d(0px, 41px, 0px); display: block;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- end col-->
|
||||
|
||||
<div class="col-xl-9">
|
||||
<div class="card">
|
||||
<div class="card-header border-bottom-dashed">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">
|
||||
<h6 class="card-title mb-0">Filter</h6>
|
||||
</div>
|
||||
<div class="flex-shrink-0">
|
||||
<ul class="list-inline card-toolbar-menu d-flex align-items-center mb-0">
|
||||
<li class="list-inline-item">
|
||||
<a class="minimize-card align-middle" data-bs-toggle="collapse"
|
||||
href="#collapseExample2" role="button" aria-expanded="false"
|
||||
aria-controls="collapseExample2">
|
||||
<i class="mdi mdi-plus plus align-middle"></i>
|
||||
<i class="mdi mdi-minus minus align-middle"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div @class(['card-body collapse', 'show' => request()->has('product_id')]) id="collapseExample2">
|
||||
{{ html()->form('GET')->id('filter-form')->open() }}
|
||||
<div class="row justify-content-between align-items-center">
|
||||
<div class="col-md-4">
|
||||
{{ html()->select('product_id', $productOptions, request('product_id'))->placeholder('By Product')->value(request('product_id'))->class('form-control select2') }}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="d-flex list-grid-nav hstack mt-2 gap-1">
|
||||
<button type="submit" class="btn btn-sm btn-success">Filter</button>
|
||||
<a href="{{ route(Route::currentRouteName()) }}"
|
||||
class="btn btn-danger btn-sm reset-filter">Reset</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-h-100">
|
||||
<div class="card-body">
|
||||
<div id="calendar"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
</div>
|
||||
<!--end row-->
|
||||
</div>
|
||||
</div> <!-- end row-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="viewModal" class="modal fade" tabindex="-1" aria-labelledby="viewModalLabel" aria-hidden="true"
|
||||
style="display: none;">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<p class="modal-title" id="viewModalLabel">Detail</p>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<div id="eventModal" class="modal fade" tabindex="-1" aria-labelledby="eventModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<p class="modal-title" id="viewModalLabel">Event Form</p>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
{{ html()->form('POST')->route('event.store')->class(['needs-validation eventForm'])->attributes(['novalidate'])->open() }}
|
||||
@include('admin::calendar.partials.event-form')
|
||||
{{ html()->form()->close() }}
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<div id="contentModal" class="modal fade" tabindex="-1" aria-labelledby="contentModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<p class="modal-title" id="viewModalLabel">Schedule Update Form</p>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" id="js-content-partial-target">
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<div id="meetingModal" class="modal fade" tabindex="-1" aria-labelledby="meetingModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="viewModalLabel">Meeting Form</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
{{ html()->form('POST')->route('meeting.store')->class(['needs-validation meetingForm'])->attributes(['novalidate'])->open() }}
|
||||
@include('admin::calendar.partials.meeting-form')
|
||||
{{ html()->form()->close() }}
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
<script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var calendarEl = document.getElementById('calendar');
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
|
||||
var currentDate = new Date().toISOString().split('T')[0];
|
||||
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||
headerToolbar: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
|
||||
},
|
||||
initialDate: currentDate,
|
||||
navLinks: true, // can click day/week names to navigate views
|
||||
businessHours: true, // display business hours
|
||||
editable: false,
|
||||
selectable: false,
|
||||
dayMaxEvents: true,
|
||||
events: {
|
||||
url: `${base_url}/admin/calendarByAjax`,
|
||||
method: 'GET',
|
||||
extraParams: function() {
|
||||
return {
|
||||
product_id: $('#filter-form #product_id').val()
|
||||
};
|
||||
}
|
||||
},
|
||||
selectMirror: true,
|
||||
select: function(arg) {
|
||||
var title = prompt('Event Title:');
|
||||
if (title) {
|
||||
calendar.addEvent({
|
||||
title: title,
|
||||
start: arg.start,
|
||||
end: arg.end,
|
||||
allDay: arg.allDay
|
||||
})
|
||||
}
|
||||
calendar.unselect()
|
||||
},
|
||||
eventClick: function(arg) {
|
||||
|
||||
if (arg.event.extendedProps.type == 'content schedule') {
|
||||
$('#contentModal').modal('show');
|
||||
const url = "{{ route('content.partials.edit', ':id') }}".replace(':id', arg.event.id);
|
||||
let target = document.querySelector('#js-content-partial-target');
|
||||
target.innerHTML = "<h5 class='text-center my-5'>Loading...</h5>";
|
||||
fetch(url)
|
||||
.then(response => response.text())
|
||||
.then(html => {
|
||||
target.innerHTML = html;
|
||||
});
|
||||
} else {
|
||||
|
||||
let html = `<tr class="mb-1">`;
|
||||
html += `<td class="text-bold">Title: </td>`;
|
||||
html += `<td>${arg.event.title}</td>`;
|
||||
html += `</tr>`;
|
||||
|
||||
html += `<tr class="mb-1">`;
|
||||
html += `<td class="text-bold">Type: </td>`;
|
||||
html += `<td>${arg.event.extendedProps.type}</td>`;
|
||||
html += `</tr>`;
|
||||
|
||||
html += `<tr class="mb-1">`;
|
||||
html += `<td class="text-bold">Start: </td>`;
|
||||
html += `<td>${new Date(arg.event.start).toLocaleString()}</td>`;
|
||||
html += `</tr>`;
|
||||
|
||||
if (arg.event.end) {
|
||||
html += `<tr class="mb-1">`;
|
||||
html += `<td class="text-bold">End: </td>`;
|
||||
html += `<td>${new Date(arg.event.end).toLocaleString()}</td>`;
|
||||
html += `</tr>`;
|
||||
}
|
||||
|
||||
html += `<tr>`;
|
||||
html += `<td class="text-bold">Location: </td>`;
|
||||
html += `<td>${arg.event.extendedProps.location ?? 'No Location'}</td>`;
|
||||
html += `</tr>`;
|
||||
|
||||
html += `<tr class="mb-1">`;
|
||||
html += `<td class="text-bold">Description: </td>`;
|
||||
html += `<td>${arg.event.extendedProps.desc ?? 'No Description'}</td>`;
|
||||
html += `</tr>`;
|
||||
|
||||
const modal = $('#viewModal');
|
||||
modal.find('.modal-body').html(html);
|
||||
$('#viewModal').modal('show');
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
calendar.render();
|
||||
|
||||
$('#filter-form').on('submit', function(e) {
|
||||
calendar.refetchEvents();
|
||||
})
|
||||
|
||||
$("body").on('submit', '.eventForm', function(e) {
|
||||
e.preventDefault();
|
||||
let form = $('.eventForm')[0];
|
||||
let formData = new FormData(form);
|
||||
param = {
|
||||
url: '{{ route('event.store') }}',
|
||||
type: 'event'
|
||||
}
|
||||
formSubmit(param, formData)
|
||||
window.location.href = "{{ route('calendar.index') }}";
|
||||
})
|
||||
|
||||
$("body").on('submit', '#contentForm', function(e) {
|
||||
e.preventDefault();
|
||||
let form = $('#contentForm')[0];
|
||||
let formData = new FormData(form);
|
||||
const url = $(this).attr('action');
|
||||
const button = $('#contentForm #submit');
|
||||
button.text('Scheduling...');
|
||||
button.prop('disabled', true);
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'POST',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
data: formData,
|
||||
success: function(response) {
|
||||
$(`#contentModal`).modal('hide');
|
||||
flasher.success(response.msg);
|
||||
window.location.reload();
|
||||
},
|
||||
|
||||
error: function(xhr) {
|
||||
if (xhr.responseJSON) {
|
||||
var errors = xhr.responseJSON;
|
||||
for (var key in errors) {
|
||||
if (errors.hasOwnProperty(key)) {
|
||||
var errorMessages = errors[key];
|
||||
for (var i = 0; i < errorMessages.length; i++) {
|
||||
flasher.error(errorMessages[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
flasher.error("An error occurred while processing your request.");
|
||||
}
|
||||
},
|
||||
|
||||
complete: function() {
|
||||
button.text('Schedule');
|
||||
button.prop('disabled', false);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
$("body").on('click', '.content-edit-btn', function(e) {
|
||||
e.preventDefault();
|
||||
const url = $(this).attr('data-link');
|
||||
|
||||
let target = document.querySelector('#js-content-partial-target');
|
||||
target.innerHTML = "<h5 class='text-center my-5'>Loading...</h5>";
|
||||
fetch(url)
|
||||
.then(response => response.text())
|
||||
.then(html => {
|
||||
target.innerHTML = html;
|
||||
})
|
||||
})
|
||||
|
||||
$("body").on('submit', '.meetingForm', function(e) {
|
||||
e.preventDefault();
|
||||
let form = $('.meetingForm')[0];
|
||||
let formData = new FormData(form);
|
||||
param = {
|
||||
url: '{{ route('meeting.store') }}',
|
||||
type: 'meeting'
|
||||
}
|
||||
formSubmit(param, formData)
|
||||
window.location.href = "{{ route('calendar.index') }}";
|
||||
})
|
||||
|
||||
const formSubmit = (param, formData) => {
|
||||
let type = param.type
|
||||
$.ajax({
|
||||
url: param.url,
|
||||
type: 'POST',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
data: formData,
|
||||
success: function(response) {
|
||||
if (response.status == true) {
|
||||
eventData = response.data
|
||||
addEvent(eventData, type);
|
||||
}
|
||||
$(`#${param.type}Modal`).modal('hide');
|
||||
flasher.success(response.msg);
|
||||
$(`.${param.type}Form`)[0].reset()
|
||||
|
||||
},
|
||||
error: function(xhr) {
|
||||
if (xhr.responseJSON) {
|
||||
var errors = xhr.responseJSON;
|
||||
for (var key in errors) {
|
||||
if (errors.hasOwnProperty(key)) {
|
||||
var errorMessages = errors[key];
|
||||
for (var i = 0; i < errorMessages.length; i++) {
|
||||
flasher.error(errorMessages[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
flasher.error("An error occurred while processing your request.");
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
const addEvent = (data, type) => {
|
||||
className = '';
|
||||
console.log(data, type);
|
||||
if (type == 'event') {
|
||||
className = 'bg-primary-subtle'
|
||||
} else if (type == 'meeting') {
|
||||
className = 'bg-warning-subtle'
|
||||
} else if (type == 'meeting') {
|
||||
className = 'bg-success-subtle'
|
||||
}
|
||||
|
||||
calendar.addEvent({
|
||||
title: data.title,
|
||||
start: data.start_date,
|
||||
end: data.end_date,
|
||||
desc: data.description,
|
||||
location: data.location,
|
||||
className: className,
|
||||
allDay: true
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
@endpush
|
@@ -0,0 +1,54 @@
|
||||
<div class="row gy-3">
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Event Title')->required() }}
|
||||
{{ html()->div('Please Enter Event Title')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Event Type')->class('form-label') }}
|
||||
{{ html()->select('type', config('constants.event_type_options'))->class('form-select select2')->placeholder('-Select-')->required() }}
|
||||
{{ html()->div('Please Choose Type')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Location')->class('form-label') }}
|
||||
{{ html()->text('location')->class('form-control')->placeholder('Event Location') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Start Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('start_date')->class('form-control flatpickr-input')->id('event-start-date')->placeholder('Event Start Date')->value(date('Y-m-d h:i:s'))->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
'data-enable-time' => '',
|
||||
])->required() }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
{{ html()->div('Please Choose Start Date')->class('invalid-feedback') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('End Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('end_date')->class('form-control flatpickr-input')->id('event-end-date')->placeholder('Event End Date')->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
'data-enable-time' => '',
|
||||
]) }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic') }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Close</button>
|
||||
<button type="submit" class="btn btn-success">Save</button>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,86 @@
|
||||
<div class="row gy-3">
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Meeting Title')->required() }}
|
||||
{{ html()->div('Please enter title')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Location')->class('form-label') }}
|
||||
{{ html()->text('location')->class('form-control')->placeholder('Meeting Location') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-4">
|
||||
{{ html()->label('Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('date')->class('form-control flatpickr-date')->placeholder('Start Date')->required() }}
|
||||
<span class="input-group-text"><i class="ri-calendar-line"></i></span>
|
||||
</div>
|
||||
{{ html()->div('Choose Start Date')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-4">
|
||||
{{ html()->label('Start Time')->class('form-label') }}
|
||||
{{ html()->time('start_time')->class('form-control')->placeholder('Event Start Time') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-4">
|
||||
{{ html()->label('End Time')->class('form-label') }}
|
||||
{{ html()->time('end_time')->class('form-control')->placeholder('Event End Time') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-3">
|
||||
{{ html()->label('Meeting with: ')->class('form-label') }}
|
||||
<div class="form-check form-radio-success">
|
||||
{{ html()->radio('meeting_with', false, 'client')->class('form-check-input meeting-with') }}
|
||||
{{ html()->label('Client')->class('form-check-label me-1')->for('meeting_with_client') }}
|
||||
</div>
|
||||
|
||||
<div class="form-check form-radio-success">
|
||||
{{ html()->radio('meeting_with', false, 'member')->class('form-check-input meeting-with') }}
|
||||
{{ html()->label('Office Members')->class('form-check-label me-1')->for('meeting_with_member') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-9 col-md-9 client-dropdown d-none">
|
||||
{{ html()->label('Client')->class('form-label') }}
|
||||
{{ html()->select('client_id', $clientList)->class('form-select select2') }}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-9 col-md-9 member-dropdown d-none">
|
||||
{{ html()->label('Members')->class('form-label') }}
|
||||
{{ html()->multiselect('members[]', [])->class('form-control select2')->attributes(['multiple', 'id' => 'members']) }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic') }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Close</button>
|
||||
<button type="submit" class="btn btn-success">Save</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
$('.meeting-with').change(function() {
|
||||
|
||||
let value = $(this).val();
|
||||
|
||||
if (value == 'member') {
|
||||
$('.member-dropdown').removeClass('d-none');
|
||||
$('.client-dropdown').addClass('d-none');
|
||||
} else {
|
||||
$('.member-dropdown').addClass('d-none');
|
||||
$('.client-dropdown').removeClass('d-none');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
47
Modules/Admin/resources/views/cities/edit.blade.php
Normal file
47
Modules/Admin/resources/views/cities/edit.blade.php
Normal file
@@ -0,0 +1,47 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => 'City'])
|
||||
|
||||
<!-- end page title -->
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
<form action="{{ $editable ? route('cities.update', [$data->city_id]) : route('cities.store') }}"
|
||||
id="updateCustomForm" method="POST">
|
||||
|
||||
@csrf
|
||||
<input type=hidden name='city_id' value='{{ $editable ? $data->city_id : '' }}' />
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-6">
|
||||
{{ createText('title', 'title', 'Title', '', $editable ? $data->title : '') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
{{ createCustomSelect('tbl_districts', 'title', 'district_id', $editable ? $data->districts_id : '', 'District', 'districts_id', 'form-control select2', 'status<>-1') }}
|
||||
</div>
|
||||
|
||||
|
||||
{{-- <div class="col-lg-12 pb-2">
|
||||
{{ createTextarea('description', 'description ckeditor-classic', 'Description', $editable ? $data->description : '') }}
|
||||
</div> --}}
|
||||
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextArea('remarks', '', 'Remarks', $editable ? $data->remarks : '') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 mt-2">
|
||||
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
|
||||
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('cities.index')); ?>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
270
Modules/Admin/resources/views/cities/index.blade.php
Normal file
270
Modules/Admin/resources/views/cities/index.blade.php
Normal file
@@ -0,0 +1,270 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => 'City'])
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">City Lists</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('cities.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create City</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table class="dataTable table" id="tbl_cities" data-url="{{ route('cities.sort') }}">
|
||||
<thead class="table-dark">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('District') }}</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>
|
||||
@foreach ($data as $item)
|
||||
<tr data-id="{{ $item->city_id }}" data-display_order="{{ $item->display_order }}"
|
||||
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
|
||||
<td class="tb-col">{{ $index + 1 }}</td>
|
||||
<td class="tb-col">
|
||||
{!! getFieldData('tbl_districts', 'title', 'district_id', $item->districts_id) !!}
|
||||
</td>
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="alias-wrapper" data-id="{{ $item->city_id }}">
|
||||
<span class="alias">{{ $item->alias }}</span>
|
||||
<input type="text" class="alias-input d-none" value="{{ $item->alias }}"
|
||||
id="alias_{{ $item->city_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('cities.show', [$item->city_id]) }}" class="dropdown-item"><i
|
||||
class="ri-eye-fill text-muted me-2 align-bottom"></i> {{ label('View') }}</a></li>
|
||||
<li><a href="{{ route('cities.edit', [$item->city_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('cities.toggle', [$item->city_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('cities.clone', [$item->city_id]) }}" class="dropdown-item toggle-item-btn"
|
||||
onclick="confirmClone(this.href)">
|
||||
<i class="ri-file-copy-line text-muted me-2 align-bottom"></i> {{ label('Clone') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('cities.destroy', [$item->city_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>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@push('js')
|
||||
<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('cities.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');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function confirmClone(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'Clonning will create replica of current row. No any linked data will be updated!',
|
||||
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!', 'Clonning Completed', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endpush
|
37
Modules/Admin/resources/views/cities/show.blade.php
Normal file
37
Modules/Admin/resources/views/cities/show.blade.php
Normal file
@@ -0,0 +1,37 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('cities.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<p><b>Districts Id : </b> <span>{{ $data->districts_id }}</span></p>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Description : </b> <span>{{ $data->description }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
@@ -0,0 +1,51 @@
|
||||
@php
|
||||
$newMenuList = [];
|
||||
@endphp
|
||||
@foreach (config('menu') as $menuKey => $menu)
|
||||
<li class="nav-item">
|
||||
@if (array_key_exists('submenu', $menu))
|
||||
@php
|
||||
$menuList = array_column($menu['submenu'], 'url');
|
||||
$menuCanArr = array_map('current', array_column($menu['submenu'], 'can'));
|
||||
$permissionFlag = false;
|
||||
if (auth()->user()->hasAnyPermission($menuCanArr)) {
|
||||
$permissionFlag = true;
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if ($permissionFlag)
|
||||
<a class="nav-link menu-link @if (in_array(\Request::path(), $menuList)) collapsed active @endif" data-bs-toggle="collapse"
|
||||
role="button" aria-expanded="false" aria-controls="{{ Str::slug($menu['text']) }}"
|
||||
href="#{{ Str::slug($menu['text']) }}">
|
||||
<i class="{{ $menu['icon'] }}"></i><span data-key="t-customers">{{ $menu['text'] }}</span></a>
|
||||
|
||||
<div class="menu-dropdown @if (in_array(\Request::path(), $menuList)) collapsed show @endif collapse"
|
||||
id="{{ Str::slug($menu['text']) }}">
|
||||
<ul class="nav nav-sm flex-column">
|
||||
@foreach ($menu['submenu'] as $subMenu)
|
||||
@can($subMenu['can'])
|
||||
<li class="nav-item">
|
||||
<a href="{{ url($subMenu['url']) }}"
|
||||
class="nav-link @if (\Request::is($subMenu['url']) || \Request::is($subMenu['url'] . '/*')) active @endif">{{ $subMenu['text'] }}
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@else
|
||||
@if (array_key_exists('can', $menu))
|
||||
@can($menu['can'])
|
||||
<a href="{{ url($menu['url']) ?? '#' }}" class="nav-link @if (\Request::is($menu['url']) || \Request::is($menu['url'] . '/*')) active @endif">
|
||||
<i class="{{ $menu['icon'] }}"></i><span data-key="t-customers">{{ $menu['text'] }}</span>
|
||||
</a>
|
||||
@endcan
|
||||
@else
|
||||
<a href="{{ url($menu['url']) ?? '#' }}" class="nav-link @if (\Request::is($menu['url']) || \Request::is($menu['url'] . '/*')) active @endif">
|
||||
<i class="{{ $menu['icon'] }}"></i><span data-key="t-customers">{{ $menu['text'] }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
23
Modules/Admin/resources/views/countries/create.blade.php
Normal file
23
Modules/Admin/resources/views/countries/create.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('country.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::countries.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,9 @@
|
||||
<div class="hstack flex-wrap gap-3">
|
||||
<a href="javascript:void(0);" class="link-info fs-15 view-item-btn" data-bs-toggle="modal" data-bs-target="#viewModal">
|
||||
<i class="ri-eye-fill"></i>
|
||||
</a>
|
||||
<a href="{{ route('country.edit', $id) }}" class="link-success fs-15 edit-item-btn"><i class="ri-edit-2-fill"></i></a>
|
||||
|
||||
<a href="javascript:void(0);" data-link="{{ route('country.destroy', $id) }}" data-id="{{ $id }}"
|
||||
class="link-danger fs-15 remove-item"><i class="ri-delete-bin-fill"></i></a>
|
||||
</div>
|
23
Modules/Admin/resources/views/countries/edit.blade.php
Normal file
23
Modules/Admin/resources/views/countries/edit.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($country, 'PUT')->route('country.update', $country->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::countries.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
40
Modules/Admin/resources/views/countries/index.blade.php
Normal file
40
Modules/Admin/resources/views/countries/index.blade.php
Normal file
@@ -0,0 +1,40 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('country.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
@php
|
||||
$columns = [
|
||||
['title' => 'ID', 'data' => 'id', 'name' => 'id'],
|
||||
['title' => 'Name', 'data' => 'name', 'name' => 'name'],
|
||||
['title' => 'Action', 'data' => 'action', 'orderable' => false, 'searchable' => false],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<x-data-table-script :route="route('country.index')" :columns="$columns" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@foreach($countries as $country)
|
||||
{{-- @dd($country) --}}
|
||||
@include('admin::countries.partials.view')
|
||||
@endforeach
|
||||
|
||||
@endsection
|
@@ -0,0 +1,16 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Country Name') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Code')->class('form-label') }}
|
||||
{{ html()->text('code')->class('form-control')->placeholder('Country code') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" :href="route('country.index')" />
|
||||
|
||||
</div>
|
||||
|
@@ -0,0 +1,13 @@
|
||||
<div class="modal fade" id="viewModal" tabindex="-1" aria-labelledby="viewModalLabel" aria-modal="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalgridLabel">View Country</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@include('admin::countries.show')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
9
Modules/Admin/resources/views/countries/show.blade.php
Normal file
9
Modules/Admin/resources/views/countries/show.blade.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<ul class="list-inline d-flex flex-column flex-wrap gap-2">
|
||||
<li class="list-inline-item">
|
||||
Country Name: <span class="fw-medium">{{ $country->name }} </span>
|
||||
</li>
|
||||
|
||||
<li class="list-inline-item">
|
||||
Country Code: <span class="fw-medium">{{ $country->code }} </span>
|
||||
</li>
|
||||
</ul>
|
23
Modules/Admin/resources/views/designations/create.blade.php
Normal file
23
Modules/Admin/resources/views/designations/create.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('designation.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::partials.designations.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
23
Modules/Admin/resources/views/designations/edit.blade.php
Normal file
23
Modules/Admin/resources/views/designations/edit.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($designation, 'PUT')->route('designation.update', $designation->designation_id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::partials.designations.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
61
Modules/Admin/resources/views/designations/index.blade.php
Normal file
61
Modules/Admin/resources/views/designations/index.blade.php
Normal file
@@ -0,0 +1,61 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designation.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table id="buttons-datatables" class="display table-sm table-bordered table">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">S.N</span></th>
|
||||
{{-- <th class="tb-col"><span class="overline-title">Department</span></th> --}}
|
||||
<th class="tb-col"><span class="overline-title">Name</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Status</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">Action</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach ($designationLists as $index => $item)
|
||||
<tr>
|
||||
<td class="tb-col">{{ $index + 1 }}</td>
|
||||
{{-- <td class="tb-col">{{ $item->department?->name }}</td> --}}
|
||||
<td class="tb-col">{{ $item->name }}</td>
|
||||
<td class="tb-col">{!! $item->status_name !!}</td>
|
||||
<td class="tb-col">
|
||||
<div class="hstack flex-wrap gap-3">
|
||||
<a href="javascript:void(0);" class="link-info fs-15 view-item-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#viewModal">
|
||||
<i class="ri-eye-fill"></i>
|
||||
</a>
|
||||
<a href="{{ route('designation.edit', $item) }}" class="link-success fs-15 edit-item-btn"><i
|
||||
class="ri-edit-2-fill"></i></a>
|
||||
|
||||
<a href="javascript:void(0);" data-link="{{ route('designation.destroy', $item) }}"
|
||||
data-id="{{ $item->designation_id }}" class="link-danger fs-15 remove-item-btn"><i
|
||||
class="ri-delete-bin-fill"></i></a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
48
Modules/Admin/resources/views/designations/show.blade.php
Normal file
48
Modules/Admin/resources/views/designations/show.blade.php
Normal file
@@ -0,0 +1,48 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designations.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='card-body'>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<p><b>Job Description : </b> <span>{{ $data->job_description }}</span></p>
|
||||
<p><b>Departments Id : </b> <span>{{ $data->departments_id }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
23
Modules/Admin/resources/views/districts/create.blade.php
Normal file
23
Modules/Admin/resources/views/districts/create.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('district.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::districts.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,6 @@
|
||||
<div class="hstack flex-wrap gap-3">
|
||||
<a href="{{ route('district.edit', $id) }}" class="link-success fs-15 edit-item-btn"><i class="ri-edit-2-fill"></i></a>
|
||||
|
||||
<a href="javascript:void(0);" data-link="{{ route('district.destroy', $id) }}" data-id="{{ $id }}"
|
||||
class="link-danger fs-15 remove-item"><i class="ri-delete-bin-fill"></i></a>
|
||||
</div>
|
23
Modules/Admin/resources/views/districts/edit.blade.php
Normal file
23
Modules/Admin/resources/views/districts/edit.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($district, 'PUT')->route('district.update', $district->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::districts.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
35
Modules/Admin/resources/views/districts/index.blade.php
Normal file
35
Modules/Admin/resources/views/districts/index.blade.php
Normal file
@@ -0,0 +1,35 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('district.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@php
|
||||
$columns = [
|
||||
['title' => 'ID', 'data' => 'id', 'name' => 'id'],
|
||||
['title' => 'Province', 'data' => 'province', 'name' => 'province'],
|
||||
['title' => 'Name', 'data' => 'name', 'name' => 'name'],
|
||||
['title' => 'Action', 'data' => 'action', 'orderable' => false, 'searchable' => false],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<x-data-table-script :route="route('district.index')" :columns="$columns" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,15 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Province')->class('form-label') }}
|
||||
{{ html()->select('province_id', $provinceLists)->class('form-select select2')->placeholder('Province') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('District Name') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" :href="route('district.index')" />
|
||||
|
||||
</div>
|
48
Modules/Admin/resources/views/districts/show.blade.php
Normal file
48
Modules/Admin/resources/views/districts/show.blade.php
Normal file
@@ -0,0 +1,48 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designations.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='card-body'>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<p><b>Job Description : </b> <span>{{ $data->job_description }}</span></p>
|
||||
<p><b>Departments Id : </b> <span>{{ $data->departments_id }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
3
Modules/Admin/resources/views/dropdown/create.blade.php
Normal file
3
Modules/Admin/resources/views/dropdown/create.blade.php
Normal file
@@ -0,0 +1,3 @@
|
||||
{{ html()->form('POST')->route('dropdown.store')->class(['needs-validation dropdownForm'])->attributes(['novalidate'])->open() }}
|
||||
@include('admin::dropdown.partials.action', ['status' => 11])
|
||||
{{ html()->form()->close() }}
|
5
Modules/Admin/resources/views/dropdown/edit.blade.php
Normal file
5
Modules/Admin/resources/views/dropdown/edit.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
{{ html()->modelForm($dropdownModel, 'PUT')->route('dropdown.update', $dropdownModel->id)->class(['needs-validation dropdownForm'])->attributes(['novalidate'])->open() }}
|
||||
@include('admin::dropdown.partials.action', ['status' => $dropdownModel->status])
|
||||
{{ html()->closeModelForm() }}
|
||||
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
174
Modules/Admin/resources/views/dropdown/index.blade.php
Normal file
174
Modules/Admin/resources/views/dropdown/index.blade.php
Normal file
@@ -0,0 +1,174 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex justify-content-between">
|
||||
<button data-bs-toggle="modal" data-bs-target="#exampleModalgrid"
|
||||
class="btn btn-info btn-sm waves-effect waves-light click-dropdown"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Add
|
||||
Dropdown</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
|
||||
@foreach ($fieldLists as $key => $item)
|
||||
<a class="nav-link {{ $key == 1 ? 'active' : '' }} mb-2" id="v-pills-{{ $key }}-tab"
|
||||
data-bs-toggle="pill" href="#v-pills-{{ $key }}" role="tab"
|
||||
aria-controls="v-pills-{{ $key }}" aria-selected="true">{{ $item }}</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
<div class="col-md-9">
|
||||
<div class="tab-content text-muted mt-md-0 mt-4" id="v-pills-tabContent">
|
||||
@foreach ($fields as $key => $item)
|
||||
<div class="tab-pane fade {{ $key == 0 ? 'show active' : '' }}" id="v-pills-{{ $item->id }}"
|
||||
role="tabpanel" aria-labelledby="v-pills-{{ $item->id }}-tab">
|
||||
<div class="table-responsive">
|
||||
<div class="table-responsive">
|
||||
<table class="table-nowrap table-sm mb-0 table align-middle">
|
||||
<thead class="table-dark">
|
||||
<tr>
|
||||
<th scope="col">SN</th>
|
||||
<th scope="col">Drop Value</th>
|
||||
<th scope="col">Alias</th>
|
||||
<th scope="col">Status</th>
|
||||
<th scope="col">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($item->dropdown as $dropKey => $dropItem)
|
||||
<tr>
|
||||
<td>{{ $dropKey + 1 }}</td>
|
||||
<td>{{ $dropItem->title }}</td>
|
||||
<td>{{ $dropItem->alias }}</td>
|
||||
<td>{!! $dropItem->status_name !!}</td>
|
||||
<td>
|
||||
<div class="hstack fs-15 gap-3">
|
||||
<a href="javascript:void(0);" class="link-primary edit-dropdown"
|
||||
data-link ="{{ route('dropdown.edit', $dropItem->id) }}"><i
|
||||
class="ri-edit-2-fill"></i></a>
|
||||
<a href="javascript:void(0);" class="link-danger remove-item-btn"
|
||||
data-link="{{ route('dropdown.destroy', $dropItem->id) }}"
|
||||
data-id="{{ $dropItem->id }}"><i class="ri-delete-bin-5-line"></i></a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">No Record Found</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
</div>
|
||||
<!--end row-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">Create Field</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ html()->form('POST')->route('field.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
<div class="mb-3">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }}
|
||||
{{ html()->div('Please enter title')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-check-right form-switch mb-3" dir="ltr">
|
||||
<input type="checkbox" class="form-check-input" id="customSwitchsizesm" checked="">
|
||||
<label class="form-check-label" for="customSwitchsizesm">Status</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<button type="submit" class="btn btn-primary">Add</button>
|
||||
</div>
|
||||
{{ html()->form()->close() }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
</div>
|
||||
|
||||
<!-- Grids in modals -->
|
||||
<div class="modal fade" id="exampleModalgrid" tabindex="-1" aria-labelledby="exampleModalgridLabel" aria-modal="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalgridLabel">Dropdown Form</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@include('admin::dropdown.create')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="editDropdownModal" tabindex="-1" aria-labelledby="editModalgridLabel" aria-modal="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="editModalgridLabel">Dropdown Edit Form</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
<script>
|
||||
// $(".click-dropdown").click(function(e) {
|
||||
// e.preventDefault();
|
||||
// console.log('asdw');
|
||||
// $('.dropdownForm')[0].reset();
|
||||
// })
|
||||
|
||||
$(".edit-dropdown").click(function(e) {
|
||||
e.preventDefault();
|
||||
url = $(this).data('link')
|
||||
editDropdownForm(url)
|
||||
})
|
||||
|
||||
const editDropdownForm = (url) => {
|
||||
// url = "{{ route('dropdown.edit', ':id') }}"
|
||||
// url.replace(':id', id)
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "get",
|
||||
// dataType: "JSON",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function(res) {
|
||||
console.log(res);
|
||||
$('#editDropdownModal').find('.modal-body').html(res.view)
|
||||
$('#editDropdownModal').modal('show')
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@endpush
|
@@ -0,0 +1,24 @@
|
||||
<div class="row g-3">
|
||||
<div class="col-xxl-12">
|
||||
{{ html()->label('Select Field')->class('form-label') }}
|
||||
{{ html()->select('fid', $fieldLists)->class('form-select select2')->placeholder('Select Field')->required() }}
|
||||
{{ html()->div('Please choose field')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-xxl-12">
|
||||
{{ html()->label('Drop value')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Enter drop value')->required() }}
|
||||
{{ html()->div('Please enter value')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="form-check form-check-right form-switch mb-3" dir="ltr">
|
||||
{{ html()->checkbox('status')->value('11')->class('form-check-input')->checked(old('status', $status === 11)) }}
|
||||
{{ html()->label('Status')->class('form-label') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<x-form-buttons :editable="$editable" :href="route('dropdown.index')" />
|
||||
|
||||
</div><!--end row-->
|
7
Modules/Admin/resources/views/index.blade.php
Normal file
7
Modules/Admin/resources/views/index.blade.php
Normal file
@@ -0,0 +1,7 @@
|
||||
@extends('admin::layouts.master')
|
||||
|
||||
@section('content')
|
||||
<h1>Hello World</h1>
|
||||
|
||||
<p>Module: {!! config('admin.name') !!}</p>
|
||||
@endsection
|
29
Modules/Admin/resources/views/layouts/master.blade.php
Normal file
29
Modules/Admin/resources/views/layouts/master.blade.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<title>Admin Module - {{ config('app.name', 'Laravel') }}</title>
|
||||
|
||||
<meta name="description" content="{{ $description ?? '' }}">
|
||||
<meta name="keywords" content="{{ $keywords ?? '' }}">
|
||||
<meta name="author" content="{{ $author ?? '' }}">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.bunny.net">
|
||||
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
|
||||
|
||||
{{-- Vite CSS --}}
|
||||
{{-- {{ module_vite('build-admin', 'resources/assets/sass/app.scss') }} --}}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@yield('content')
|
||||
|
||||
{{-- Vite JS --}}
|
||||
{{-- {{ module_vite('build-admin', 'resources/assets/js/app.js') }} --}}
|
||||
</body>
|
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('municipality.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::municipalities.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,7 @@
|
||||
<div class="hstack flex-wrap gap-3">
|
||||
<a href="{{ route('municipality.edit', $id) }}" class="link-success fs-15 edit-item-btn"><i
|
||||
class="ri-edit-2-fill"></i></a>
|
||||
|
||||
<a href="javascript:void(0);" data-link="{{ route('municipality.destroy', $id) }}" data-id="{{ $id }}"
|
||||
class="link-danger fs-15 remove-item"><i class="ri-delete-bin-fill"></i></a>
|
||||
</div>
|
23
Modules/Admin/resources/views/municipalities/edit.blade.php
Normal file
23
Modules/Admin/resources/views/municipalities/edit.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($municipality, 'PUT')->route('municipality.update', $municipality->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::municipalities.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
35
Modules/Admin/resources/views/municipalities/index.blade.php
Normal file
35
Modules/Admin/resources/views/municipalities/index.blade.php
Normal file
@@ -0,0 +1,35 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('municipality.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@php
|
||||
$columns = [
|
||||
['title' => 'ID', 'data' => 'id', 'name' => 'id'],
|
||||
['title' => 'District', 'data' => 'district', 'name' => 'district'],
|
||||
['title' => 'Name', 'data' => 'name', 'name' => 'name'],
|
||||
['title' => 'Action', 'data' => 'action', 'orderable' => false, 'searchable' => false],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<x-data-table-script :route="route('municipality.index')" :columns="$columns" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,15 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('District')->class('form-label') }}
|
||||
{{ html()->select('district_id', $districtLists)->class('form-select select2')->placeholder('District') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Municipality Name') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" :href="route('municipality.index')" />
|
||||
|
||||
</div>
|
48
Modules/Admin/resources/views/municipalities/show.blade.php
Normal file
48
Modules/Admin/resources/views/municipalities/show.blade.php
Normal file
@@ -0,0 +1,48 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designations.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='card-body'>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<p><b>Job Description : </b> <span>{{ $data->job_description }}</span></p>
|
||||
<p><b>Departments Id : </b> <span>{{ $data->departments_id }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
@@ -0,0 +1,50 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }}
|
||||
{{ html()->div('Please select title')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Appreciation Type')->class('form-label') }}
|
||||
{{ html()->select('type', \Modules\Admin\Models\Appreciation::APPRECIATION_TYPE)->class('form-select select2')->placeholder('Select Type')->required() }}
|
||||
{{ html()->div('Please select type')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Employee')->class('form-label') }}
|
||||
{{ html()->select('employee_id', $employeeLists)->class('form-select select2')->placeholder('Select Employee')->required() }}
|
||||
{{ html()->div('Please select appriciation')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Appreciated By')->class('form-label') }}
|
||||
{{ html()->select('appreciated_by', $employeeLists)->class('form-select select2')->placeholder('Select Who Appreciated')->required() }}
|
||||
{{ html()->div('Please select appriciated by')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Appreciated Date')->class('form-label') }}
|
||||
{{ html()->date('appreciated_date')->class('form-control')->placeholder('Select Date')->required()}}
|
||||
{{ html()->div('Please select appreciated date')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('appreciation.index') }}" />
|
||||
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,48 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Company Name') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Company Type')->class('form-label') }}
|
||||
{{ html()->select('company_type_id', $companyTypeLists)->class('form-select select2')->placeholder('Select Company Type') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Address')->class('form-label') }}
|
||||
{{ html()->text('address')->class('form-control')->placeholder('Company Full Address') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Company Description')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 py-4">
|
||||
<h5 class="text-center">Bank Details</h5>
|
||||
<div class="border-dash border"></div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('bank_name')->class('form-control')->placeholder('Bank Name') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Account Number')->class('form-label') }}
|
||||
{{ html()->text('bank_acc_no')->class('form-control')->placeholder('Bank Account Number') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Branch')->class('form-label') }}
|
||||
{{ html()->text('bank_acc_branch')->class('form-control')->placeholder('Branch Name') }}
|
||||
</div>
|
||||
|
||||
<div class="mt-2">
|
||||
<x-form-buttons :editable='$editable' />
|
||||
</div>
|
||||
|
||||
</div>
|
@@ -0,0 +1,10 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Enter Name') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable='$editable' />
|
||||
|
||||
</div>
|
@@ -0,0 +1,42 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Complaint Against')->class('form-label') }}
|
||||
{{ html()->select('employee_id', $employee)->class('form-select select2')->placeholder('Select Employee')->required() }}
|
||||
{{ html()->div('Please select employee')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Complaint By')->class('form-label') }}
|
||||
{{ html()->select('complaint_by', $employee)->class('form-select select2')->placeholder('Select Who Complaint')->required() }}
|
||||
{{ html()->div('Please select complaint by')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Complaint Date')->class('form-label') }}
|
||||
{{ html()->date('complaint_date')->class('form-control')->placeholder('Select Date')->required() }}
|
||||
{{ html()->div('Please select complaint date')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Remarks')->class('form-label') }}
|
||||
{{ html()->textarea('remarks')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
{{ html()->button($editable ? 'Update' : 'Add Complaint', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
|
||||
|
||||
@endpush
|
@@ -0,0 +1,28 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Department Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Department Name')->required() }}
|
||||
{{ html()->div('Please add the department name')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Department Head')->class('form-label') }}
|
||||
{{ html()->select('employee_id',$employeeLists)->class('form-control select2')->placeholder('Department Head') }}
|
||||
{{ html()->div('Please add the department head')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control') }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
{{ html()->button($editable ? 'Update' : 'Add Department', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,31 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
{{-- <div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Department')->class('form-label') }}
|
||||
{{ html()->select('department_id', $departmentList)->class('form-select')->placeholder('Department')->required() }}
|
||||
</div> --}}
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Designation Name')->required() }}
|
||||
{{ html()->div('Please add designation')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
{{-- <div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Remarks')->class('form-label') }}
|
||||
{{ html()->textarea('remarks')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div> --}}
|
||||
|
||||
<div class="text-end">
|
||||
{{ html()->button($editable ? 'Update' : 'Add Designation', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,97 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row gy-3">
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Event Title')->required() }}
|
||||
{{ html()->div('Please Enter Event Title')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Event Type')->class('form-label') }}
|
||||
{{ html()->select('type', \Modules\Meeting\Models\Event::MEETING_TYPE)->class('form-select select2')->placeholder('Event Type')->required() }}
|
||||
{{ html()->div('Please Choose Type')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Location')->class('form-label') }}
|
||||
{{ html()->text('location')->class('form-control')->placeholder('Event Location') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Start Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('start_date')->class('form-control flatpickr-input active')->id('event-start-date')->placeholder('Event Start Date')->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
])->required() }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('End Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('end_date')->class('form-control flatpickr-input active')->id('event-end-date')->placeholder('Event End Date')->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
]) }}
|
||||
{{-- {{ html()->text('end_date')->class('form-control flatpickr-date')->id('event-end-date')->placeholder('Event End Date') }} --}}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- <div class="col-lg-3 col-md-6">
|
||||
{{ html()->label('Start Time')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('start_time')->class('form-control')->placeholder('Event Start Time')->attributes(['data-provider' => 'timepickr', 'data-time-basic' => 'true']) }}
|
||||
<span class="input-group-text"><i class="ri-time-line"></i></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-6">
|
||||
{{ html()->label('End Time')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('end_time')->class('form-control')->placeholder('Event End Time')->attributes(['data-provider' => 'timepickr', 'data-time-basic' => 'true']) }}
|
||||
<span class="input-group-text"><i class="ri-time-line"></i></span>
|
||||
</div>
|
||||
</div> --}}
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic')->placeholder('Event Description')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable='$editable' label='Add' href="{{ route('event.index') }}" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">Publish</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Status')->class('form-label') }}
|
||||
{{ html()->select('status', $status)->class('form-control select2')->placeholder('Select Status') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,70 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Holiday Title')->required() }}
|
||||
{{ html()->div('Please select Resigner')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Start Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('start_date')->class('form-control flatpickr-date flatpickr-input')->id('event-start-date')->placeholder('Holiday Start Date')
|
||||
->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
])->required() }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('End Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('end_date')->class('form-control flatpickr-date flatpickr-input')->id('event-end-date')->placeholder('Holiday End Date')
|
||||
->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
])->required() }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Holiday Description')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('holiday.index') }}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">Publish</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Status')->class('form-label') }}
|
||||
{{ html()->select('status', $status)->class('form-control select2')->placeholder('Select Status') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,54 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Date')->class('form-label') }}
|
||||
{{ html()->text('date')->class('form-control flatpickr-date') ->attributes([
|
||||
'data-provider' => 'flatpickr',
|
||||
'data-date-format' => 'Y-m-d',
|
||||
])->placeholder('Choose Date')->required() }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic1') }}
|
||||
</div>
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('notice.index') }}" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card -->
|
||||
|
||||
</div>
|
||||
<!-- end col -->
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">Publish</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ html()->label('Status')->class('form-label') }}
|
||||
{{ html()->select('status', $status)->class('form-control select2')->placeholder('Select Status') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
<!-- end card -->
|
||||
</div>
|
||||
<!-- end col -->
|
||||
</div>
|
@@ -0,0 +1,84 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Employee')->class('form-label') }}
|
||||
{{ html()->select('employee_id', $employeeList)->class('form-control select2 employee-dropdown')->placeholder('Employee Name')->required() }}
|
||||
{{ html()->div('Employee')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Ranking Type')->class('form-label') }}
|
||||
{{ html()->select('type', $rankingTypeList)->class('form-control select2')->placeholder('Ranking Type')->required() }}
|
||||
{{ html()->div('Please select ranking type')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Previous Designation')->class('form-label') }}
|
||||
{{ html()->select('old_designation_id', $designationList)->class('form-control select2 designation-dropdown')->placeholder('Previous Desgination')->required() }}
|
||||
{{ html()->div('Please select previous designation')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('New Department')->class('form-label') }}
|
||||
{{ html()->select('new_department_id', $departmentList)->class('form-control select2')->placeholder('New Department')->required() }}
|
||||
{{ html()->div('Please select new deparment')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('New Designation')->class('form-label') }}
|
||||
{{ html()->select('new_designation_id', $designationList)->class('form-control select2')->placeholder('New Desgination')->required() }}
|
||||
{{ html()->div('Please select new designation')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Date')->class('form-label') }}
|
||||
{{ html()->text('date')->class('form-control flatpickr-date')->placeholder('Select Date')->required() }}
|
||||
{{ html()->div('Please select date')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable='$editable' label='Add' href="{{ route('promotionDemotion.index') }}" />
|
||||
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('.employee-dropdown').change(function() {
|
||||
let employeeId = $(this).val();
|
||||
$.ajax({
|
||||
url: "{{ route('employee.getEmployeeById') }}",
|
||||
type: "POST",
|
||||
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
|
||||
data: {
|
||||
employeeId: employeeId
|
||||
},
|
||||
|
||||
success: function(response) {
|
||||
console.log(response.designation_id);
|
||||
console.log(response);
|
||||
$(".designation-dropdown").val(response.designation_id);
|
||||
},
|
||||
|
||||
error: function(xhr, status, error) {
|
||||
console.error(xhr.responseText);
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
@endpush
|
@@ -0,0 +1,32 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Resigner')->class('form-label') }}
|
||||
{{ html()->select('employee_id', $employeeLists)->class('form-select select2')->placeholder('Resigner')->required() }}
|
||||
{{ html()->div('Please select Resigner')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Employee')->class('form-label') }}
|
||||
{{ html()->select('resignation_type', \Modules\Admin\Models\Resignation::RESIGNATION_TYPE)->class('form-select select2')->placeholder('Resignation Type')->required() }}
|
||||
{{ html()->div('Please select resignation_type')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Resignation Date')->class('form-label') }}
|
||||
{{ html()->date('resignation_date')->class('form-control')->placeholder('Select Resignation Date')->required() }}
|
||||
{{ html()->div('Please select resignation_date')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Reason')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Write reason for resgination')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('resignation.index') }}" />
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,45 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Employee')->class('form-label') }}
|
||||
{{ html()->select('employee_id', $employeeLists)->class('form-select select2')->placeholder('Employee')->required() }}
|
||||
{{ html()->div('Please select Resigner')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Department From')->class('form-label') }}
|
||||
{{ html()->select('old_department_id', $departmentLists)->class('form-select select2')->placeholder('Previous Department')->required() }}
|
||||
{{ html()->div('Please select Resigner')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Department To')->class('form-label') }}
|
||||
{{ html()->select('new_department_id', $departmentLists)->class('form-select select2')->placeholder('New Department')->required() }}
|
||||
{{ html()->div('Please select Resigner')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Transfer Date')->class('form-label') }}
|
||||
{{ html()->date('transfer_date')->class('form-control')->placeholder('Transfer Date')->required() }}
|
||||
{{ html()->div('Please select transfer_date')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Employee')->class('form-label') }}
|
||||
{{ html()->select('transfer_type', \Modules\Admin\Models\Transfer::TRANSFER_TYPE)->class('form-select select2')->placeholder('Transfer Type')->required() }}
|
||||
{{ html()->div('Please select transfer_type')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('transfer.index') }}" />
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
@@ -0,0 +1,37 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Warning Recipient')->class('form-label') }}
|
||||
{{ html()->select('employee_id', $employeeLists)->class('form-select select2')->placeholder('Select Warning Recipient')->required() }}
|
||||
{{ html()->div('Please select Recipient')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Warning Type')->class('form-label') }}
|
||||
{{ html()->select('type',\Modules\Admin\Models\Warning::WARNING_TYPE)->class('form-select select2')->placeholder('Select Warning Type')->required() }}
|
||||
{{ html()->div('Please select Type')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Warning Date')->class('form-label') }}
|
||||
{{ html()->date('warning_date')->class('form-control')->placeholder('Select Warning Date')->required() }}
|
||||
{{ html()->div('Please select warning_date')->class('invalid-feedback') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Reason')->class('form-label') }}
|
||||
{{ html()->select('reason',\Modules\Admin\Models\Warning::WARNING_REASON)->class('form-select select2')->placeholder('Warning Reason') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Details')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Warning Details')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" label='Add' href="{{ route('warning.index') }}" />
|
||||
|
||||
</div>
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
23
Modules/Admin/resources/views/provinces/create.blade.php
Normal file
23
Modules/Admin/resources/views/provinces/create.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('province.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::provinces.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,9 @@
|
||||
<div class="hstack flex-wrap gap-3">
|
||||
<a href="javascript:void(0);" class="link-info fs-15 view-item-btn" data-bs-toggle="modal" data-bs-target="#viewModal">
|
||||
<i class="ri-eye-fill"></i>
|
||||
</a>
|
||||
<a href="{{ route('province.edit', $id) }}" class="link-success fs-15 edit-item-btn"><i class="ri-edit-2-line"></i></a>
|
||||
|
||||
<a href="javascript:void(0);" data-link="{{ route('provinri-edit-2-fillid) }}" data-id="{{ $id }}"
|
||||
class="link-danger fs-15 remove-item"><i class="ri-delete-bin-fill"></i></a>
|
||||
</div>
|
23
Modules/Admin/resources/views/provinces/edit.blade.php
Normal file
23
Modules/Admin/resources/views/provinces/edit.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($province, 'PUT')->route('province.update', $province->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::provinces.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
36
Modules/Admin/resources/views/provinces/index.blade.php
Normal file
36
Modules/Admin/resources/views/provinces/index.blade.php
Normal file
@@ -0,0 +1,36 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('province.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
@php
|
||||
$columns = [
|
||||
['title' => 'ID', 'data' => 'id', 'name' => 'id'],
|
||||
['title' => 'country', 'data' => 'country', 'name' => 'country'],
|
||||
['title' => 'Name', 'data' => 'name', 'name' => 'name'],
|
||||
['title' => 'Action', 'data' => 'action', 'orderable' => false, 'searchable' => false],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<x-data-table-script :route="route('province.index')" :columns="$columns" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,15 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Country')->class('form-label') }}
|
||||
{{ html()->select('country_id', $countryLists)->class('form-select select2')->placeholder('Country') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('name')->class('form-control')->placeholder('Province Name') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" :href="route('province.index')" />
|
||||
|
||||
</div>
|
48
Modules/Admin/resources/views/provinces/show.blade.php
Normal file
48
Modules/Admin/resources/views/provinces/show.blade.php
Normal file
@@ -0,0 +1,48 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designations.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='card-body'>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<p><b>Job Description : </b> <span>{{ $data->job_description }}</span></p>
|
||||
<p><b>Departments Id : </b> <span>{{ $data->departments_id }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
19
Modules/Admin/resources/views/settings/create.blade.php
Normal file
19
Modules/Admin/resources/views/settings/create.blade.php
Normal file
@@ -0,0 +1,19 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
{{ html()->form('POST')->route('setting.store')->class(['needs-validation'])->attributes(['enctype'=>'multipart/form-data', 'novalidate' ])->open() }}
|
||||
|
||||
@include('admin::settings.partials.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
109
Modules/Admin/resources/views/settings/edit.blade.php
Normal file
109
Modules/Admin/resources/views/settings/edit.blade.php
Normal file
@@ -0,0 +1,109 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
<!-- end page title -->
|
||||
|
||||
{{ html()->modelForm($setting, 'POST')->route('setting.store')->class(['needs-validation'])->attributes(['enctype=multipart/form-data'])->open() }}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="nav flex-column nav-pills text-center" id="v-pills-tab" role="tablist" aria-orientation="vertical">
|
||||
<a class="nav-link active mb-2" id="v-pills-home-tab" data-bs-toggle="pill" href="#v-pills-home" role="tab"
|
||||
aria-controls="v-pills-home" aria-selected="true">General</a>
|
||||
<a class="nav-link mb-2" id="v-pills-profile-tab" data-bs-toggle="pill" href="#v-pills-profile" role="tab"
|
||||
aria-controls="v-pills-profile" aria-selected="false" tabindex="-1">Appearance</a>
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
<div class="col-md-10">
|
||||
<div class="tab-content text-muted mt-md-0 mt-4" id="v-pills-tabContent">
|
||||
<div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Your Company Name') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Email')->class('form-label') }}
|
||||
{{ html()->email('email')->class('form-control')->placeholder('Email Address') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Mobile')->class('form-label') }}
|
||||
{{ html()->text('mobile')->class('form-control')->placeholder('Mobile Number') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Phone')->class('form-label') }}
|
||||
{{ html()->text('phone')->class('form-control')->placeholder('Phone') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Profit Margin')->class('form-label') }}
|
||||
{{ html()->text('margin')->class('form-control')->placeholder('Profit Margin') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Zip code')->class('form-label') }}
|
||||
{{ html()->text('zip_code')->class('form-control')->placeholder('Zip Code') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Address')->class('form-label') }}
|
||||
{{ html()->text('address')->class('form-control')->placeholder('Address') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Google Map')->class('form-label') }}
|
||||
{{ html()->text('google_map')->class('form-control')->placeholder('Google Map Link') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic') }}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{{ html()->label('Logo')->class('form-label') }}
|
||||
{{ html()->file('logo_pic')->class('form-control dropify')->attributes([
|
||||
'data-default-file' => asset('storage/' . setting('logo_pic')),
|
||||
'data-height' => 200,
|
||||
]) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('setting.index') }}" />
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
78
Modules/Admin/resources/views/settings/index.blade.php
Normal file
78
Modules/Admin/resources/views/settings/index.blade.php
Normal file
@@ -0,0 +1,78 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('setting.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table id="buttons-datatables" class="display table-sm table-bordered table">
|
||||
<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">Title</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Description</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Email</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Address</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Phone</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Status</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">Action</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach ($settinglists as $index => $item)
|
||||
<tr>
|
||||
<td class="tb-col">{{ $index + 1 }}</td>
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">{{ $item->description }}</td>
|
||||
<td class="tb-col">{{ $item->email }}</td>
|
||||
<td class="tb-col">{{ $item->address }}</td>
|
||||
<td class="tb-col">{{ $item->phone }}</td>
|
||||
<td class="tb-col">
|
||||
{!! $item->status_name !!}
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td class="tb-col">
|
||||
<div class="hstack flex-wrap gap-3">
|
||||
@can('setting.show')
|
||||
<a href="{{ route('setting.show', $item->id) }}" class="link-info fs-15">
|
||||
<i class="ri-eye-fill"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@can('setting.edit')
|
||||
<a href="{{ route('setting.edit', $item->id) }}" class="link-success fs-15 edit-item-btn"><i
|
||||
class="ri-edit-2-fill"></i></a>
|
||||
@endcan
|
||||
@can('setting.destroy')
|
||||
<a href="javascript:void(0);" data-link="{{ route('setting.destroy', $item->id) }}"
|
||||
data-id="{{ $item->id }}" class="link-danger fs-15 remove-item-btn"><i
|
||||
class="ri-delete-bin-fill"></i></a>
|
||||
@endcan
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@push('js')
|
||||
@endpush
|
@@ -0,0 +1,97 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body row gy-3">
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Your Company Name')->required() }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Email')->class('form-label') }}
|
||||
{{ html()->email('email')->class('form-control')->placeholder('Email Address')->required() }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Mobile')->class('form-label') }}
|
||||
{{ html()->text('mobile')->class('form-control')->placeholder('Mobile Number') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Phone')->class('form-label') }}
|
||||
{{ html()->text('phone')->class('form-control')->placeholder('Phone') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-3">
|
||||
{{ html()->label('Profit Margin')->class('form-label') }}
|
||||
{{ html()->text('margin')->class('form-control')->placeholder('Profit Margin') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Zip code')->class('form-label') }}
|
||||
{{ html()->text('zip_code')->class('form-control')->placeholder('Zip Code') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Address')->class('form-label') }}
|
||||
{{ html()->text('address')->class('form-control')->placeholder('Address') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
{{ html()->label('Google Map')->class('form-label') }}
|
||||
{{ html()->text('google_map')->class('form-control')->placeholder('Google Map Link') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control ckeditor-classic') }}
|
||||
</div>
|
||||
|
||||
<x-form-buttons :editable="$editable" label="Add" href="{{ route('setting.index') }}" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">Publish</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ html()->select('status', $status)->class('form-control select2')->required() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">Logo</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ html()->file('logo', null)->class('form-control') }}
|
||||
|
||||
{{-- {{ html()->input('image', 'logo', null)->class('form-control dropify1') }} --}}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 mt-2">
|
||||
@if (setting()->logo_pic)
|
||||
<img class="rounded-circle avatar-xl material-shadow" alt="200x200" src="{{ setting()->logo_pic }}">
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
|
||||
@endpush
|
59
Modules/Admin/resources/views/settings/show.blade.php
Normal file
59
Modules/Admin/resources/views/settings/show.blade.php
Normal file
@@ -0,0 +1,59 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('setting.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<p><b>Title:</b> <span>{{ $setting->title }}</span></p>
|
||||
<p><b>Description:</b> <span>{{ $setting->description }}</span></p>
|
||||
<p><b>Status:</b> <span class="{{ $setting->status == 11 ? 'text-success' : 'text-danger' }}">{{ $setting->status == 11 ? 'Active' : 'Inactive' }}</span></p>
|
||||
</div>
|
||||
<div style="margin-bottom: 20px;">
|
||||
<p><b>Email:</b> <span>{{ $setting->email }}</span></p>
|
||||
<p><b>Address:</b> <span>{{ $setting->address }}</span></p>
|
||||
<p><b>Phone:</b> <span>{{ $setting->phone }}</span></p>
|
||||
<p><b>Secondary Phone:</b> <span>{{ $setting->secondary_phone }}</span></p>
|
||||
<p><b>Google Map:</b> <span>{{ $setting->google_map }}</span></p>
|
||||
</div>
|
||||
<div style="margin-bottom: 20px;">
|
||||
<p><b>Thumb:</b></p>
|
||||
<div style="width: 25%; height: 200px;">
|
||||
<img src="{{ asset($setting->thumb) }}" style="max-width: 100%; max-height: 100%; object-fit: cover;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-bottom: 20px;">
|
||||
<p><b>Logo:</b></p>
|
||||
<div style="width: 25%; height: 200px;">
|
||||
<img src="{{ asset($setting->logo) }}" style="max-width: 100%; max-height: 100%; object-fit: cover;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On:</b> <span>{{ $setting->created_at }}</span></p>
|
||||
<p><b>Created By:</b> <span>{{ $setting->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On:</b> <span>{{ $setting->updated_at }}</span></p>
|
||||
<p><b>Updated By:</b> <span>{{ $setting->updatedBy }}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
Reference in New Issue
Block a user