first commit
This commit is contained in:
BIN
resources/views/.DS_Store
vendored
Normal file
BIN
resources/views/.DS_Store
vendored
Normal file
Binary file not shown.
27
resources/views/auth/confirm-password.blade.php
Normal file
27
resources/views/auth/confirm-password.blade.php
Normal file
@ -0,0 +1,27 @@
|
||||
<x-guest-layout>
|
||||
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __('This is a secure area of the application. Please confirm your password before continuing.') }}
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('password.confirm') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Password -->
|
||||
<div>
|
||||
<x-input-label for="password" :value="__('Password')" />
|
||||
|
||||
<x-text-input id="password" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password"
|
||||
required autocomplete="current-password" />
|
||||
|
||||
<x-input-error :messages="$errors->get('password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end mt-4">
|
||||
<x-primary-button>
|
||||
{{ __('Confirm') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-guest-layout>
|
25
resources/views/auth/forgot-password.blade.php
Normal file
25
resources/views/auth/forgot-password.blade.php
Normal file
@ -0,0 +1,25 @@
|
||||
<x-guest-layout>
|
||||
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __('Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.') }}
|
||||
</div>
|
||||
|
||||
<!-- Session Status -->
|
||||
<x-auth-session-status class="mb-4" :status="session('status')" />
|
||||
|
||||
<form method="POST" action="{{ route('password.email') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Email Address -->
|
||||
<div>
|
||||
<x-input-label for="email" :value="__('Email')" />
|
||||
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
|
||||
<x-input-error :messages="$errors->get('email')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-primary-button>
|
||||
{{ __('Email Password Reset Link') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-guest-layout>
|
47
resources/views/auth/login.blade.php
Normal file
47
resources/views/auth/login.blade.php
Normal file
@ -0,0 +1,47 @@
|
||||
<x-guest-layout>
|
||||
<!-- Session Status -->
|
||||
<x-auth-session-status class="mb-4" :status="session('status')" />
|
||||
|
||||
<form method="POST" action="{{ route('login') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Email Address -->
|
||||
<div>
|
||||
<x-input-label for="email" :value="__('Email')" />
|
||||
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus autocomplete="username" />
|
||||
<x-input-error :messages="$errors->get('email')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mt-4">
|
||||
<x-input-label for="password" :value="__('Password')" />
|
||||
|
||||
<x-text-input id="password" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password"
|
||||
required autocomplete="current-password" />
|
||||
|
||||
<x-input-error :messages="$errors->get('password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Remember Me -->
|
||||
<div class="block mt-4">
|
||||
<label for="remember_me" class="inline-flex items-center">
|
||||
<input id="remember_me" type="checkbox" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="remember">
|
||||
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Remember me') }}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
@if (Route::has('password.request'))
|
||||
<a class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800" href="{{ route('password.request') }}">
|
||||
{{ __('Forgot your password?') }}
|
||||
</a>
|
||||
@endif
|
||||
|
||||
<x-primary-button class="ml-3">
|
||||
{{ __('Log in') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-guest-layout>
|
52
resources/views/auth/register.blade.php
Normal file
52
resources/views/auth/register.blade.php
Normal file
@ -0,0 +1,52 @@
|
||||
<x-guest-layout>
|
||||
<form method="POST" action="{{ route('register') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Name -->
|
||||
<div>
|
||||
<x-input-label for="name" :value="__('Name')" />
|
||||
<x-text-input id="name" class="block mt-1 w-full" type="text" name="name" :value="old('name')" required autofocus autocomplete="name" />
|
||||
<x-input-error :messages="$errors->get('name')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Email Address -->
|
||||
<div class="mt-4">
|
||||
<x-input-label for="email" :value="__('Email')" />
|
||||
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autocomplete="username" />
|
||||
<x-input-error :messages="$errors->get('email')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mt-4">
|
||||
<x-input-label for="password" :value="__('Password')" />
|
||||
|
||||
<x-text-input id="password" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password"
|
||||
required autocomplete="new-password" />
|
||||
|
||||
<x-input-error :messages="$errors->get('password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Confirm Password -->
|
||||
<div class="mt-4">
|
||||
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
|
||||
|
||||
<x-text-input id="password_confirmation" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password_confirmation" required autocomplete="new-password" />
|
||||
|
||||
<x-input-error :messages="$errors->get('password_confirmation')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<a class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800" href="{{ route('login') }}">
|
||||
{{ __('Already registered?') }}
|
||||
</a>
|
||||
|
||||
<x-primary-button class="ml-4">
|
||||
{{ __('Register') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-guest-layout>
|
39
resources/views/auth/reset-password.blade.php
Normal file
39
resources/views/auth/reset-password.blade.php
Normal file
@ -0,0 +1,39 @@
|
||||
<x-guest-layout>
|
||||
<form method="POST" action="{{ route('password.store') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Password Reset Token -->
|
||||
<input type="hidden" name="token" value="{{ $request->route('token') }}">
|
||||
|
||||
<!-- Email Address -->
|
||||
<div>
|
||||
<x-input-label for="email" :value="__('Email')" />
|
||||
<x-text-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email', $request->email)" required autofocus autocomplete="username" />
|
||||
<x-input-error :messages="$errors->get('email')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mt-4">
|
||||
<x-input-label for="password" :value="__('Password')" />
|
||||
<x-text-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="new-password" />
|
||||
<x-input-error :messages="$errors->get('password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<!-- Confirm Password -->
|
||||
<div class="mt-4">
|
||||
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
|
||||
|
||||
<x-text-input id="password_confirmation" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password_confirmation" required autocomplete="new-password" />
|
||||
|
||||
<x-input-error :messages="$errors->get('password_confirmation')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-primary-button>
|
||||
{{ __('Reset Password') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-guest-layout>
|
31
resources/views/auth/verify-email.blade.php
Normal file
31
resources/views/auth/verify-email.blade.php
Normal file
@ -0,0 +1,31 @@
|
||||
<x-guest-layout>
|
||||
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __('Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.') }}
|
||||
</div>
|
||||
|
||||
@if (session('status') == 'verification-link-sent')
|
||||
<div class="mb-4 font-medium text-sm text-green-600 dark:text-green-400">
|
||||
{{ __('A new verification link has been sent to the email address you provided during registration.') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="mt-4 flex items-center justify-between">
|
||||
<form method="POST" action="{{ route('verification.send') }}">
|
||||
@csrf
|
||||
|
||||
<div>
|
||||
<x-primary-button>
|
||||
{{ __('Resend Verification Email') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
|
||||
<button type="submit" class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800">
|
||||
{{ __('Log Out') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</x-guest-layout>
|
28
resources/views/backend/dashboard.blade.php
Normal file
28
resources/views/backend/dashboard.blade.php
Normal file
@ -0,0 +1,28 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
||||
<h4 class="mb-sm-0">Welcome to Dashboard</h4>
|
||||
|
||||
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
|
||||
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
<div class="row project-wrapper">
|
||||
<div class="col-xxl-8">
|
||||
|
||||
</div><!-- end col -->
|
||||
</div><!-- end row -->
|
||||
@endsection
|
||||
@push('js')
|
||||
@endpush
|
209
resources/views/backend/enquiries-list.blade.php
Normal file
209
resources/views/backend/enquiries-list.blade.php
Normal file
@ -0,0 +1,209 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label('Enquiries List') }}</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="dataTable table" id="tbl_enquiries">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('S.N') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Name') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Email') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Phone') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Preferred Class') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Message') }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
<tr data-id="{{ $item->enquiry_id }}" data-display_order="{{ $item->display_order }}" class="draggable-row">
|
||||
<td class="tb-col">{{ $i++ }}</td>
|
||||
<td class="tb-col">{{ $item->name }}</td>
|
||||
<td class="tb-col">{{ $item->email }}</td>
|
||||
<td class="tb-col">{{ $item->phone }}</td>
|
||||
@if ($item->enquiry_type == 'class')
|
||||
<td class="tb-col">{{ $item->class->title }}
|
||||
({{ $item->class->classtime ? $item->class->classtime->format('H:i A') : '00:00' }})
|
||||
</td>
|
||||
@else
|
||||
<td class="tb-col">
|
||||
-
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@if ($item->enquiry_type == 'contact')
|
||||
<td class="tb-col">{{ $item->message }}</td>
|
||||
@else
|
||||
<td class="tb-col">
|
||||
-
|
||||
</td>
|
||||
@endif
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li>
|
||||
<a href="{{ route('enquiry.destroy', ['id' => $item->enquiry_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>
|
||||
{{-- <li>
|
||||
<a href="{{ route('enquiry.markread', ['id' => $item->enquiry_id]) }}"
|
||||
class="dropdown-item remove-item-btn">
|
||||
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i>
|
||||
{{ label('Mark Read') }}
|
||||
</a>
|
||||
</li> --}}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('css')
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('accridiations.updatealias') }}";
|
||||
var data = {
|
||||
articleId: articleId,
|
||||
newAlias: newAlias
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: data,
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Switch to editing state
|
||||
aliasSpan.hide();
|
||||
aliasInput.show().focus();
|
||||
$(this).addClass('editing').text('Save Alias');
|
||||
}
|
||||
});
|
||||
var mytable = $(".dataTable").DataTable({
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endpush
|
71
resources/views/backend/header.blade.php
Normal file
71
resources/views/backend/header.blade.php
Normal file
@ -0,0 +1,71 @@
|
||||
<header id="page-topbar">
|
||||
<div class="layout-width">
|
||||
<div class="navbar-header">
|
||||
<div class="d-flex">
|
||||
<!-- LOGO -->
|
||||
<div class="navbar-brand-box horizontal-logo">
|
||||
<a href="{{ route('admin.dashboard') }}" class="logo logo-dark">
|
||||
<span class="logo-sm">
|
||||
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
|
||||
</span>
|
||||
<span class="logo-lg">
|
||||
<img src="{{ asset('assets/images/logo-dark.png') }}" alt="" height="17">
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a href="{{ route('admin.dashboard') }}" class="logo logo-light">
|
||||
<span class="logo-sm">
|
||||
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
|
||||
</span>
|
||||
<span class="logo-lg">
|
||||
<img src="{{ asset('assets/images/logo-light.png') }}" alt="" height="17">
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<button type="button" class="btn btn-sm fs-16 header-item vertical-menu-btn topnav-hamburger px-3"
|
||||
id="topnav-hamburger-icon">
|
||||
<span class="hamburger-icon">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
|
||||
<?php /*
|
||||
@include("backend.parts.search")
|
||||
|
||||
*/
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="header-item d-none d-sm-flex ms-1">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
|
||||
data-toggle="fullscreen">
|
||||
<i class='bx bx-fullscreen fs-22'></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="header-item d-none d-sm-flex ms-1">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle light-dark-mode">
|
||||
<i class='bx bx-moon fs-22'></i>
|
||||
</button>
|
||||
</div>
|
||||
<?php /*
|
||||
@include("backend.parts.ghost")
|
||||
@include("backend.parts.lang")
|
||||
@include("backend.parts.apps")
|
||||
@include("backend.parts.cart")
|
||||
@include("backend.parts.profile")
|
||||
*/
|
||||
?>
|
||||
@include('backend.parts.notifications')
|
||||
@include('backend.parts.profile')
|
||||
<div id="removeNotificationModal">
|
||||
<!-- Modal content -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
59
resources/views/backend/list-companyarticles.blade.php
Normal file
59
resources/views/backend/list-companyarticles.blade.php
Normal file
@ -0,0 +1,59 @@
|
||||
articles@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label("articles List") }}</h2>
|
||||
<a href="{{ route('articles.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("parent_article") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
<tr>
|
||||
<td class="tb-col">{{ $i++ }}</td>
|
||||
<td class="tb-col">{{ $item->parent_article }}</td>
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">{{ $item->alias }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a href="{{route('articles.show',[$item->article_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('articles.edit',[$item->article_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a class="dropdown-item remove-item-btn" data-route="{{route('articles.destroy',[$item->article_id])}}">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{label("Delete")}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<textarea rows="20" class="form-control">{{App\Http\Controllers\GeneralFormController::listContent("tbl_articles","")}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
62
resources/views/backend/parts/apps.blade.php
Normal file
62
resources/views/backend/parts/apps.blade.php
Normal file
@ -0,0 +1,62 @@
|
||||
<div class="dropdown topbar-head-dropdown ms-1 header-item">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class='bx bx-category-alt fs-22'></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-lg p-0 dropdown-menu-end">
|
||||
<div class="p-3 border-top-0 border-start-0 border-end-0 border-dashed border">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<h6 class="m-0 fw-semibold fs-15"> Web Apps </h6>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<a href="#!" class="btn btn-sm btn-soft-info"> View All Apps
|
||||
<i class="ri-arrow-right-s-line align-middle"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-2">
|
||||
<div class="row g-0">
|
||||
<div class="col">
|
||||
<a class="dropdown-icon-item" href="#!">
|
||||
<img src="assets/images/brands/github.png" alt="Github">
|
||||
<span>GitHub</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="dropdown-icon-item" href="#!">
|
||||
<img src="assets/images/brands/bitbucket.png" alt="bitbucket">
|
||||
<span>Bitbucket</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="dropdown-icon-item" href="#!">
|
||||
<img src="assets/images/brands/dribbble.png" alt="dribbble">
|
||||
<span>Dribbble</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-0">
|
||||
<div class="col">
|
||||
<a class="dropdown-icon-item" href="#!">
|
||||
<img src="assets/images/brands/dropbox.png" alt="dropbox">
|
||||
<span>Dropbox</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="dropdown-icon-item" href="#!">
|
||||
<img src="assets/images/brands/mail_chimp.png" alt="mail_chimp">
|
||||
<span>Mail Chimp</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="dropdown-icon-item" href="#!">
|
||||
<img src="assets/images/brands/slack.png" alt="slack">
|
||||
<span>Slack</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
146
resources/views/backend/parts/cart.blade.php
Normal file
146
resources/views/backend/parts/cart.blade.php
Normal file
@ -0,0 +1,146 @@
|
||||
<div class="dropdown topbar-head-dropdown ms-1 header-item">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-cart-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
||||
<i class='bx bx-shopping-bag fs-22'></i>
|
||||
<span class="position-absolute topbar-badge cartitem-badge fs-10 translate-middle badge rounded-pill bg-info">5</span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-xl dropdown-menu-end p-0 dropdown-menu-cart" aria-labelledby="page-header-cart-dropdown">
|
||||
<div class="p-3 border-top-0 border-start-0 border-end-0 border-dashed border">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<h6 class="m-0 fs-16 fw-semibold"> My Cart</h6>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<span class="badge badge-soft-warning fs-13"><span class="cartitem-badge">7</span>
|
||||
items</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div data-simplebar style="max-height: 300px;">
|
||||
<div class="p-2">
|
||||
<div class="text-center empty-cart" id="empty-cart">
|
||||
<div class="avatar-md mx-auto my-3">
|
||||
<div class="avatar-title bg-soft-info text-info fs-36 rounded-circle">
|
||||
<i class='bx bx-cart'></i>
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="mb-3">Your Cart is Empty!</h5>
|
||||
<a href="apps-ecommerce-products.html" class="btn btn-success w-md mb-3">Shop Now</a>
|
||||
</div>
|
||||
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="assets/images/products/img-1.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="mt-0 mb-1 fs-14">
|
||||
<a href="apps-ecommerce-product-details.html" class="text-reset">Branded
|
||||
T-Shirts</a>
|
||||
</h6>
|
||||
<p class="mb-0 fs-12 text-muted">
|
||||
Quantity: <span>10 x $32</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<h5 class="m-0 fw-normal">$<span class="cart-item-price">320</span></h5>
|
||||
</div>
|
||||
<div class="ps-2">
|
||||
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="assets/images/products/img-2.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="mt-0 mb-1 fs-14">
|
||||
<a href="apps-ecommerce-product-details.html" class="text-reset">Bentwood Chair</a>
|
||||
</h6>
|
||||
<p class="mb-0 fs-12 text-muted">
|
||||
Quantity: <span>5 x $18</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<h5 class="m-0 fw-normal">$<span class="cart-item-price">89</span></h5>
|
||||
</div>
|
||||
<div class="ps-2">
|
||||
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="assets/images/products/img-3.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="mt-0 mb-1 fs-14">
|
||||
<a href="apps-ecommerce-product-details.html" class="text-reset">
|
||||
Borosil Paper Cup</a>
|
||||
</h6>
|
||||
<p class="mb-0 fs-12 text-muted">
|
||||
Quantity: <span>3 x $250</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<h5 class="m-0 fw-normal">$<span class="cart-item-price">750</span></h5>
|
||||
</div>
|
||||
<div class="ps-2">
|
||||
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="assets/images/products/img-6.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="mt-0 mb-1 fs-14">
|
||||
<a href="apps-ecommerce-product-details.html" class="text-reset">Gray
|
||||
Styled T-Shirt</a>
|
||||
</h6>
|
||||
<p class="mb-0 fs-12 text-muted">
|
||||
Quantity: <span>1 x $1250</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<h5 class="m-0 fw-normal">$ <span class="cart-item-price">1250</span></h5>
|
||||
</div>
|
||||
<div class="ps-2">
|
||||
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="assets/images/products/img-5.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="mt-0 mb-1 fs-14">
|
||||
<a href="apps-ecommerce-product-details.html" class="text-reset">Stillbird Helmet</a>
|
||||
</h6>
|
||||
<p class="mb-0 fs-12 text-muted">
|
||||
Quantity: <span>2 x $495</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<h5 class="m-0 fw-normal">$<span class="cart-item-price">990</span></h5>
|
||||
</div>
|
||||
<div class="ps-2">
|
||||
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-3 border-bottom-0 border-start-0 border-end-0 border-dashed border" id="checkout-elem">
|
||||
<div class="d-flex justify-content-between align-items-center pb-3">
|
||||
<h5 class="m-0 text-muted">Total:</h5>
|
||||
<div class="px-2">
|
||||
<h5 class="m-0" id="cart-item-total">$1258.58</h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="apps-ecommerce-checkout.html" class="btn btn-success text-center w-100">
|
||||
Checkout
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
754
resources/views/backend/parts/customizer.blade.php
Normal file
754
resources/views/backend/parts/customizer.blade.php
Normal file
@ -0,0 +1,754 @@
|
||||
<button onclick="topFunction()" class="btn btn-danger btn-icon" id="back-to-top">
|
||||
<i class="ri-arrow-up-line"></i>
|
||||
</button>
|
||||
<!--end back-to-top-->
|
||||
|
||||
<!--preloader-->
|
||||
<div id="preloader">
|
||||
<div id="status">
|
||||
<div class="spinner-border text-primary avatar-sm" role="status">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="customizer-setting d-none d-md-block">
|
||||
<div class="btn-info btn-rounded shadow-lg btn btn-icon btn-lg p-2" data-bs-toggle="offcanvas" data-bs-target="#theme-settings-offcanvas" aria-controls="theme-settings-offcanvas">
|
||||
<i class='mdi mdi-spin mdi-cog-outline fs-22'></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Theme Settings -->
|
||||
<div class="offcanvas offcanvas-end border-0" tabindex="-1" id="theme-settings-offcanvas">
|
||||
<div class="d-flex align-items-center bg-primary bg-gradient p-3 offcanvas-header">
|
||||
<h5 class="m-0 me-2 text-white">Layout Customizer</h5>
|
||||
|
||||
<button type="button" class="btn-close btn-close-white ms-auto" id="customizerclose-btn" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body p-0">
|
||||
<div data-simplebar class="h-100">
|
||||
<div class="p-4">
|
||||
<h6 class="mb-0 fw-semibold text-uppercase">Layout</h6>
|
||||
<p class="text-muted">Choose your layout</p>
|
||||
|
||||
<div class="row gy-3">
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input id="customizer-layout01" name="data-layout" type="radio" value="vertical" class="form-check-input">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout01">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Vertical</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input id="customizer-layout02" name="data-layout" type="radio" value="horizontal" class="form-check-input">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout02">
|
||||
<span class="d-flex h-100 flex-column gap-1">
|
||||
<span class="bg-light d-flex p-1 gap-1 align-items-center">
|
||||
<span class="d-block p-1 bg-soft-primary rounded me-1"></span>
|
||||
<span class="d-block p-1 pb-0 px-2 bg-soft-primary ms-auto"></span>
|
||||
<span class="d-block p-1 pb-0 px-2 bg-soft-primary"></span>
|
||||
</span>
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Horizontal</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input id="customizer-layout03" name="data-layout" type="radio" value="twocolumn" class="form-check-input">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout03">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1">
|
||||
<span class="d-block p-1 bg-soft-primary mb-2"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Two Column</h5>
|
||||
</div>
|
||||
<!-- end col -->
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input id="customizer-layout04" name="data-layout" type="radio" value="semibox" class="form-check-input">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout04">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0 p-1">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column pt-1 pe-2">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Semi Box</h5>
|
||||
</div>
|
||||
<!-- end col -->
|
||||
</div>
|
||||
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Color Scheme</h6>
|
||||
<p class="text-muted">Choose Light or Dark Scheme.</p>
|
||||
|
||||
<div class="colorscheme-cardradio">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-layout-mode" id="layout-mode-light" value="light">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="layout-mode-light">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Light</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio dark">
|
||||
<input class="form-check-input" type="radio" name="data-layout-mode" id="layout-mode-dark" value="dark">
|
||||
<label class="form-check-label p-0 avatar-md w-100 bg-dark" for="layout-mode-dark">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-soft-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-light rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-soft-light d-block p-1"></span>
|
||||
<span class="bg-soft-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Dark</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="sidebar-visibility">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Visibility</h6>
|
||||
<p class="text-muted">Choose show or Hidden sidebar.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-visibility" id="sidebar-visibility-show" value="show">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-visibility-show">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0 p-1">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column pt-1 pe-2">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Show</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-visibility" id="sidebar-visibility-hidden" value="hidden">
|
||||
<label class="form-check-label p-0 avatar-md w-100 px-2" for="sidebar-visibility-hidden">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column pt-1 px-2">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Hidden</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="layout-width">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Layout Width</h6>
|
||||
<p class="text-muted">Choose Fluid or Boxed layout.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-layout-width" id="layout-width-fluid" value="fluid">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="layout-width-fluid">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Fluid</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-layout-width" id="layout-width-boxed" value="boxed">
|
||||
<label class="form-check-label p-0 avatar-md w-100 px-2" for="layout-width-boxed">
|
||||
<span class="d-flex gap-1 h-100 border-start border-end">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Boxed</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="layout-position">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Layout Position</h6>
|
||||
<p class="text-muted">Choose Fixed or Scrollable Layout Position.</p>
|
||||
|
||||
<div class="btn-group radio" role="group">
|
||||
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-fixed" value="fixed">
|
||||
<label class="btn btn-light w-sm" for="layout-position-fixed">Fixed</label>
|
||||
|
||||
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-scrollable" value="scrollable">
|
||||
<label class="btn btn-light w-sm ms-0" for="layout-position-scrollable">Scrollable</label>
|
||||
</div>
|
||||
</div>
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Topbar Color</h6>
|
||||
<p class="text-muted">Choose Light or Dark Topbar Color.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-topbar" id="topbar-color-light" value="light">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-light">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Light</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-topbar" id="topbar-color-dark" value="dark">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-dark">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-primary d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Dark</h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="sidebar-size">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Size</h6>
|
||||
<p class="text-muted">Choose a size of Sidebar.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-default" value="lg">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-default">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Default</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-compact" value="md">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-compact">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Compact</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-small" value="sm">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-small">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1">
|
||||
<span class="d-block p-1 bg-soft-primary mb-2"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Small (Icon View)</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-small-hover" value="sm-hover">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-small-hover">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1">
|
||||
<span class="d-block p-1 bg-soft-primary mb-2"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Small Hover View</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="sidebar-view">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar View</h6>
|
||||
<p class="text-muted">Choose Default or Detached Sidebar view.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-layout-style" id="sidebar-view-default" value="default">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-view-default">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Default</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-layout-style" id="sidebar-view-detached" value="detached">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-view-detached">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-flex p-1 gap-1 align-items-center px-2">
|
||||
<span class="d-block p-1 bg-soft-primary rounded me-1"></span>
|
||||
<span class="d-block p-1 pb-0 px-2 bg-soft-primary ms-auto"></span>
|
||||
<span class="d-block p-1 pb-0 px-2 bg-soft-primary"></span>
|
||||
</span>
|
||||
<span class="d-flex gap-1 h-100 p-1 px-2">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="bg-light d-block p-1 mt-auto px-2"></span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Detached</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sidebar-color">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Color</h6>
|
||||
<p class="text-muted">Choose a color of Sidebar.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient.show">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-light" value="light">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-color-light">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-white border-end d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Light</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient.show">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-dark" value="dark">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-color-dark">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-primary d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-light rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Dark</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<button class="btn btn-link avatar-md w-100 p-0 overflow-hidden border collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient" aria-expanded="false" aria-controls="collapseBgGradient">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-vertical-gradient d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-light rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-light"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
<h5 class="fs-13 text-center mt-2">Gradient</h5>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end row -->
|
||||
|
||||
<div class="collapse" id="collapseBgGradient">
|
||||
<div class="d-flex gap-2 flex-wrap img-switch p-2 px-3 bg-light rounded">
|
||||
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient" value="gradient">
|
||||
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient">
|
||||
<span class="avatar-title rounded-circle bg-vertical-gradient"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-2" value="gradient-2">
|
||||
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-2">
|
||||
<span class="avatar-title rounded-circle bg-vertical-gradient-2"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-3" value="gradient-3">
|
||||
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-3">
|
||||
<span class="avatar-title rounded-circle bg-vertical-gradient-3"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-4" value="gradient-4">
|
||||
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-4">
|
||||
<span class="avatar-title rounded-circle bg-vertical-gradient-4"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="sidebar-img">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Images</h6>
|
||||
<p class="text-muted">Choose a image of Sidebar.</p>
|
||||
|
||||
<div class="d-flex gap-2 flex-wrap img-switch">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-none" value="none">
|
||||
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-none">
|
||||
<span class="avatar-md w-auto bg-light d-flex align-items-center justify-content-center">
|
||||
<i class="ri-close-fill fs-20"></i>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-01" value="img-1">
|
||||
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-01">
|
||||
<img src="{{asset('assets/images/sidebar/img-1.jpg')}}" alt="" class="avatar-md w-auto object-cover">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-02" value="img-2">
|
||||
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-02">
|
||||
<img src="{{asset('assets/images/sidebar/img-2.jpg')}}" alt="" class="avatar-md w-auto object-cover">
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-03" value="img-3">
|
||||
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-03">
|
||||
<img src="{{asset('assets/images/sidebar/img-3.jpg')}}" alt="" class="avatar-md w-auto object-cover">
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-04" value="img-4">
|
||||
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-04">
|
||||
<img src="{{asset('assets/images/sidebar/img-4.jpg')}}" alt="" class="avatar-md w-auto object-cover">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="preloader-menu">
|
||||
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Preloader</h6>
|
||||
<p class="text-muted">Choose a preloader.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-preloader" id="preloader-view-custom" value="enable">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="preloader-view-custom">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
<!-- <div id="preloader"> -->
|
||||
<div id="status" class="d-flex align-items-center justify-content-center">
|
||||
<div class="spinner-border text-primary avatar-xxs m-auto" role="status">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Enable</h5>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-check sidebar-setting card-radio">
|
||||
<input class="form-check-input" type="radio" name="data-preloader" id="preloader-view-none" value="disable">
|
||||
<label class="form-check-label p-0 avatar-md w-100" for="preloader-view-none">
|
||||
<span class="d-flex gap-1 h-100">
|
||||
<span class="flex-shrink-0">
|
||||
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
|
||||
<span class="d-block p-1 px-2 bg-soft-primary rounded mb-2"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
<span class="d-block p-1 px-2 pb-0 bg-soft-primary"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="flex-grow-1">
|
||||
<span class="d-flex h-100 flex-column">
|
||||
<span class="bg-light d-block p-1"></span>
|
||||
<span class="bg-light d-block p-1 mt-auto"></span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<h5 class="fs-13 text-center mt-2">Disable</h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- end preloader-menu -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="offcanvas-footer border-top p-3 text-center">
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<button type="button" class="btn btn-light w-100" id="reset-layout">Reset</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
15
resources/views/backend/parts/ghost.blade.php
Normal file
15
resources/views/backend/parts/ghost.blade.php
Normal file
@ -0,0 +1,15 @@
|
||||
<div class="dropdown d-md-none topbar-head-dropdown header-item">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-search-dropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="bx bx-search fs-22"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0" aria-labelledby="page-header-search-dropdown">
|
||||
<form class="p-3">
|
||||
<div class="form-group m-0">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Search ..." aria-label="Recipient's username">
|
||||
<button class="btn btn-primary" type="submit"><i class="mdi mdi-magnify"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
54
resources/views/backend/parts/lang.blade.php
Normal file
54
resources/views/backend/parts/lang.blade.php
Normal file
@ -0,0 +1,54 @@
|
||||
<div class="dropdown ms-1 topbar-head-dropdown header-item">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<img id="header-lang-img" src="{{ asset('assets/images/flags/us.svg') }}" alt="Header Language" height="20" class="rounded">
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language py-2" data-lang="en" title="English">
|
||||
<img src="{{ asset('assets/images/flags/us.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">English</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="sp" title="Spanish">
|
||||
<img src="{{ asset('assets/images/flags/spain.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">Española</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="gr" title="German">
|
||||
<img src="{{ asset('assets/images/flags/germany.svg') }}" alt="user-image" class="me-2 rounded" height="18"> <span class="align-middle">Deutsche</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="it" title="Italian">
|
||||
<img src="{{ asset('assets/images/flags/italy.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">Italiana</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ru" title="Russian">
|
||||
<img src="{{ asset('assets/images/flags/russia.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">русский</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ch" title="Chinese">
|
||||
<img src="{{ asset('assets/images/flags/china.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">中国人</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="fr" title="French">
|
||||
<img src="{{ asset('assets/images/flags/french.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">français</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ar" title="Arabic">
|
||||
<img src="{{ asset('assets/images/flags/ae.svg') }}" alt="user-image" class="me-2 rounded" height="18">
|
||||
<span class="align-middle">Arabic</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
190
resources/views/backend/parts/notifications.blade.php
Normal file
190
resources/views/backend/parts/notifications.blade.php
Normal file
@ -0,0 +1,190 @@
|
||||
@use('App\Models\Enquiries')
|
||||
@php
|
||||
$enquiryList = Enquiries::where('status', 1)->where('is_read', 0)->latest()->with('class')->get();
|
||||
$enquiryCount = $enquiryList->count();
|
||||
@endphp
|
||||
<div class="dropdown topbar-head-dropdown header-item ms-1" id="notificationDropdown">
|
||||
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
|
||||
id="page-header-notifications-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<i class='bx bx-bell fs-22'></i>
|
||||
<span
|
||||
class="position-absolute topbar-badge fs-10 translate-middle badge rounded-pill bg-danger">{{ $enquiryCount ?? 0 }}<span
|
||||
class="visually-hidden">unread messages</span></span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0"
|
||||
aria-labelledby="page-header-notifications-dropdown">
|
||||
|
||||
<div class="dropdown-head bg-primary bg-pattern rounded-top">
|
||||
<div class="p-3">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<h6 class="fs-16 fw-semibold m-0 text-white"> Notifications </h6>
|
||||
</div>
|
||||
<div class="dropdown-tabs col-auto">
|
||||
<span class="badge badge-soft-light fs-13"> {{ $enquiryCount ?? 0 }} New</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-2 pt-2">
|
||||
<ul class="nav nav-tabs dropdown-tabs nav-tabs-custom" data-dropdown-tabs="true" id="notificationItemsTab"
|
||||
role="tablist">
|
||||
<li class="nav-item waves-effect waves-light">
|
||||
<a class="nav-link active" data-bs-toggle="tab" href="#all-noti-tab" role="tab" aria-selected="true">
|
||||
All ({{ $enquiryCount ?? 0 }})
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item waves-effect waves-light">
|
||||
<a class="nav-link" data-bs-toggle="tab" href="#messages-tab" role="tab" aria-selected="false">
|
||||
Contact
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item waves-effect waves-light">
|
||||
<a class="nav-link" data-bs-toggle="tab" href="#alerts-tab" role="tab" aria-selected="false">
|
||||
Enquiry
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-content position-relative" id="notificationItemsTabContent">
|
||||
<div class="tab-pane fade show active py-2 ps-2" id="all-noti-tab" role="tabpanel">
|
||||
<div data-simplebar style="max-height: 300px;" class="pe-2">
|
||||
|
||||
@foreach ($enquiryList as $item)
|
||||
<div class="text-reset notification-item d-block dropdown-item position-relative">
|
||||
<div class="d-flex">
|
||||
<div class="avatar-xs me-3 flex-shrink-0">
|
||||
<span class="avatar-title bg-danger-subtle text-danger rounded-circle fs-16">
|
||||
<i class='bx bx-message-square-dots'></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<a href="#!" class="stretched-link">
|
||||
<h6 class="fs-13 fw-semibold mb-1 mt-0">{{ $item->name }}</h6>
|
||||
</a>
|
||||
<div class="fs-13 text-muted">
|
||||
<p class="mb-1">
|
||||
@if ($item->enquiry_type == 'contact')
|
||||
?
|
||||
{{ Str::words($item->message, 10, '...') }}
|
||||
@else
|
||||
Class Inquiry:
|
||||
{{ $item->class->title }}({{ $item->class->classtime->format('H:i A') ?? '00:00' }})
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
<p class="fs-11 fw-medium text-uppercase text-muted mb-0">
|
||||
<span><i class="mdi mdi-clock-outline"></i> {{ $item->created_at->diffForHumans() }}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="fs-15 px-2">
|
||||
<div class="form-check notification-check">
|
||||
<input class="form-check-input" type="checkbox" value="{{ $item->enquiry_id }}"
|
||||
id="all-notification-check02">
|
||||
<label class="form-check-label" for="all-notification-check02"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="view-all my-3 text-center">
|
||||
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
|
||||
All Notifications <i class="ri-arrow-right-line align-middle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade py-2 ps-2" id="messages-tab" role="tabpanel" aria-labelledby="messages-tab">
|
||||
<div data-simplebar style="max-height: 300px;" class="pe-2">
|
||||
@foreach ($enquiryList->where('enquiry_type', 'contact') as $contactItem)
|
||||
<div class="text-reset notification-item d-block dropdown-item">
|
||||
<div class="d-flex">
|
||||
<div class="avatar-xs me-3 flex-shrink-0">
|
||||
<span class="avatar-title bg-danger-subtle text-danger rounded-circle fs-16">
|
||||
<i class='bx bx-message-square-dots'></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<a href="#!" class="stretched-link">
|
||||
<h6 class="fs-13 fw-semibold mb-1 mt-0">{{ $contactItem->name }}</h6>
|
||||
</a>
|
||||
<div class="fs-13 text-muted">
|
||||
<p class="mb-1">{{ $contactItem->message }}</p>
|
||||
</div>
|
||||
<p class="fs-11 fw-medium text-uppercase text-muted mb-0">
|
||||
<span><i class="mdi mdi-clock-outline"></i> {{ $contactItem->created_at->diffForHumans() }}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="fs-15 px-2">
|
||||
<div class="form-check notification-check">
|
||||
<input class="form-check-input" type="checkbox" value="{{ $contactItem->enquiry_id }}"
|
||||
id="messages-notification-check01">
|
||||
<label class="form-check-label" for="messages-notification-check01"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="view-all my-3 text-center">
|
||||
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
|
||||
All Messages <i class="ri-arrow-right-line align-middle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade p-1" id="alerts-tab" role="tabpanel" aria-labelledby="alerts-tab">
|
||||
<div data-simplebar style="max-height: 300px;" class="pe-2">
|
||||
@foreach ($enquiryList->where('enquiry_type', 'class') as $classItem)
|
||||
<div class="text-reset notification-item d-block dropdown-item">
|
||||
<div class="d-flex">
|
||||
<div class="avatar-xs me-3 flex-shrink-0">
|
||||
<span class="avatar-title bg-danger-subtle text-danger rounded-circle fs-16">
|
||||
<i class='bx bx-message-square-dots'></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<a href="#!" class="stretched-link">
|
||||
<h6 class="fs-13 fw-semibold mb-1 mt-0">{{ $classItem->name }}</h6>
|
||||
</a>
|
||||
<div class="fs-13 text-muted">
|
||||
<p class="mb-1">{{ 'Class Inquiry: ' . $classItem->class->title }}
|
||||
({{ $classItem->class->classtime->format('H:i A') ?? '00:00' }})
|
||||
</p>
|
||||
</div>
|
||||
<p class="fs-11 fw-medium text-uppercase text-muted mb-0">
|
||||
<span><i class="mdi mdi-clock-outline"></i> {{ $classItem->created_at->diffForHumans() }}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="fs-15 px-2">
|
||||
<div class="form-check notification-check">
|
||||
<input class="form-check-input" type="checkbox" value="{{ $classItem->enquiry_id }}"
|
||||
id="messages-notification-check01">
|
||||
<label class="form-check-label" for="messages-notification-check01"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="view-all my-3 text-center">
|
||||
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
|
||||
All Enquiry <i class="ri-arrow-right-line align-middle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="notification-actions" id="notification-actions">
|
||||
<div class="d-flex text-muted justify-content-center">
|
||||
Select <div id="select-content" class="text-body fw-semibold px-1">0</div> Result <button type="button"
|
||||
class="btn btn-link link-danger ms-3 p-0" data-bs-toggle="modal"
|
||||
data-bs-target="#removeNotificationModal">Mark Read</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
21
resources/views/backend/parts/profile.blade.php
Normal file
21
resources/views/backend/parts/profile.blade.php
Normal file
@ -0,0 +1,21 @@
|
||||
<div class="dropdown ms-sm-3 header-item topbar-user">
|
||||
<button type="button" class="btn" id="page-header-user-dropdown" data-bs-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<span class="d-flex align-items-center">
|
||||
<img class="rounded-circle header-profile-user"
|
||||
src="{{ asset(SITEVARS->icon) ?? asset('assets/images/users/avatar-1.jpg') }}" alt="Header Avatar">
|
||||
<span class="ms-xl-2 text-start">
|
||||
<span class="d-none d-xl-inline-block fw-medium user-name-text ms-1">{{ auth()->user()->name }}</span>
|
||||
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<!-- item-->
|
||||
<h6 class="dropdown-header">Welcome {{ auth()->user()->name }}</h6>
|
||||
|
||||
<a class="dropdown-item" href="{{ route('auth.logout') }}"><i
|
||||
class="mdi mdi-logout text-muted fs-16 me-1 align-middle"></i> <span class="align-middle"
|
||||
data-key="t-logout">Logout</span></a>
|
||||
</div>
|
||||
</div>
|
93
resources/views/backend/parts/search.blade.php
Normal file
93
resources/views/backend/parts/search.blade.php
Normal file
@ -0,0 +1,93 @@
|
||||
<button type="button" class="btn btn-sm px-3 fs-16 header-item vertical-menu-btn topnav-hamburger" id="topnav-hamburger-icon">
|
||||
<span class="hamburger-icon">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<!-- App Search-->
|
||||
<form class="app-search d-none d-md-block">
|
||||
<div class="position-relative">
|
||||
<input type="text" class="form-control" placeholder="Search..." autocomplete="off" id="search-options" value="">
|
||||
<span class="mdi mdi-magnify search-widget-icon"></span>
|
||||
<span class="mdi mdi-close-circle search-widget-icon search-widget-icon-close d-none" id="search-close-options"></span>
|
||||
</div>
|
||||
<div class="dropdown-menu dropdown-menu-lg" id="search-dropdown">
|
||||
<div data-simplebar style="max-height: 320px;">
|
||||
<!-- item-->
|
||||
<div class="dropdown-header">
|
||||
<h6 class="text-overflow text-muted mb-0 text-uppercase">Recent Searches</h6>
|
||||
</div>
|
||||
|
||||
<div class="dropdown-item bg-transparent text-wrap">
|
||||
<a href="index.html" class="btn btn-soft-secondary btn-sm btn-rounded">how to setup <i class="mdi mdi-magnify ms-1"></i></a>
|
||||
<a href="index.html" class="btn btn-soft-secondary btn-sm btn-rounded">buttons <i class="mdi mdi-magnify ms-1"></i></a>
|
||||
</div>
|
||||
<!-- item-->
|
||||
<div class="dropdown-header mt-2">
|
||||
<h6 class="text-overflow text-muted mb-1 text-uppercase">Pages</h6>
|
||||
</div>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
||||
<i class="ri-bubble-chart-line align-middle fs-18 text-muted me-2"></i>
|
||||
<span>Analytics Dashboard</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
||||
<i class="ri-lifebuoy-line align-middle fs-18 text-muted me-2"></i>
|
||||
<span>Help Center</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
||||
<i class="ri-user-settings-line align-middle fs-18 text-muted me-2"></i>
|
||||
<span>My account settings</span>
|
||||
</a>
|
||||
|
||||
<!-- item-->
|
||||
<div class="dropdown-header mt-2">
|
||||
<h6 class="text-overflow text-muted mb-2 text-uppercase">Members</h6>
|
||||
</div>
|
||||
|
||||
<div class="notification-list">
|
||||
<!-- item -->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
|
||||
<div class="d-flex">
|
||||
<img src="assets/images/users/avatar-2.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="m-0">Angela Bernier</h6>
|
||||
<span class="fs-11 mb-0 text-muted">Manager</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- item -->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
|
||||
<div class="d-flex">
|
||||
<img src="assets/images/users/avatar-3.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="m-0">David Grasso</h6>
|
||||
<span class="fs-11 mb-0 text-muted">Web Designer</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- item -->
|
||||
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
|
||||
<div class="d-flex">
|
||||
<img src="assets/images/users/avatar-5.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
|
||||
<div class="flex-1">
|
||||
<h6 class="m-0">Mike Bunch</h6>
|
||||
<span class="fs-11 mb-0 text-muted">React Developer</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center pt-3 pb-1">
|
||||
<a href="pages-search-results.html" class="btn btn-primary btn-sm">View All Results <i class="ri-arrow-right-line ms-1"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
55
resources/views/backend/shortcodes.blade.php
Normal file
55
resources/views/backend/shortcodes.blade.php
Normal file
@ -0,0 +1,55 @@
|
||||
@extends("backend.template")
|
||||
@section("content")
|
||||
|
||||
<?php
|
||||
$ShortCodes = array(
|
||||
["title"=>"Photo Gallery","description"=>"[gallery alias=\'your_gallery_alias\']"]
|
||||
)
|
||||
?>
|
||||
|
||||
|
||||
<div class="accordion" id="accordionExample">
|
||||
@foreach($ShortCodes as $shortcode)
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
||||
Accordion Item #1
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<strong>This is the first item's accordion body.</strong> It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||
Accordion Item #2
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<strong>This is the second item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
|
||||
Accordion Item #3
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<strong>This is the third item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push("js")
|
||||
|
||||
@endpush
|
111
resources/views/backend/sidebar.blade.php
Normal file
111
resources/views/backend/sidebar.blade.php
Normal file
@ -0,0 +1,111 @@
|
||||
<div class="app-menu navbar-menu">
|
||||
<!-- LOGO -->
|
||||
<div class="navbar-brand-box">
|
||||
<!-- Dark Logo-->
|
||||
<a href="{{ route('admin.dashboard') }}" class="logo logo-dark">
|
||||
<span class="logo-sm">
|
||||
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
|
||||
</span>
|
||||
<span class="logo-lg">
|
||||
<img src="{{ asset('assets/images/logo-dark.png') }}" alt="" height="57">
|
||||
</span>
|
||||
</a>
|
||||
<!-- Light Logo-->
|
||||
<a href="{{ route('admin.dashboard') }}" class="logo logo-light">
|
||||
<span class="logo-sm">
|
||||
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
|
||||
</span>
|
||||
<span class="logo-lg">
|
||||
<img src="{{ asset('assets/images/logo-light.png') }}" alt="" height="57">
|
||||
</span>
|
||||
</a>
|
||||
<button type="button" class="btn btn-sm fs-20 header-item float-end btn-vertical-sm-hover p-0"
|
||||
id="vertical-hover">
|
||||
<i class="ri-record-circle-line"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="scrollbar">
|
||||
<div class="container-fluid">
|
||||
|
||||
|
||||
<div id="two-column-menu">
|
||||
</div>
|
||||
<ul class="navbar-nav" id="navbar-nav">
|
||||
<li class="menu-title"><span data-key="t-menu">Menu</span></li>
|
||||
<div class="simplebar-content" style="padding: 0px;">
|
||||
|
||||
@if (auth()->user()->email == 'prajwalbro@hotmail.com')
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link active" href="{{ route('form.create') }}">
|
||||
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">CRUD</span>
|
||||
</a>
|
||||
|
||||
</li> <!-- end Dashboard Menu -->
|
||||
<!-- end Dashboard Menu -->
|
||||
{{ CCMS::createMenuLink('Menu Location', route('menulocations.index')) }}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link collapsed" href="#sidebarMenu0" data-bs-toggle="collapse"
|
||||
role="button" aria-expanded="false" aria-controls="sidebarMenu0">
|
||||
<i class="ri-pages-line"></i> <span data-key="t-pages">Settings</span>
|
||||
</a>
|
||||
<div class="menu-dropdown collapse" id="sidebarMenu0">
|
||||
<ul class="nav nav-sm flex-column">
|
||||
{{ CCMS::createMenuLink('Website Setting', route('settings.edit', 1)) }}
|
||||
{{ CCMS::createMenuLink('Backup Database', route('backup.db')) }}
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link collapsed" href="#sidebarMenu1" data-bs-toggle="collapse"
|
||||
role="button" aria-expanded="false" aria-controls="sidebarMenu1">
|
||||
<i class="ri-pages-line"></i> <span data-key="t-pages">Menu Items</span>
|
||||
</a>
|
||||
<div class="menu-dropdown collapse" id="sidebarMenu1">
|
||||
<ul class="nav nav-sm flex-column">
|
||||
{{ CCMS::createMenuLink('All Menu Locations', route('menulocations.index')) }}
|
||||
@foreach (DB::select('select * from tbl_menulocations where status=1 order by display_order') as $menulocation)
|
||||
{{ CCMS::createMenuLink($menulocation->title, route('menuitems.index', ['menulocation' => $menulocation->menulocation_id])) }}
|
||||
@endforeach
|
||||
{{ CCMS::createMenuLink('All Menu Items', route('menuitems.index')) }}
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@endif
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link" href="{{ route('admin.dashboard') }}">
|
||||
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">Dashboard</span>
|
||||
</a>
|
||||
|
||||
</li> <!-- end Dashboard Menu -->
|
||||
|
||||
<li class="menu-title"><i class="ri-more-fill"></i> <span data-key="t-pages">Pages</span></li>
|
||||
</div>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Sidebar -->
|
||||
</div>
|
||||
|
||||
<div class="sidebar-background"></div>
|
||||
</div>
|
||||
@push('js')
|
||||
<script>
|
||||
var menuDropdowns = document.querySelectorAll('div.menu-dropdown');
|
||||
|
||||
menuDropdowns.forEach(function(menuDropdown) {
|
||||
var childLinks = menuDropdown.querySelectorAll('ul > li > a');
|
||||
var hasActiveLink = Array.from(childLinks).some(function(childLink) {
|
||||
return childLink.classList.contains('active');
|
||||
});
|
||||
|
||||
if (hasActiveLink) {
|
||||
menuDropdown.classList.add('show');
|
||||
} else {
|
||||
menuDropdown.classList.remove('show');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endpush
|
241
resources/views/backend/template.blade.php
Normal file
241
resources/views/backend/template.blade.php
Normal file
@ -0,0 +1,241 @@
|
||||
<!doctype html>
|
||||
<html lang="en" data-layout="vertical" data-topbar="light" data-sidebar="dark" data-sidebar-size="lg"
|
||||
data-sidebar-image="none" data-preloader="disable">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<title>{{ config('app.name') }} - Admin Dashboard </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta content="{{ config('app.name') }} - Admin & Dashboard" name="description" />
|
||||
<meta content="Bibhuti" name="author" />
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<script>
|
||||
window.appUrl = "{{ env('APP_URL') }}";
|
||||
var route_prefix = "{{ env('APP_URL') }}/files";
|
||||
</script>
|
||||
|
||||
<!-- App favicon -->
|
||||
<link rel="shortcut icon" href="assets/images/favicon.ico">
|
||||
|
||||
<link rel="shortcut icon" href="{{ asset('assets/images/favicon.ico') }}">
|
||||
|
||||
|
||||
<!-- gridjs css -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/libs/gridjs/theme/mermaid.min.css') }}">
|
||||
|
||||
<!-- Layout config Js -->
|
||||
<script src="{{ asset('assets/js/layout.js') }}"></script>
|
||||
<!-- Bootstrap Css -->
|
||||
<link href="{{ asset('assets/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<!-- Icons Css -->
|
||||
<link href="{{ asset('assets/css/icons.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<!-- App Css-->
|
||||
<link href="{{ asset('assets/css/app.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- jsvectormap css -->
|
||||
<link href="https://cdn.datatables.net/1.13.5/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('assets/libs/jsvectormap/css/jsvectormap.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- custom Css-->
|
||||
@stack('css')
|
||||
<link href="{{ asset('assets/css/custom.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<style>
|
||||
.auth-one-bg .bg-overlay {
|
||||
background: linear-gradient(to right, #bf2628, #b9070a);
|
||||
opacity: .9;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="file-detail-show">
|
||||
|
||||
<!-- Begin page -->
|
||||
<div id="layout-wrapper">
|
||||
|
||||
@include('backend.header')
|
||||
|
||||
@include('backend.sidebar')
|
||||
|
||||
<div class="vertical-overlay"></div>
|
||||
|
||||
<div class="main-content">
|
||||
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
@yield('content')
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<script>
|
||||
document.write(new Date().getFullYear())
|
||||
</script> © {{ env('APP_NAME') }}.
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="text-sm-end d-none d-sm-block">
|
||||
Developed by <a href="https://www.bibhutisolutions.com/" target="_blank">Bibhuti Solutions Pvt. Ltd.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<!-- end main content-->
|
||||
|
||||
</div>
|
||||
<!-- END layout-wrapper -->
|
||||
|
||||
<!--start back-to-top-->
|
||||
<?php /*
|
||||
@include("backend.parts.customizer")
|
||||
*/
|
||||
?>
|
||||
|
||||
<!-- JAVASCRIPT -->
|
||||
|
||||
<script src="{{ asset('assets/libs/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/simplebar/simplebar.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/node-waves/waves.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/feather-icons/feather.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/js/pages/plugins/lord-icon-2.1.0.js') }}"></script>
|
||||
<script src="{{ asset('assets/js/plugins.js') }}"></script>
|
||||
|
||||
<!-- apexcharts -->
|
||||
<script src="{{ asset('assets/libs/apexcharts/apexcharts.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/js/pages/file-manager.init.js') }}"></script>
|
||||
|
||||
<!-- App js -->
|
||||
<script src="{{ asset('assets/js/app.js') }}"></script>
|
||||
<script src="{{ asset('vendor/laravel-filemanager/js/stand-alone-button.js') }}"></script>
|
||||
|
||||
<!-- Vector map-->
|
||||
<script src="{{ asset('assets/libs/jsvectormap/js/jsvectormap.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/jsvectormap/maps/world-merc.js') }}"></script>
|
||||
|
||||
<!-- gridjs js -->
|
||||
<script src="{{ asset('assets/libs/gridjs/gridjs.umd.js') }}"></script>
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script type='text/javascript' src='https://cdn.jsdelivr.net/npm/toastify-js'></script>
|
||||
<script type='text/javascript' src='https://choices-js.github.io/Choices/assets/scripts/choices.js'></script>
|
||||
<script src='https://cdn.jsdelivr.net/npm/flatpickr'></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.14.0/Sortable.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap-datepicker@1.10.0/dist/js/bootstrap-datepicker.min.js"></script>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-datepicker@1.10.0/dist/css/bootstrap-datepicker3.min.css"
|
||||
rel="stylesheet">
|
||||
<!-- JAVASCRIPT -->
|
||||
|
||||
<!-- <script src="https://cdn.ckeditor.com/ckeditor5/38.1.1/classic/ckeditor.js"></script> -->
|
||||
<script src="https://cdn.ckeditor.com/4.16.2/full/ckeditor.js"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var baseUrl = '{{ env('APP_URL') }}'; // Replace with your base URL
|
||||
|
||||
var textareas = document.querySelectorAll('.ckeditor-classic');
|
||||
for (var i = 0; i < textareas.length; i++) {
|
||||
CKEDITOR.replace(textareas[i], {
|
||||
// height: 100,
|
||||
filebrowserImageBrowseUrl: baseUrl + '/files?type=Images',
|
||||
filebrowserImageUploadUrl: baseUrl + '/files/upload?type=Images&_token={{ csrf_token() }}',
|
||||
filebrowserBrowseUrl: baseUrl + '/files?type=Files',
|
||||
filebrowserUploadUrl: baseUrl + '/files/upload?type=Files&_token={{ csrf_token() }}',
|
||||
filebrowserImageUploadPath: '/storage/photos', // Adjust the path as per your requirements
|
||||
filebrowserUploadPath: '/storage/files', // Adjust the path as per your requirements
|
||||
baseHref: baseUrl + '/', // Set the baseHref to the baseUrl
|
||||
filebrowserImageBrowseCallback: function(url) {
|
||||
var relativePath = url.replace(baseUrl + '/', '');
|
||||
alert("COW");
|
||||
onSelectFile(relativePath); // Call your custom function with the relative path
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function onSelectFile(url) {
|
||||
// Use the relative path as needed
|
||||
console.log(url);
|
||||
}
|
||||
|
||||
jQuery(document).ready(function($) {
|
||||
$('.datepicker').datepicker({
|
||||
format: 'yyyy-mm-dd',
|
||||
autoclose: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
// $('#lfm').filemanager('image', {prefix: route_prefix});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var lfm = function(id, type, options) {
|
||||
let button = document.getElementById(id);
|
||||
|
||||
button.addEventListener('click', function() {
|
||||
var route_prefix = (options && options.prefix) ? options.prefix : '/filemanager';
|
||||
var target_input = document.getElementById(button.getAttribute('data-input'));
|
||||
var target_preview = document.getElementById(button.getAttribute('data-preview'));
|
||||
var multiple_selection = (options && options.multi_selection) ? options.multi_selection : false;
|
||||
// alert(multiple_selection);
|
||||
window.open(route_prefix + '?type=' + options.type || 'file', 'FileManager', 'width=900,height=600');
|
||||
window.SetUrl = function(items) {
|
||||
var file_path = items.map(function(item) {
|
||||
return item.url;
|
||||
}).join(',');
|
||||
|
||||
// set the value of the desired input to image url
|
||||
target_input.value = file_path;
|
||||
target_input.dispatchEvent(new Event('change'));
|
||||
|
||||
// clear previous preview
|
||||
target_preview.innerHtml = '';
|
||||
|
||||
// set or change the preview image src
|
||||
items.forEach(function(item) {
|
||||
let img = document.createElement('img')
|
||||
img.setAttribute('style', 'height: 5rem')
|
||||
img.setAttribute('src', item.thumb_url)
|
||||
if (!multiple_selection) target_preview.innerHTML = '';
|
||||
target_preview.appendChild(img);
|
||||
});
|
||||
|
||||
// trigger change event
|
||||
target_preview.dispatchEvent(new Event('change'));
|
||||
};
|
||||
});
|
||||
};
|
||||
</script>
|
||||
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
<script>
|
||||
// When the document is ready
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
let success = "{{ Session::pull('success', '') }}";
|
||||
|
||||
// If there is a success message in the session data
|
||||
if (success !== '') {
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Success',
|
||||
text: success
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@if (isset($GLOBALS['scripts']))
|
||||
{!! implode(PHP_EOL, $GLOBALS['scripts']) !!}
|
||||
@endif
|
||||
|
||||
@stack('js')
|
||||
</body>
|
||||
|
||||
</html>
|
3
resources/views/components/application-logo.blade.php
Normal file
3
resources/views/components/application-logo.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<svg viewBox="0 0 316 316" xmlns="http://www.w3.org/2000/svg" {{ $attributes }}>
|
||||
<path d="M305.8 81.125C305.77 80.995 305.69 80.885 305.65 80.755C305.56 80.525 305.49 80.285 305.37 80.075C305.29 79.935 305.17 79.815 305.07 79.685C304.94 79.515 304.83 79.325 304.68 79.175C304.55 79.045 304.39 78.955 304.25 78.845C304.09 78.715 303.95 78.575 303.77 78.475L251.32 48.275C249.97 47.495 248.31 47.495 246.96 48.275L194.51 78.475C194.33 78.575 194.19 78.725 194.03 78.845C193.89 78.955 193.73 79.045 193.6 79.175C193.45 79.325 193.34 79.515 193.21 79.685C193.11 79.815 192.99 79.935 192.91 80.075C192.79 80.285 192.71 80.525 192.63 80.755C192.58 80.875 192.51 80.995 192.48 81.125C192.38 81.495 192.33 81.875 192.33 82.265V139.625L148.62 164.795V52.575C148.62 52.185 148.57 51.805 148.47 51.435C148.44 51.305 148.36 51.195 148.32 51.065C148.23 50.835 148.16 50.595 148.04 50.385C147.96 50.245 147.84 50.125 147.74 49.995C147.61 49.825 147.5 49.635 147.35 49.485C147.22 49.355 147.06 49.265 146.92 49.155C146.76 49.025 146.62 48.885 146.44 48.785L93.99 18.585C92.64 17.805 90.98 17.805 89.63 18.585L37.18 48.785C37 48.885 36.86 49.035 36.7 49.155C36.56 49.265 36.4 49.355 36.27 49.485C36.12 49.635 36.01 49.825 35.88 49.995C35.78 50.125 35.66 50.245 35.58 50.385C35.46 50.595 35.38 50.835 35.3 51.065C35.25 51.185 35.18 51.305 35.15 51.435C35.05 51.805 35 52.185 35 52.575V232.235C35 233.795 35.84 235.245 37.19 236.025L142.1 296.425C142.33 296.555 142.58 296.635 142.82 296.725C142.93 296.765 143.04 296.835 143.16 296.865C143.53 296.965 143.9 297.015 144.28 297.015C144.66 297.015 145.03 296.965 145.4 296.865C145.5 296.835 145.59 296.775 145.69 296.745C145.95 296.655 146.21 296.565 146.45 296.435L251.36 236.035C252.72 235.255 253.55 233.815 253.55 232.245V174.885L303.81 145.945C305.17 145.165 306 143.725 306 142.155V82.265C305.95 81.875 305.89 81.495 305.8 81.125ZM144.2 227.205L100.57 202.515L146.39 176.135L196.66 147.195L240.33 172.335L208.29 190.625L144.2 227.205ZM244.75 114.995V164.795L226.39 154.225L201.03 139.625V89.825L219.39 100.395L244.75 114.995ZM249.12 57.105L292.81 82.265L249.12 107.425L205.43 82.265L249.12 57.105ZM114.49 184.425L96.13 194.995V85.305L121.49 70.705L139.85 60.135V169.815L114.49 184.425ZM91.76 27.425L135.45 52.585L91.76 77.745L48.07 52.585L91.76 27.425ZM43.67 60.135L62.03 70.705L87.39 85.305V202.545V202.555V202.565C87.39 202.735 87.44 202.895 87.46 203.055C87.49 203.265 87.49 203.485 87.55 203.695V203.705C87.6 203.875 87.69 204.035 87.76 204.195C87.84 204.375 87.89 204.575 87.99 204.745C87.99 204.745 87.99 204.755 88 204.755C88.09 204.905 88.22 205.035 88.33 205.175C88.45 205.335 88.55 205.495 88.69 205.635L88.7 205.645C88.82 205.765 88.98 205.855 89.12 205.965C89.28 206.085 89.42 206.225 89.59 206.325C89.6 206.325 89.6 206.325 89.61 206.335C89.62 206.335 89.62 206.345 89.63 206.345L139.87 234.775V285.065L43.67 229.705V60.135ZM244.75 229.705L148.58 285.075V234.775L219.8 194.115L244.75 179.875V229.705ZM297.2 139.625L253.49 164.795V114.995L278.85 100.395L297.21 89.825V139.625H297.2Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
7
resources/views/components/auth-session-status.blade.php
Normal file
7
resources/views/components/auth-session-status.blade.php
Normal file
@ -0,0 +1,7 @@
|
||||
@props(['status'])
|
||||
|
||||
@if ($status)
|
||||
<div {{ $attributes->merge(['class' => 'font-medium text-sm text-green-600 dark:text-green-400']) }}>
|
||||
{{ $status }}
|
||||
</div>
|
||||
@endif
|
3
resources/views/components/danger-button.blade.php
Normal file
3
resources/views/components/danger-button.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<button {{ $attributes->merge(['type' => 'submit', 'class' => 'inline-flex items-center px-4 py-2 bg-red-600 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-red-500 active:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150']) }}>
|
||||
{{ $slot }}
|
||||
</button>
|
1
resources/views/components/dropdown-link.blade.php
Normal file
1
resources/views/components/dropdown-link.blade.php
Normal file
@ -0,0 +1 @@
|
||||
<a {{ $attributes->merge(['class' => 'block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out']) }}>{{ $slot }}</a>
|
43
resources/views/components/dropdown.blade.php
Normal file
43
resources/views/components/dropdown.blade.php
Normal file
@ -0,0 +1,43 @@
|
||||
@props(['align' => 'right', 'width' => '48', 'contentClasses' => 'py-1 bg-white dark:bg-gray-700'])
|
||||
|
||||
@php
|
||||
switch ($align) {
|
||||
case 'left':
|
||||
$alignmentClasses = 'origin-top-left left-0';
|
||||
break;
|
||||
case 'top':
|
||||
$alignmentClasses = 'origin-top';
|
||||
break;
|
||||
case 'right':
|
||||
default:
|
||||
$alignmentClasses = 'origin-top-right right-0';
|
||||
break;
|
||||
}
|
||||
|
||||
switch ($width) {
|
||||
case '48':
|
||||
$width = 'w-48';
|
||||
break;
|
||||
}
|
||||
@endphp
|
||||
|
||||
<div class="relative" x-data="{ open: false }" @click.outside="open = false" @close.stop="open = false">
|
||||
<div @click="open = ! open">
|
||||
{{ $trigger }}
|
||||
</div>
|
||||
|
||||
<div x-show="open"
|
||||
x-transition:enter="transition ease-out duration-200"
|
||||
x-transition:enter-start="opacity-0 scale-95"
|
||||
x-transition:enter-end="opacity-100 scale-100"
|
||||
x-transition:leave="transition ease-in duration-75"
|
||||
x-transition:leave-start="opacity-100 scale-100"
|
||||
x-transition:leave-end="opacity-0 scale-95"
|
||||
class="absolute z-50 mt-2 {{ $width }} rounded-md shadow-lg {{ $alignmentClasses }}"
|
||||
style="display: none;"
|
||||
@click="open = false">
|
||||
<div class="rounded-md ring-1 ring-black ring-opacity-5 {{ $contentClasses }}">
|
||||
{{ $content }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
9
resources/views/components/input-error.blade.php
Normal file
9
resources/views/components/input-error.blade.php
Normal file
@ -0,0 +1,9 @@
|
||||
@props(['messages'])
|
||||
|
||||
@if ($messages)
|
||||
<ul {{ $attributes->merge(['class' => 'text-sm text-red-600 dark:text-red-400 space-y-1']) }}>
|
||||
@foreach ((array) $messages as $message)
|
||||
<li>{{ $message }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
5
resources/views/components/input-label.blade.php
Normal file
5
resources/views/components/input-label.blade.php
Normal file
@ -0,0 +1,5 @@
|
||||
@props(['value'])
|
||||
|
||||
<label {{ $attributes->merge(['class' => 'block font-medium text-sm text-gray-700 dark:text-gray-300']) }}>
|
||||
{{ $value ?? $slot }}
|
||||
</label>
|
77
resources/views/components/modal.blade.php
Normal file
77
resources/views/components/modal.blade.php
Normal file
@ -0,0 +1,77 @@
|
||||
@props([
|
||||
'name',
|
||||
'show' => false,
|
||||
'maxWidth' => '2xl'
|
||||
])
|
||||
|
||||
@php
|
||||
$maxWidth = [
|
||||
'sm' => 'sm:max-w-sm',
|
||||
'md' => 'sm:max-w-md',
|
||||
'lg' => 'sm:max-w-lg',
|
||||
'xl' => 'sm:max-w-xl',
|
||||
'2xl' => 'sm:max-w-2xl',
|
||||
][$maxWidth];
|
||||
@endphp
|
||||
|
||||
<div
|
||||
x-data="{
|
||||
show: @js($show),
|
||||
focusables() {
|
||||
// All focusable element types...
|
||||
let selector = 'a, button, input:not([type=\'hidden\']), textarea, select, details, [tabindex]:not([tabindex=\'-1\'])'
|
||||
return [...$el.querySelectorAll(selector)]
|
||||
// All non-disabled elements...
|
||||
.filter(el => ! el.hasAttribute('disabled'))
|
||||
},
|
||||
firstFocusable() { return this.focusables()[0] },
|
||||
lastFocusable() { return this.focusables().slice(-1)[0] },
|
||||
nextFocusable() { return this.focusables()[this.nextFocusableIndex()] || this.firstFocusable() },
|
||||
prevFocusable() { return this.focusables()[this.prevFocusableIndex()] || this.lastFocusable() },
|
||||
nextFocusableIndex() { return (this.focusables().indexOf(document.activeElement) + 1) % (this.focusables().length + 1) },
|
||||
prevFocusableIndex() { return Math.max(0, this.focusables().indexOf(document.activeElement)) -1 },
|
||||
}"
|
||||
x-init="$watch('show', value => {
|
||||
if (value) {
|
||||
document.body.classList.add('overflow-y-hidden');
|
||||
{{ $attributes->has('focusable') ? 'setTimeout(() => firstFocusable().focus(), 100)' : '' }}
|
||||
} else {
|
||||
document.body.classList.remove('overflow-y-hidden');
|
||||
}
|
||||
})"
|
||||
x-on:open-modal.window="$event.detail == '{{ $name }}' ? show = true : null"
|
||||
x-on:close.stop="show = false"
|
||||
x-on:keydown.escape.window="show = false"
|
||||
x-on:keydown.tab.prevent="$event.shiftKey || nextFocusable().focus()"
|
||||
x-on:keydown.shift.tab.prevent="prevFocusable().focus()"
|
||||
x-show="show"
|
||||
class="fixed inset-0 overflow-y-auto px-4 py-6 sm:px-0 z-50"
|
||||
style="display: {{ $show ? 'block' : 'none' }};"
|
||||
>
|
||||
<div
|
||||
x-show="show"
|
||||
class="fixed inset-0 transform transition-all"
|
||||
x-on:click="show = false"
|
||||
x-transition:enter="ease-out duration-300"
|
||||
x-transition:enter-start="opacity-0"
|
||||
x-transition:enter-end="opacity-100"
|
||||
x-transition:leave="ease-in duration-200"
|
||||
x-transition:leave-start="opacity-100"
|
||||
x-transition:leave-end="opacity-0"
|
||||
>
|
||||
<div class="absolute inset-0 bg-gray-500 dark:bg-gray-900 opacity-75"></div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
x-show="show"
|
||||
class="mb-6 bg-white dark:bg-gray-800 rounded-lg overflow-hidden shadow-xl transform transition-all sm:w-full {{ $maxWidth }} sm:mx-auto"
|
||||
x-transition:enter="ease-out duration-300"
|
||||
x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
||||
x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100"
|
||||
x-transition:leave="ease-in duration-200"
|
||||
x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
|
||||
x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
||||
>
|
||||
{{ $slot }}
|
||||
</div>
|
||||
</div>
|
11
resources/views/components/nav-link.blade.php
Normal file
11
resources/views/components/nav-link.blade.php
Normal file
@ -0,0 +1,11 @@
|
||||
@props(['active'])
|
||||
|
||||
@php
|
||||
$classes = ($active ?? false)
|
||||
? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 dark:border-indigo-600 text-sm font-medium leading-5 text-gray-900 dark:text-gray-100 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out'
|
||||
: 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300 dark:hover:border-gray-700 focus:outline-none focus:text-gray-700 dark:focus:text-gray-300 focus:border-gray-300 dark:focus:border-gray-700 transition duration-150 ease-in-out';
|
||||
@endphp
|
||||
|
||||
<a {{ $attributes->merge(['class' => $classes]) }}>
|
||||
{{ $slot }}
|
||||
</a>
|
3
resources/views/components/primary-button.blade.php
Normal file
3
resources/views/components/primary-button.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<button {{ $attributes->merge(['type' => 'submit', 'class' => 'inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150']) }}>
|
||||
{{ $slot }}
|
||||
</button>
|
11
resources/views/components/responsive-nav-link.blade.php
Normal file
11
resources/views/components/responsive-nav-link.blade.php
Normal file
@ -0,0 +1,11 @@
|
||||
@props(['active'])
|
||||
|
||||
@php
|
||||
$classes = ($active ?? false)
|
||||
? 'block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 dark:border-indigo-600 text-left text-base font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-900/50 focus:outline-none focus:text-indigo-800 dark:focus:text-indigo-200 focus:bg-indigo-100 dark:focus:bg-indigo-900 focus:border-indigo-700 dark:focus:border-indigo-300 transition duration-150 ease-in-out'
|
||||
: 'block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600 focus:outline-none focus:text-gray-800 dark:focus:text-gray-200 focus:bg-gray-50 dark:focus:bg-gray-700 focus:border-gray-300 dark:focus:border-gray-600 transition duration-150 ease-in-out';
|
||||
@endphp
|
||||
|
||||
<a {{ $attributes->merge(['class' => $classes]) }}>
|
||||
{{ $slot }}
|
||||
</a>
|
3
resources/views/components/secondary-button.blade.php
Normal file
3
resources/views/components/secondary-button.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<button {{ $attributes->merge(['type' => 'button', 'class' => 'inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-sm hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 disabled:opacity-25 transition ease-in-out duration-150']) }}>
|
||||
{{ $slot }}
|
||||
</button>
|
3
resources/views/components/text-input.blade.php
Normal file
3
resources/views/components/text-input.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
@props(['disabled' => false])
|
||||
|
||||
<input {{ $disabled ? 'disabled' : '' }} {!! $attributes->merge(['class' => 'border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-sm']) !!}>
|
39
resources/views/crud/form/create.blade.php
Normal file
39
resources/views/crud/form/create.blade.php
Normal file
@ -0,0 +1,39 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="nk-content">
|
||||
<div class="container-fluid">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="nk-content-inner">
|
||||
<form method="get" action="{{ route('form.store') }}" enctype="multipart/form-data">
|
||||
{{Label('Operation')}}
|
||||
|
||||
{{ customCreateSelect('type', 'type', '', '', ['ajax-curd' => 'Ajax CURD', 'make-table-nullable'=>'Make Table Nullable','store' => 'store', 'update' => 'update']) }}
|
||||
|
||||
{{Label('Table Name')}}
|
||||
|
||||
{{ customCreateSelect('tableName', 'tableName', 'form-control custom-select2', '', $allTables) }}
|
||||
|
||||
{{Label('Write To')}}
|
||||
|
||||
{{ createText('directoryName', 'directoryName', 'Directory Name') }}
|
||||
<?php createButton('mt-3 btn-primary', '', 'Submit'); ?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@push('js')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.custom-select2').select2();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
65
resources/views/crud/form/tables.blade.php
Normal file
65
resources/views/crud/form/tables.blade.php
Normal file
@ -0,0 +1,65 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="nk-content">
|
||||
<div class="container">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block-head">
|
||||
<div class="nk-block-head-between flex-wrap gap g-2">
|
||||
<div class="nk-block-head-content">
|
||||
<h2 class="nk-block-title">Tables in Database</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-block">
|
||||
<div class="card">
|
||||
<div class="accordion" id="accordionTables">
|
||||
<?php $a = 0; ?>
|
||||
|
||||
@foreach ($allTables as $Table)
|
||||
<?php $a++; ?>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header"> <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{$a}}"> {{$a}}: {{$Table->tablename}} </button> </h2>
|
||||
<div id="collapse{{$a}}" class="accordion-collapse collapse" data-bs-parent="#accordionTables">
|
||||
<div class="accordion-body">
|
||||
<table class="datatable-init table" data-nk-container="table-responsive">
|
||||
<thead class="table-dark">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">S.N.</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{__('lang.Column')}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Datatype")}}</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $sn = 0; ?>
|
||||
@foreach($Table->tablecolumns as $column)
|
||||
<tr>
|
||||
<?php $sn++; ?>
|
||||
<td class="tb-col"><span >{{$sn}}</span></td>
|
||||
<td class="tb-col"><span > {{$column->COLUMN_NAME}}</span></td>
|
||||
<td class="tb-col"><span > {{$column->COLUMN_TYPE}}</span></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@push('js')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.custom-select2').select2();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
@ -0,0 +1,21 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Add Accridiations') }}</h2>
|
||||
<?php createButton("btn-primary btn-cancel","","Cancel",route('accridiations.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{route('accridiations.store')}}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row"><div class="col-lg-6">{{createText("display","display","Display")}}
|
||||
</div><div class="col-lg-6">{{createText("title","title","Title")}}
|
||||
</div><div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text")}}
|
||||
</div><div class="col-lg-12 pb-2">{{createImageInput("image","Image")}}
|
||||
</div><div class="col-lg-12 pb-2">{{createImageInput("thumb","Thumb")}}
|
||||
</div><div class="col-lg-12 pb-2">{{createImageInput("cover","Cover")}}
|
||||
</div> <br> <div class="col-md-12"><?php createButton("btn-primary btn-store","","Submit"); ?>
|
||||
<?php createButton("btn-primary btn-cancel","","Cancel",route('accridiations.index')); ?>
|
||||
</div> </form></div></div>
|
||||
@endsection
|
21
resources/views/crud/generated/accridiations/edit.blade.php
Normal file
21
resources/views/crud/generated/accridiations/edit.blade.php
Normal file
@ -0,0 +1,21 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Edit Accridiations') }}</h2>
|
||||
<?php createButton("btn-primary btn-cancel","","Cancel",route('accridiations.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{route('accridiations.update',[$data->accridiation_id])}}" id="updateCustomForm" method="POST" >
|
||||
@csrf <input type=hidden name='accridiation_id' value='{{$data->accridiation_id}}'/>
|
||||
<div class="row"><div class="col-lg-6">{{createText("display","display","Display",'',$data->display)}}
|
||||
</div><div class="col-lg-6">{{createText("title","title","Title",'',$data->title)}}
|
||||
</div><div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text",$data->text)}}
|
||||
</div><div class="col-lg-12 pb-2">{{createImageInput("image","Image",'',$data->image)}}
|
||||
</div><div class="col-lg-12 pb-2">{{createImageInput("thumb","Thumb",'',$data->thumb)}}
|
||||
</div><div class="col-lg-12 pb-2">{{createImageInput("cover","Cover",'',$data->cover)}}
|
||||
</div> <div class="col-md-12"><?php createButton("btn-primary btn-update","","Submit"); ?>
|
||||
<?php createButton("btn-primary btn-cancel","","Cancel",route('accridiations.index')); ?>
|
||||
</div> </form></div></div>
|
||||
@endsection
|
233
resources/views/crud/generated/accridiations/index.blade.php
Normal file
233
resources/views/crud/generated/accridiations/index.blade.php
Normal file
@ -0,0 +1,233 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label("Accridiations List") }}</h2>
|
||||
<a href="{{ route('accridiations.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable" id="tbl_accridiations" data-url="{{ route('accridiations.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("display") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("image") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("thumb") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("cover") }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span
|
||||
class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
|
||||
<tr data-id="{{$item->accridiation_id}}" data-display_order="{{$item->display_order}}" class="draggable-row <?php echo ($item->status==0)?"bg-light bg-danger":""; ?>">
|
||||
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">{{ $item->display }}</td>
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->image) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->cover) }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a href="{{route('accridiations.show',[$item->accridiation_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('accridiations.edit',[$item->accridiation_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a href="{{route('accridiations.toggle',[$item->accridiation_id])}}" class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
|
||||
<i class="ri-article-fill align-bottom me-2 text-muted"></i> {{ ($item->status==1)?label('Unpublish'):label('Publish') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('accridiations.destroy',[$item->accridiation_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push("css")
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push("js")
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('accridiations.updatealias') }}";
|
||||
var data = {
|
||||
articleId: articleId,
|
||||
newAlias: newAlias
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: data,
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Switch to editing state
|
||||
aliasSpan.hide();
|
||||
aliasInput.show().focus();
|
||||
$(this).addClass('editing').text('Save Alias');
|
||||
}
|
||||
});
|
||||
var mytable = $(".dataTable").DataTable({
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete=false;
|
||||
}
|
||||
});
|
||||
});
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
function confirmToggle(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Proceed',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'GET',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endpush
|
||||
|
29
resources/views/crud/generated/accridiations/show.blade.php
Normal file
29
resources/views/crud/generated/accridiations/show.blade.php
Normal file
@ -0,0 +1,29 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2><?php echo label('View Details'); ?></h2>
|
||||
<?php createButton("btn-primary btn-cancel","","Back to List",route('accridiations.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
|
||||
|
||||
|
||||
<p><b>Display : </b> <span>{{$data->display}}</span></p><p><b>Title : </b> <span>{{$data->title}}</span></p><p><b>Text : </b> <span>{{$data->text}}</span></p><p><b>Image : </b> <span>{{$data->image}}</span></p><p><b>Thumb : </b> <span>{{$data->thumb}}</span></p><p><b>Cover : </b> <span>{{$data->cover}}</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>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
|
130
resources/views/crud/generated/menuitems/create.blade.php
Normal file
130
resources/views/crud/generated/menuitems/create.blade.php
Normal file
@ -0,0 +1,130 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
||||
<h4 class="mb-sm-0">Add New Menu</h4>
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
|
||||
<li class="breadcrumb-item active">Add New Menu</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<form action="{{route('menuitems.store')}}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-xl-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">{{createText("title","title","Display Title")}}</div>
|
||||
<div class="col-lg-3">{{createCustomSelect('tbl_menulocations', 'title', 'menulocation_id', ($menulocation)?$menulocation:'', 'Menu Location','menulocations_id', 'form-control select2','status<>-1')}}</div>
|
||||
<div class="col-lg-3">{{createCustomSelectFromArray($menuTypes,"Menu Type","type")}}</div>
|
||||
<div class="col-lg-3">{{createCustomSelect('tbl_menuitems', 'title', 'menu_id', '', 'Sub Menu of (Ignore if it is going as root)','parent_menu', 'form-control select2','status<>-1')}}</div>
|
||||
<div class="col-lg-3" id="ref-container">{{createText("ref","ref","# or Start from / or http:// or https://")}}</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title mb-0">Target</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{createCustomSelectFromArray(array(['display'=>'Self','value'=>"_SELF"],['display'=>'New Tab','value'=>"_BLANK"]),"","target","_SELF")}}
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<?php createButton("btn-primary btn-store", "", "Submit"); ?>
|
||||
<?php createButton("btn-danger btn-cancel", "", "Cancel", route('menuitems.index')); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-xl-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h2>Menu Items</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@include("crud.generated.menuitems.list",[$data=$TableData])
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
@endsection
|
||||
@push("js")
|
||||
<script>
|
||||
var firstLevelSelect = document.getElementById('type');
|
||||
var secondLevelContainer = document.getElementById('ref-container');
|
||||
function showRef() {
|
||||
var selectedOption = firstLevelSelect.value;
|
||||
var menuTypes = <?php echo json_encode($menuTypes); ?>;
|
||||
var selectedMenuType = menuTypes.find(function(menuType) {
|
||||
return menuType.value === selectedOption;
|
||||
});
|
||||
secondLevelContainer.innerHTML = '';
|
||||
if (selectedOption == '') {
|
||||
var label = document.createElement('label');
|
||||
label.setAttribute('for', 'ref');
|
||||
label.className = 'form-label col-form-label';
|
||||
label.textContent = '# or Start from / or http:// or https://';
|
||||
secondLevelContainer.appendChild(label);
|
||||
// Create an input element
|
||||
var secondLevelInput = document.createElement('input');
|
||||
secondLevelInput.type = 'text';
|
||||
secondLevelInput.name = 'ref';
|
||||
secondLevelInput.className = 'form-control';
|
||||
secondLevelContainer.appendChild(secondLevelInput);
|
||||
} else {
|
||||
var label = document.createElement('label');
|
||||
label.setAttribute('for', 'ref');
|
||||
label.className = 'form-label col-form-label';
|
||||
label.textContent = 'Ref (Select Reference)';
|
||||
secondLevelContainer.appendChild(label);
|
||||
// Create a select element
|
||||
var secondLevelSelect = document.createElement('select');
|
||||
secondLevelSelect.name = 'ref';
|
||||
secondLevelSelect.className = 'form-select form-control';
|
||||
secondLevelContainer.appendChild(secondLevelSelect);
|
||||
|
||||
// Add the default option
|
||||
var defaultOption = document.createElement('option');
|
||||
defaultOption.value = '';
|
||||
defaultOption.textContent = 'Select Option';
|
||||
secondLevelSelect.appendChild(defaultOption);
|
||||
|
||||
if (selectedMenuType && selectedMenuType.values) {
|
||||
var values = JSON.parse(selectedMenuType.values);
|
||||
values.forEach(function(value) {
|
||||
var option = document.createElement('option');
|
||||
option.value = value.value;
|
||||
option.textContent = value.display;
|
||||
secondLevelSelect.appendChild(option);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
firstLevelSelect.addEventListener('change', function() {
|
||||
showRef();
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
131
resources/views/crud/generated/menuitems/edit.blade.php
Normal file
131
resources/views/crud/generated/menuitems/edit.blade.php
Normal file
@ -0,0 +1,131 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
||||
<h4 class="mb-sm-0">Edit Header Menu</h4>
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
|
||||
<li class="breadcrumb-item active">Edit Header Menu</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<form action="{{route('menuitems.update',[$data->menu_id,'menulocation'=>($menulocation)?$menulocation:''])}}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-xl-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">{{createText("title","title","Display Title",'',$data->title)}}</div>
|
||||
<div class="col-lg-3">{{createCustomSelect('tbl_menulocations', 'title', 'menulocation_id', $data->menulocations_id, 'Menu Location','menulocations_id', 'form-control select2','status<>-1')}}</div>
|
||||
<div class="col-lg-3">{{createCustomSelectFromArray($menuTypes,"Menu Type","type",$data->type,"REQUIRED")}}</div>
|
||||
<div class="col-lg-3">{{createCustomSelect('tbl_menuitems', 'title', 'menu_id', $data->parent_menu, 'Sub Menu of (Ignore if it is going as root)','parent_menu', 'form-control select2','status<>-1')}}</div>
|
||||
<div class="col-lg-3" id="ref-container">{{createText("ref","ref","# or Start from / or http:// or https://",'',$data->ref)}}</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title mb-0">Target</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{createCustomSelectFromArray(array(['display'=>'Self','value'=>"_SELF"],['display'=>'New Tab','value'=>"_BLANK"]),"","target",$data->target)}}
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<?php createButton("btn-primary btn-store", "", "Submit"); ?>
|
||||
<?php createButton("btn-danger btn-cancel", "", "Cancel", route('menuitems.index')); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
@push("js")
|
||||
<script>
|
||||
// showRef();
|
||||
var firstLevelSelect = document.getElementById('type');
|
||||
var secondLevelContainer = document.getElementById('ref-container');
|
||||
firstLevelSelect.value = '{{$data->type}}';
|
||||
firstLevelSelect.dispatchEvent(new Event('change'));
|
||||
showRef('{{$data->ref}}');
|
||||
function showRef(defaultValue = '') {
|
||||
var selectedOption = firstLevelSelect.value;
|
||||
var menuTypes = <?php echo json_encode($menuTypes); ?>;
|
||||
var selectedMenuType = menuTypes.find(function(menuType) {
|
||||
return menuType.value === selectedOption;
|
||||
});
|
||||
secondLevelContainer.innerHTML = '';
|
||||
if (selectedOption === '') {
|
||||
var label = document.createElement('label');
|
||||
label.setAttribute('for', 'ref');
|
||||
label.className = 'form-label col-form-label';
|
||||
label.textContent = '# or Start from / or http:// or https://';
|
||||
secondLevelContainer.appendChild(label);
|
||||
// Create an input element
|
||||
var secondLevelInput = document.createElement('input');
|
||||
secondLevelInput.type = 'text';
|
||||
secondLevelInput.name = 'ref';
|
||||
secondLevelInput.className = 'form-control';
|
||||
secondLevelContainer.appendChild(secondLevelInput);
|
||||
secondLevelInput.value = defaultValue;
|
||||
} else {
|
||||
var label = document.createElement('label');
|
||||
label.setAttribute('for', 'ref');
|
||||
label.className = 'form-label col-form-label';
|
||||
label.textContent = 'Ref (Select Reference)';
|
||||
secondLevelContainer.appendChild(label);
|
||||
// Create a select element
|
||||
var secondLevelSelect = document.createElement('select');
|
||||
secondLevelSelect.name = 'ref';
|
||||
secondLevelSelect.className = 'form-select form-control';
|
||||
secondLevelContainer.appendChild(secondLevelSelect);
|
||||
|
||||
// Add the default option
|
||||
var defaultOption = document.createElement('option');
|
||||
defaultOption.value = '';
|
||||
defaultOption.textContent = 'Select Option';
|
||||
secondLevelSelect.appendChild(defaultOption);
|
||||
|
||||
if (selectedMenuType && selectedMenuType.values) {
|
||||
var values = JSON.parse(selectedMenuType.values);
|
||||
values.forEach(function(value) {
|
||||
var option = document.createElement('option');
|
||||
option.value = value.value;
|
||||
option.textContent = value.display;
|
||||
secondLevelSelect.appendChild(option);
|
||||
});
|
||||
}
|
||||
secondLevelSelect.value = defaultValue;
|
||||
}
|
||||
|
||||
}
|
||||
firstLevelSelect.addEventListener('change', function() {
|
||||
showRef();
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
225
resources/views/crud/generated/menuitems/index.blade.php
Normal file
225
resources/views/crud/generated/menuitems/index.blade.php
Normal file
@ -0,0 +1,225 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label("Menu Items List") }}</h2>
|
||||
<?php
|
||||
if (null != $menulocation) {
|
||||
?><a href="{{ route('menuitems.create',['menulocation'=>$menulocation]) }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<a href="{{ route('menuitems.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable" id="tbl_menuitems" data-url="{{ route('menuitems.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("parent_menu") }}</span></th>
|
||||
<!-- <th class="tb-col"><span class="overline-title">{{ label("menulocations_id") }}</span></th> -->
|
||||
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("type") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("ref") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("target") }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
|
||||
<tr data-id="{{$item->menu_id}}" data-display_order="{{$item->display_order}}" class="draggable-row">
|
||||
<td class="tb-col">{{ $i++ }}</td>
|
||||
<td class="tb-col">
|
||||
{!! getFieldData("tbl_menuitems", "title", "menu_id", $item->parent_menu) !!}
|
||||
</td>
|
||||
<!-- <td class="tb-col">
|
||||
{!! getFieldData("tbl_menulocations", "title", "menulocation_id", $item->menulocations_id) !!}
|
||||
</td> -->
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="alias-wrapper" data-id="{{$item->menu_id}}">
|
||||
<span class="alias">{{ $item->alias }}</span>
|
||||
<input type="text" class="alias-input d-none" value="{{ $item->alias }}" id="alias_{{$item->menu_id}}" />
|
||||
</div>
|
||||
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
|
||||
</td>
|
||||
<td class="tb-col">{{ $item->type }}</td>
|
||||
<td class="tb-col">{{ $item->ref }}</td>
|
||||
<td class="tb-col">{{ $item->target }}</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('menuitems.show',[$item->menu_id,'menulocation'=>($menulocation)?$menulocation:''])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('menuitems.edit',[$item->menu_id,'menulocation'=>($menulocation)?$menulocation:''])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a href="{{route('menuitems.destroy',[$item->menu_id,'menulocation'=>($menulocation)?$menulocation:''])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push("css")
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push("js")
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
|
||||
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('menuitems.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({
|
||||
buttons: [
|
||||
'copy', 'excel', 'pdf'
|
||||
],
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endpush
|
66
resources/views/crud/generated/menuitems/list.blade.php
Normal file
66
resources/views/crud/generated/menuitems/list.blade.php
Normal file
@ -0,0 +1,66 @@
|
||||
<table class="table dataTable" id="tbl_menuitems" data-url="{{ route('menuitems.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("parent_menu") }}</span></th>
|
||||
<!-- <th class="tb-col"><span class="overline-title">{{ label("menulocations_id") }}</span></th> -->
|
||||
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("type") }}</span></th>
|
||||
<!-- <th class="tb-col"><span class="overline-title">{{ label("ref") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("target") }}</span></th> -->
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
|
||||
<tr data-id="{{$item->menu_id}}" data-display_order="{{$item->display_order}}" class="draggable-row">
|
||||
<td class="tb-col">{{ $i++ }}</td>
|
||||
<td class="tb-col">
|
||||
{!! getFieldData("tbl_menuitems", "title", "menu_id", $item->parent_menu) !!}
|
||||
</td>
|
||||
<!-- <td class="tb-col">
|
||||
{!! getFieldData("tbl_menulocations", "title", "menulocation_id", $item->menulocations_id) !!}
|
||||
</td> -->
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="alias-wrapper" data-id="{{$item->menu_id}}">
|
||||
<span class="alias">{{ $item->alias }}</span>
|
||||
<input type="text" class="alias-input d-none" value="{{ $item->alias }}" id="alias_{{$item->menu_id}}" />
|
||||
</div>
|
||||
<span class="badge badge-soft-primary change-alias-badge">change alias</span>
|
||||
</td>
|
||||
<td class="tb-col">{{ $item->type }}</td>
|
||||
<!-- <td class="tb-col">{{ $item->ref }}</td>
|
||||
<td class="tb-col">{{ $item->target }}</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('menuitems.show',[$item->menu_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('menuitems.edit',[$item->menu_id,'menulocation'=>($menulocation)?$menulocation:''])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a href="{{route('menuitems.destroy',[$item->menu_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
39
resources/views/crud/generated/menuitems/show.blade.php
Normal file
39
resources/views/crud/generated/menuitems/show.blade.php
Normal file
@ -0,0 +1,39 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2><?php echo label('View Details'); ?></h2>
|
||||
<?php createButton("btn-primary btn-cancel", "", "Back to List", route('menuitems.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
|
||||
|
||||
|
||||
<p><b>Parent Menu : </b> <span>{{$data->parent_menu}}</span></p>
|
||||
<p><b>Menulocations Id : </b> <span>{{$data->menulocations_id}}</span></p>
|
||||
<p><b>Title : </b> <span>{{$data->title}}</span></p>
|
||||
<p><b>Alias : </b> <span>{{$data->alias}}</span></p>
|
||||
<p><b>Type : </b> <span>{{$data->type}}</span></p>
|
||||
<p><b>Ref : </b> <span>{{$data->ref}}</span></p>
|
||||
<p><b>Target : </b> <span>{{$data->target}}</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>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,13 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header'>
|
||||
<h2 class="">{{ label('Add Menulocations') }}</h2>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{route('menulocations.store')}}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row"><div class="col-lg-6">{{createText("title","title","Title")}}
|
||||
</div> <br> <div class="col-md-12"><?php createButton("btn-primary btn-store","","Submit"); ?>
|
||||
</div> </form></div></div>
|
||||
@endsection
|
13
resources/views/crud/generated/menulocations/edit.blade.php
Normal file
13
resources/views/crud/generated/menulocations/edit.blade.php
Normal file
@ -0,0 +1,13 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header'>
|
||||
<h2 class="">{{ label('Edit Menulocations') }}</h2>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{route('menulocations.update',[$data->menulocation_id])}}" id="updateCustomForm" method="POST" >
|
||||
@csrf <input type=hidden name='menulocation_id' value='{{$data->menulocation_id}}'/>
|
||||
<div class="row"><div class="col-lg-6">{{createText("title","title","Title",'',$data->title)}}
|
||||
</div> <div class="col-md-12"><?php createButton("btn-primary btn-update","","Submit"); ?>
|
||||
</div> </form></div></div>
|
||||
@endsection
|
198
resources/views/crud/generated/menulocations/index.blade.php
Normal file
198
resources/views/crud/generated/menulocations/index.blade.php
Normal file
@ -0,0 +1,198 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label("Menulocations List") }}</h2>
|
||||
<a href="{{ route('menulocations.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable" id="tbl_menulocations" data-url="{{ route('menulocations.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("alias") }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span
|
||||
class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
|
||||
<tr data-id="{{$item->menulocation_id}}" data-display_order="{{$item->display_order}}" class="draggable-row">
|
||||
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="alias-wrapper" data-id="{{$item->menulocation_id}}">
|
||||
<span class="alias">{{ $item->alias }}</span>
|
||||
<input type="text" class="alias-input d-none" value="{{ $item->alias }}" id="alias_{{$item->menulocation_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('menulocations.show',[$item->menulocation_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('menulocations.edit',[$item->menulocation_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a href="{{route('menulocations.destroy',[$item->menulocation_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push("css")
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push("js")
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('menulocations.updatealias') }}";
|
||||
var data = {
|
||||
articleId: articleId,
|
||||
newAlias: newAlias
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: data,
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Switch to editing state
|
||||
aliasSpan.hide();
|
||||
aliasInput.show().focus();
|
||||
$(this).addClass('editing').text('Save Alias');
|
||||
}
|
||||
});
|
||||
var mytable = $(".dataTable").DataTable({
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete=false;
|
||||
}
|
||||
});
|
||||
});
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endpush
|
||||
|
43
resources/views/crud/generated/menulocations/show.blade.php
Normal file
43
resources/views/crud/generated/menulocations/show.blade.php
Normal file
@ -0,0 +1,43 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="nk-content">
|
||||
<div class="container">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block">
|
||||
<div class="offcanvas-body" data-simplebar>
|
||||
<div class="nk-block-head-content w-100">
|
||||
<div class="d-flex justify-content-between pb-4">
|
||||
|
||||
<h2>{{ label('Menulocations Details') }}</h2>
|
||||
{{-- <button class="btn btn-primary print_pdf">Print PDF</button> --}}
|
||||
</div>
|
||||
<div class="card w-100">
|
||||
<div class="p-5">
|
||||
|
||||
<div class="card-head">
|
||||
<h2 class="text-center">{{$data['title']}}</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p><b>Title : </b> <span>{{$data->title}}</span></p><p><b>Alias : </b> <span>{{$data->alias}}</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>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>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
81
resources/views/crud/generated/settings/create.blade.php
Normal file
81
resources/views/crud/generated/settings/create.blade.php
Normal file
@ -0,0 +1,81 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Add Settings') }}</h2>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('settings.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{ route('settings.store') }}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-6">{{ createText('title', 'title', 'Title') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createTextarea('description', 'description ckeditor-classic', 'Description') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('url1', 'url1', 'Url1') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('url2', 'url2', 'Url2') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('email', 'email', 'Email') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('phone', 'phone', 'Phone') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('working_days', 'working_days', 'Working Days') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('working_hours', 'working_hours', 'Working Hours') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('leave_days', 'leave_days', 'Leave days') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('secondary_phone', 'secondary_phone', 'Secondary Phone') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('location', 'location', 'Location') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('google_map', 'google_map ', 'Google Map') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('fb', 'fb', 'Fb') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('insta', 'insta', 'Insta') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('twitter', 'twitter', 'Twitter') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('tiktok', 'tiktok', 'Tiktok') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('youtube', 'youtube', 'Youtube') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('primary_logo', 'Primary Logo') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('secondary_logo', 'Secondary Logo') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('icon', 'Icon') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('og_image', 'Og Image') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('no_image', 'No Image') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('copyright_text', 'copyright_text', 'Copyright Text') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createTextarea('content1', 'content1 ckeditor-classic', 'Content1') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createTextarea('content2', 'content2 ckeditor-classic', 'Content2') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createTextarea('content3', 'content3 ckeditor-classic', 'Content3') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('seo_title', 'seo_title', 'Seo Title') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_description', 'seo_description ', 'Seo Description') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('seo_keywords', 'seo_keywords ', 'Seo Keywords') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', 'og_tags ', 'Og Tags') }}
|
||||
</div> <br>
|
||||
<div class="col-md-12"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('settings.index')); ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
245
resources/views/crud/generated/settings/edit.blade.php
Normal file
245
resources/views/crud/generated/settings/edit.blade.php
Normal file
@ -0,0 +1,245 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-12">
|
||||
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
||||
<h4 class="mb-sm-0">Website Settings</h4>
|
||||
|
||||
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
|
||||
<li class="breadcrumb-item active">Website Settings</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
<!-- New Design -->
|
||||
|
||||
<form action="{{ route('settings.update', [$data->setting_id]) }}" id="updateCustomForm" method="POST">
|
||||
@csrf <input type=hidden name='setting_id' value='{{ $data->setting_id }}' />
|
||||
<div class="chat-wrapper d-lg-flex mx-n4 mt-n4 gap-1 p-1">
|
||||
<div class="file-manager-sidebar">
|
||||
<div class="d-flex flex-column h-100 p-3">
|
||||
|
||||
|
||||
<div class="nav nav-pills flex-column nav-pills-tab custom-verti-nav-pills text-center" role="tablist"
|
||||
aria-orientation="vertical">
|
||||
<a class="nav-link active show" id="settings" data-bs-toggle="pill" href="#custom-v-pills-home"
|
||||
role="tab" aria-controls="custom-v-pills-home" aria-selected="true">
|
||||
<i class="ri-home-4-line d-block fs-20 mb-1"></i> Settings
|
||||
</a>
|
||||
<a class="nav-link" id="address" data-bs-toggle="pill" href="#custom-v-pills-address" role="tab"
|
||||
aria-controls="custom-v-pills-address" aria-selected="false">
|
||||
<i class="ri-map-pin-2-line d-block fs-20 mb-1"></i> Address
|
||||
</a>
|
||||
<a class="nav-link" id="logo" data-bs-toggle="pill" href="#custom-v-pills-logo" role="tab"
|
||||
aria-controls="custom-v-pills-logo" aria-selected="false">
|
||||
<i class="ri-image-2-line d-block fs-20 mb-1"></i> Logo/Images
|
||||
</a>
|
||||
<a class="nav-link" id="socialmedia" data-bs-toggle="pill" href="#custom-v-pills-social" role="tab"
|
||||
aria-controls="custom-v-pills-social" aria-selected="false">
|
||||
<i class="ri-apps-2-line d-block fs-20 mb-1"></i> Social Media
|
||||
</a>
|
||||
<a class="nav-link" id="seo" data-bs-toggle="pill" href="#custom-v-pills-seo" role="tab"
|
||||
aria-controls="custom-v-pills-seo" aria-selected="false">
|
||||
<i class="ri-global-line d-block fs-20 mb-1"></i> SEO
|
||||
</a>
|
||||
<a class="nav-link" id="seo" data-bs-toggle="pill" href="#custom-v-pills-security" role="tab"
|
||||
aria-controls="custom-v-pills-seo" aria-selected="false">
|
||||
<i class="ri-global-line d-block fs-20 mb-1"></i> Security
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="file-manager-content w-100 p-3 py-0">
|
||||
<div class="mx-n3 file-manager-content-scroll px-4 pt-4" data-simplebar>
|
||||
|
||||
<div>
|
||||
<div class="d-flex align-items-center border-bottom border-bottom-dashed mb-3">
|
||||
<h5 class="flex-grow-1 fs-16 mb-0" id="filetype-title"></h5>
|
||||
<div class="flex-shrink-0">
|
||||
<?php createButton('btn-primary btn-update', '', 'Submit'); ?>
|
||||
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('settings.index')); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-content text-muted mt-lg-0 mt-3">
|
||||
<div class="tab-pane fade active show" id="custom-v-pills-home" role="tabpanel"
|
||||
aria-labelledby="custom-v-pills-home-tab">
|
||||
|
||||
<div>
|
||||
{{ createText('title', 'title', 'Page Title', '', $data->title) }}
|
||||
<h5 class="fs-14 text-muted mb-3 mt-2">Parmalink: <a href="<?php echo env('APP_URL'); ?>"
|
||||
target="_blank"><?php echo env('APP_URL'); ?></a> </h5>
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextarea('description', 'description', 'Description', $data->description) }}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
{{ createText('working_days', 'working_days', 'Working days', '', $data->working_days) }}
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
{{ createText('working_hours', 'working_hours', 'Working Hours', '', $data->working_hours) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
{{ createText('leave_days', 'leave_days', 'Leave Days', '', $data->leave_days) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextarea('content1', 'content1', 'Content1', $data->content1) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextarea('content2', 'content2', 'Content2', $data->content2) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextarea('content3', 'content3', 'Content3', $data->content3) }}
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
{{ createText('copyright_text', 'copyright_text', 'Copyright', '', $data->copyright_text) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--end tab-pane-->
|
||||
<div class="tab-pane fade" id="custom-v-pills-address" role="tabpanel"
|
||||
aria-labelledby="custom-v-pills-address-tab">
|
||||
<div class="d-flex mb-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">{{ createText('url1', 'url1', 'Url 1', '', $data->url1) }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('url2', 'url2', 'Url 2', '', $data->url2) }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('email', 'email', 'Email', '', $data->email) }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('phone', 'phone', 'Phone', '', $data->phone) }}
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
{{ createText('secondary_phone', 'secondary_phone', 'Secondary Phone', '', $data->secondary_phone) }}
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
{{ createText('location', 'location', 'Office Location', '', $data->location) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextArea('google_map', '', 'Google Map', $data->google_map) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--end tab-pane-->
|
||||
<div class="tab-pane fade" id="custom-v-pills-logo" role="tabpanel"
|
||||
aria-labelledby="custom-v-pills-logo-tab">
|
||||
<div class="d-flex mb-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 border-bottom border-bottom-dashed pb-2">
|
||||
<div class="card card-height-100 border-primary bg-opacity-10 pb-2 shadow">
|
||||
{{ createImageInput('primary_logo', 'Primary Logo', '', $data->primary_logo) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 border-bottom border-bottom-dashed pb-2">
|
||||
<div class="card card-height-100 border-primary bg-opacity-10 pb-2 shadow">
|
||||
{{ createImageInput('secondary_logo', 'Secondary Logo', '', $data->secondary_logo) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 border-bottom border-bottom-dashed pb-2">
|
||||
<div class="card card-height-100 border-primary bg-opacity-10 pb-2 shadow">
|
||||
{{ createImageInput('thumb', 'Thumb', '', $data->thumb) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 border-bottom border-bottom-dashed pb-2">
|
||||
<div class="card card-height-100 border-primary bg-opacity-10 pb-2 shadow">
|
||||
{{ createImageInput('icon', 'Icon', '', $data->icon) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 border-bottom border-bottom-dashed pb-2">
|
||||
<div class="card card-height-100 border-primary bg-opacity-10 pb-2 shadow">
|
||||
{{ createImageInput('og_image', 'Og Image', '', $data->og_image) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 border-bottom border-bottom-dashed pb-2">
|
||||
<div class="card card-height-100 border-primary bg-opacity-10 pb-2 shadow">
|
||||
{{ createImageInput('no_image', 'No Image', '', $data->no_image) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--end tab-pane-->
|
||||
<div class="tab-pane fade" id="custom-v-pills-social" role="tabpanel"
|
||||
aria-labelledby="custom-v-pills-social-tab">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">{{ createText('fb', 'fb', 'Facebook', '', $data->fb) }}
|
||||
</div>
|
||||
<div class="col-lg-4"> {{ createText('insta', 'insta', 'Instagram', '', $data->insta) }}
|
||||
</div>
|
||||
<div class="col-lg-4"> {{ createText('twitter', 'twitter', 'Twitter', '', $data->twitter) }}
|
||||
</div>
|
||||
<div class="col-lg-4"> {{ createText('tiktok', 'tiktok', 'Tiktok', '', $data->tiktok) }}
|
||||
</div>
|
||||
<div class="col-lg-4"> {{ createText('youtube', 'youtube', 'Youtube', '', $data->youtube) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end tab-pane-->
|
||||
<div class="tab-pane fade" id="custom-v-pills-seo" role="tabpanel"
|
||||
aria-labelledby="custom-v-pills-seo-tab">
|
||||
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextArea('seo_description', '', 'Seo Description', $data->seo_description) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextArea('seo_keywords', '', 'Seo Keywords', $data->seo_keywords) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('og_tags', '', 'Og Tags', $data->og_tags) }}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end tab-pane-->
|
||||
<!--end tab-pane-->
|
||||
<div class="tab-pane fade" id="custom-v-pills-security" role="tabpanel"
|
||||
aria-labelledby="custom-v-pills-security-tab">
|
||||
|
||||
<div class="col-lg-12 text-danger pb-2">
|
||||
First of all, add Site at V2 Bibhuti Solutions.
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextArea('recaptcha_site_key', '', 'RECAPTCHA_SITE_KEY', $data->recaptcha_site_key) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{ createPlainTextArea('recaptcha_secret_key', '', 'RECAPTCHA_SECRET_KEY', $data->recaptcha_secret_key) }}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end tab-pane-->
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- /New Design -->
|
||||
@endsection
|
263
resources/views/crud/generated/settings/index.blade.php
Normal file
263
resources/views/crud/generated/settings/index.blade.php
Normal file
@ -0,0 +1,263 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label("Settings List") }}</h2>
|
||||
<a href="{{ route('settings.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable" id="tbl_settings" data-url="{{ route('settings.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("title") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("url1") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("url2") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("email") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("phone") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("secondary_phone") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("fb") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("insta") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("twitter") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("tiktok") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("primary_logo") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("secondary_logo") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("thumb") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("icon") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("og_image") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("no_image") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("copyright_text") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("content1") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("content2") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("content3") }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span
|
||||
class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
|
||||
<tr data-id="{{$item->setting_id}}" data-display_order="{{$item->display_order}}" class="draggable-row <?php echo ($item->status==0)?"bg-light bg-danger":""; ?>">
|
||||
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">{{ $item->url1 }}</td>
|
||||
<td class="tb-col">{{ $item->url2 }}</td>
|
||||
<td class="tb-col">{{ $item->email }}</td>
|
||||
<td class="tb-col">{{ $item->phone }}</td>
|
||||
<td class="tb-col">{{ $item->secondary_phone }}</td>
|
||||
<td class="tb-col">{{ $item->fb }}</td>
|
||||
<td class="tb-col">{{ $item->insta }}</td>
|
||||
<td class="tb-col">{{ $item->twitter }}</td>
|
||||
<td class="tb-col">{{ $item->tiktok }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->primary_logo) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->secondary_logo) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->thumb) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->icon) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->og_image) }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->no_image) }}</td>
|
||||
<td class="tb-col">{{ $item->copyright_text }}</td>
|
||||
<td class="tb-col">{{ $item->content1 }}</td>
|
||||
<td class="tb-col">{{ $item->content2 }}</td>
|
||||
<td class="tb-col">{{ $item->content3 }}</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('settings.show',[$item->setting_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('settings.edit',[$item->setting_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a href="{{route('settings.toggle',[$item->setting_id])}}" class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
|
||||
<i class="ri-article-fill align-bottom me-2 text-muted"></i> {{ ($item->status==1)?label('Unpublish'):label('Publish') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('settings.destroy',[$item->setting_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push("css")
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push("js")
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('settings.updatealias') }}";
|
||||
var data = {
|
||||
articleId: articleId,
|
||||
newAlias: newAlias
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: data,
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Switch to editing state
|
||||
aliasSpan.hide();
|
||||
aliasInput.show().focus();
|
||||
$(this).addClass('editing').text('Save Alias');
|
||||
}
|
||||
});
|
||||
var mytable = $(".dataTable").DataTable({
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete=false;
|
||||
}
|
||||
});
|
||||
});
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
function confirmToggle(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Proceed',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'GET',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endpush
|
||||
|
29
resources/views/crud/generated/settings/show.blade.php
Normal file
29
resources/views/crud/generated/settings/show.blade.php
Normal file
@ -0,0 +1,29 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2><?php echo label('View Details'); ?></h2>
|
||||
<?php createButton("btn-primary btn-cancel","","Back to List",route('settings.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
|
||||
|
||||
|
||||
<p><b>Title : </b> <span>{{$data->title}}</span></p><p><b>Description : </b> <span>{{$data->description}}</span></p><p><b>Url1 : </b> <span>{{$data->url1}}</span></p><p><b>Url2 : </b> <span>{{$data->url2}}</span></p><p><b>Email : </b> <span>{{$data->email}}</span></p><p><b>Phone : </b> <span>{{$data->phone}}</span></p><p><b>Secondary Phone : </b> <span>{{$data->secondary_phone}}</span></p><p><b>Google Map : </b> <span>{{$data->google_map}}</span></p><p><b>Fb : </b> <span>{{$data->fb}}</span></p><p><b>Insta : </b> <span>{{$data->insta}}</span></p><p><b>Twitter : </b> <span>{{$data->twitter}}</span></p><p><b>Tiktok : </b> <span>{{$data->tiktok}}</span></p><p><b>Primary Logo : </b> <span>{{$data->primary_logo}}</span></p><p><b>Secondary Logo : </b> <span>{{$data->secondary_logo}}</span></p><p><b>Thumb : </b> <span>{{$data->thumb}}</span></p><p><b>Icon : </b> <span>{{$data->icon}}</span></p><p><b>Og Image : </b> <span>{{$data->og_image}}</span></p><p><b>No Image : </b> <span>{{$data->no_image}}</span></p><p><b>Copyright Text : </b> <span>{{$data->copyright_text}}</span></p><p><b>Content1 : </b> <span>{{$data->content1}}</span></p><p><b>Content2 : </b> <span>{{$data->content2}}</span></p><p><b>Content3 : </b> <span>{{$data->content3}}</span></p><p><b>Seo Title : </b> <span>{{$data->seo_title}}</span></p><p><b>Seo Description : </b> <span>{{$data->seo_description}}</span></p><p><b>Seo Keywords : </b> <span>{{$data->seo_keywords}}</span></p><p><b>Og Tags : </b> <span>{{$data->og_tags}}</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>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
|
63
resources/views/crud/settings/ajax-curd.blade.php
Normal file
63
resources/views/crud/settings/ajax-curd.blade.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\GeneralFormController;
|
||||
?>
|
||||
@extends("backend.template")
|
||||
@section("content")
|
||||
|
||||
<div class="nk-content">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Migrations Code Content</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::migrationContent($tableName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Route Code Content</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">
|
||||
{{GeneralFormController::routeContent($tableName, $directoryName)}}
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Model Code</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::modelContent($tableName, $directoryName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Controllers Code</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::controllerContent($tableName, $directoryName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">List File Code</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::listContent($tableName, $directoryName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Create File Code</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::addContent($tableName, $directoryName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Edit File Code</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::editContent($tableName, $directoryName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group"> <label for="exampleFormControlTextarea8" class="form-label">Show File Code</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="exampleFormControlTextarea8" rows="8">{{GeneralFormController::showContent($tableName, $directoryName)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
41
resources/views/crud/template.blade.php
Normal file
41
resources/views/crud/template.blade.php
Normal file
@ -0,0 +1,41 @@
|
||||
@extends('backend.template')
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
{{ label($title . ' List') }}
|
||||
|
||||
<ul class="d-flex">
|
||||
<li>
|
||||
<a href="{{ route($routeName . 'create') }}" class="btn btn-md d-md-none btn-primary" data-bs-toggle="modal" data-bs-target="">
|
||||
<em class="icon ni ni-plus"></em><span>Add</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route($routeName . 'create') }}" class="btn btn-primary d-none d-md-inline-flex">
|
||||
<em class="icon ni ni-plus"></em><span>Add {{ label($translated) }}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="datatable-init table" data-nk-container="table-responsive" id="CustomTable">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">S.N.</span></th>
|
||||
{{ $tableHeader }}
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
{{ $tableRows }}
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
17
resources/views/dashboard.blade.php
Normal file
17
resources/views/dashboard.blade.php
Normal file
@ -0,0 +1,17 @@
|
||||
<x-app-layout>
|
||||
<x-slot name="header">
|
||||
<h2 class="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
|
||||
{{ __('Dashboard') }}
|
||||
</h2>
|
||||
</x-slot>
|
||||
|
||||
<div class="py-12">
|
||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
||||
<div class="bg-white dark:bg-gray-800 overflow-hidden shadow-sm sm:rounded-lg">
|
||||
<div class="p-6 text-gray-900 dark:text-gray-100">
|
||||
{{ __("You're logged in!") }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-app-layout>
|
52
resources/views/pages/login.blade.php
Normal file
52
resources/views/pages/login.blade.php
Normal file
@ -0,0 +1,52 @@
|
||||
@extends("template")
|
||||
@section("content")
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8 col-lg-6 col-xl-5">
|
||||
<div class="card mt-4">
|
||||
|
||||
<div class="card-body p-4">
|
||||
<div class="text-center mt-2">
|
||||
<h5 class="text-primary">Welcome Back !</h5>
|
||||
<p class="text-muted">Sign in to continue to {{env("APP_NAME")}}.</p>
|
||||
</div>
|
||||
<div class="p-2 mt-4">
|
||||
<form action="{{route('login')}}" method="POST">
|
||||
@csrf
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Username</label>
|
||||
<input type="text" class="form-control" id="email" name="email" placeholder="Enter username">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
|
||||
<label class="form-label" for="password-input">Password</label>
|
||||
<div class="position-relative auth-pass-inputgroup mb-3">
|
||||
<input type="password" name="password" class="form-control pe-5 password-input" placeholder="Enter password" id="password-input">
|
||||
<button class="btn btn-link position-absolute end-0 top-0 text-decoration-none text-muted password-addon" type="button" id="password-addon"><i class="ri-eye-fill align-middle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="remember" value="" id="auth-remember-check">
|
||||
<label class="form-check-label" for="auth-remember-check">Remember me</label>
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<button class="btn btn-success w-100" type="submit">Sign In</button>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card body -->
|
||||
</div>
|
||||
<!-- end card -->
|
||||
|
||||
<div class="mt-4 text-center">
|
||||
<p class="mb-0">Don't have an account ? <a href="mailto:contact@bibhutisolutions.com" class="fw-semibold text-primary text-decoration-underline"> Contact Bibhuti Solutions</a> </p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
29
resources/views/profile/edit.blade.php
Normal file
29
resources/views/profile/edit.blade.php
Normal file
@ -0,0 +1,29 @@
|
||||
<x-app-layout>
|
||||
<x-slot name="header">
|
||||
<h2 class="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
|
||||
{{ __('Profile') }}
|
||||
</h2>
|
||||
</x-slot>
|
||||
|
||||
<div class="py-12">
|
||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-6">
|
||||
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
||||
<div class="max-w-xl">
|
||||
@include('profile.partials.update-profile-information-form')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
||||
<div class="max-w-xl">
|
||||
@include('profile.partials.update-password-form')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
||||
<div class="max-w-xl">
|
||||
@include('profile.partials.delete-user-form')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-app-layout>
|
55
resources/views/profile/partials/delete-user-form.blade.php
Normal file
55
resources/views/profile/partials/delete-user-form.blade.php
Normal file
@ -0,0 +1,55 @@
|
||||
<section class="space-y-6">
|
||||
<header>
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __('Delete Account') }}
|
||||
</h2>
|
||||
|
||||
<p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.') }}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<x-danger-button
|
||||
x-data=""
|
||||
x-on:click.prevent="$dispatch('open-modal', 'confirm-user-deletion')"
|
||||
>{{ __('Delete Account') }}</x-danger-button>
|
||||
|
||||
<x-modal name="confirm-user-deletion" :show="$errors->userDeletion->isNotEmpty()" focusable>
|
||||
<form method="post" action="{{ route('profile.destroy') }}" class="p-6">
|
||||
@csrf
|
||||
@method('delete')
|
||||
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __('Are you sure you want to delete your account?') }}
|
||||
</h2>
|
||||
|
||||
<p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.') }}
|
||||
</p>
|
||||
|
||||
<div class="mt-6">
|
||||
<x-input-label for="password" value="{{ __('Password') }}" class="sr-only" />
|
||||
|
||||
<x-text-input
|
||||
id="password"
|
||||
name="password"
|
||||
type="password"
|
||||
class="mt-1 block w-3/4"
|
||||
placeholder="{{ __('Password') }}"
|
||||
/>
|
||||
|
||||
<x-input-error :messages="$errors->userDeletion->get('password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex justify-end">
|
||||
<x-secondary-button x-on:click="$dispatch('close')">
|
||||
{{ __('Cancel') }}
|
||||
</x-secondary-button>
|
||||
|
||||
<x-danger-button class="ml-3">
|
||||
{{ __('Delete Account') }}
|
||||
</x-danger-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-modal>
|
||||
</section>
|
@ -0,0 +1,48 @@
|
||||
<section>
|
||||
<header>
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __('Update Password') }}
|
||||
</h2>
|
||||
|
||||
<p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __('Ensure your account is using a long, random password to stay secure.') }}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<form method="post" action="{{ route('password.update') }}" class="mt-6 space-y-6">
|
||||
@csrf
|
||||
@method('put')
|
||||
|
||||
<div>
|
||||
<x-input-label for="current_password" :value="__('Current Password')" />
|
||||
<x-text-input id="current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
|
||||
<x-input-error :messages="$errors->updatePassword->get('current_password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<x-input-label for="password" :value="__('New Password')" />
|
||||
<x-text-input id="password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
||||
<x-input-error :messages="$errors->updatePassword->get('password')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
|
||||
<x-text-input id="password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
||||
<x-input-error :messages="$errors->updatePassword->get('password_confirmation')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center gap-4">
|
||||
<x-primary-button>{{ __('Save') }}</x-primary-button>
|
||||
|
||||
@if (session('status') === 'password-updated')
|
||||
<p
|
||||
x-data="{ show: true }"
|
||||
x-show="show"
|
||||
x-transition
|
||||
x-init="setTimeout(() => show = false, 2000)"
|
||||
class="text-sm text-gray-600 dark:text-gray-400"
|
||||
>{{ __('Saved.') }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
@ -0,0 +1,64 @@
|
||||
<section>
|
||||
<header>
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __('Profile Information') }}
|
||||
</h2>
|
||||
|
||||
<p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
|
||||
{{ __("Update your account's profile information and email address.") }}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<form id="send-verification" method="post" action="{{ route('verification.send') }}">
|
||||
@csrf
|
||||
</form>
|
||||
|
||||
<form method="post" action="{{ route('profile.update') }}" class="mt-6 space-y-6">
|
||||
@csrf
|
||||
@method('patch')
|
||||
|
||||
<div>
|
||||
<x-input-label for="name" :value="__('Name')" />
|
||||
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full" :value="old('name', $user->name)" required autofocus autocomplete="name" />
|
||||
<x-input-error class="mt-2" :messages="$errors->get('name')" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<x-input-label for="email" :value="__('Email')" />
|
||||
<x-text-input id="email" name="email" type="email" class="mt-1 block w-full" :value="old('email', $user->email)" required autocomplete="username" />
|
||||
<x-input-error class="mt-2" :messages="$errors->get('email')" />
|
||||
|
||||
@if ($user instanceof \Illuminate\Contracts\Auth\MustVerifyEmail && ! $user->hasVerifiedEmail())
|
||||
<div>
|
||||
<p class="text-sm mt-2 text-gray-800 dark:text-gray-200">
|
||||
{{ __('Your email address is unverified.') }}
|
||||
|
||||
<button form="send-verification" class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800">
|
||||
{{ __('Click here to re-send the verification email.') }}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
@if (session('status') === 'verification-link-sent')
|
||||
<p class="mt-2 font-medium text-sm text-green-600 dark:text-green-400">
|
||||
{{ __('A new verification link has been sent to your email address.') }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="flex items-center gap-4">
|
||||
<x-primary-button>{{ __('Save') }}</x-primary-button>
|
||||
|
||||
@if (session('status') === 'profile-updated')
|
||||
<p
|
||||
x-data="{ show: true }"
|
||||
x-show="show"
|
||||
x-transition
|
||||
x-init="setTimeout(() => show = false, 2000)"
|
||||
class="text-sm text-gray-600 dark:text-gray-400"
|
||||
>{{ __('Saved.') }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
22
resources/views/shortcodes/companies.blade.php
Normal file
22
resources/views/shortcodes/companies.blade.php
Normal file
@ -0,0 +1,22 @@
|
||||
<div class="{{$css}}">
|
||||
<div class="row">
|
||||
@php
|
||||
|
||||
$Companies = CCMS::getCompanies();
|
||||
@endphp
|
||||
|
||||
@if ($Companies && count($Companies) > 0)
|
||||
@foreach ($Companies as $Company)
|
||||
<div class="col-md-3">
|
||||
<a href="{{site_url($Company->logo)}}" data-fancybox="gallery1">
|
||||
<img class="img-fluid" src="{{site_url($Company->logo)}}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
|
||||
Company not added or published.
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
22
resources/views/shortcodes/countries.blade.php
Normal file
22
resources/views/shortcodes/countries.blade.php
Normal file
@ -0,0 +1,22 @@
|
||||
<div class="{{$css}}">
|
||||
<div class="row">
|
||||
@php
|
||||
|
||||
$Countries = CCMS::getCountries();
|
||||
@endphp
|
||||
|
||||
@if ($Countries && count($Countries) > 0)
|
||||
@foreach ($Countries as $Country)
|
||||
<div class="col-md-3">
|
||||
<a href="{{site_url($Country->image_thumb)}}" data-fancybox="gallery1">
|
||||
<img class="img-fluid" src="{{site_url($Country->image_thumb)}}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
|
||||
Country not added or published.
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
53
resources/views/shortcodes/demands.blade.php
Normal file
53
resources/views/shortcodes/demands.blade.php
Normal file
@ -0,0 +1,53 @@
|
||||
@if(isset($show))
|
||||
|
||||
<div class="{{$css}}">
|
||||
<div class="row">
|
||||
@php
|
||||
|
||||
$Countries = CCMS::getDemandCountries();
|
||||
@endphp
|
||||
|
||||
@if ($Countries && count($Countries) > 0)
|
||||
@foreach ($Countries as $Country)
|
||||
<div class="col-md-3 text-center">
|
||||
<a href="{{site_url('country/'.$Country->alias)}}">
|
||||
<img class="img-fluid" src="{{site_url($Country->image_thumb)}}" alt="">
|
||||
</a>
|
||||
<a href="{{site_url('country/'.$Country->alias)}}">
|
||||
<p class="custom-text2 mt-3 text-center">{!! $Country->title !!}</p>
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
|
||||
Country not added or published.
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="{{$css}}">
|
||||
<div class="row">
|
||||
@php
|
||||
$JobDemands = CCMS::getPaperDemands();
|
||||
@endphp
|
||||
|
||||
@if ($JobDemands && count($JobDemands) > 0)
|
||||
@foreach ($JobDemands as $JobDemand)
|
||||
<div class="col-md-3 text-center">
|
||||
<a href="{{site_url('demand/'.$JobDemand->alias)}}">
|
||||
<img class="img-fluid" src="{{site_url($JobDemand->thumb)}}" alt="">
|
||||
</a>
|
||||
<a href="{{site_url('demand/'.$JobDemand->alias)}}">
|
||||
<p class="custom-text2 mt-3 text-center">{!! $JobDemand->title !!}</p>
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
|
||||
Country not added or published.
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
41
resources/views/shortcodes/fb_chat.blade.php
Normal file
41
resources/views/shortcodes/fb_chat.blade.php
Normal file
@ -0,0 +1,41 @@
|
||||
<!-- Messenger Chat Plugin Code -->
|
||||
<!--<div id="fb-root"></div>-->
|
||||
<!--<script>(function(d, s, id) {-->
|
||||
<!-- var js, fjs = d.getElementsByTagName(s)[0];-->
|
||||
<!-- if (d.getElementById(id)) return;-->
|
||||
<!-- js = d.createElement(s); js.id = id;-->
|
||||
<!-- js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js#xfbml=1&version=v2.12&autoLogAppEvents=1';-->
|
||||
<!-- fjs.parentNode.insertBefore(js, fjs);-->
|
||||
<!--}(document, 'script', 'facebook-jssdk'));</script>-->
|
||||
<!-- Your customer chat code -->
|
||||
<!--<div class="fb-customerchat"-->
|
||||
<!-- attribution=install_email-->
|
||||
<!-- page_id="106003908524549">-->
|
||||
<!--</div>-->
|
||||
<!-- Messenger Chat Plugin Code -->
|
||||
<div id="fb-root"></div>
|
||||
<!-- Your Chat Plugin code -->
|
||||
<div id="fb-customer-chat" class="fb-customerchat">
|
||||
</div>
|
||||
<script>
|
||||
var chatbox = document.getElementById('fb-customer-chat');
|
||||
chatbox.setAttribute("page_id", "<?php echo $page_id; ?>");
|
||||
chatbox.setAttribute("attribution", "biz_inbox");
|
||||
</script>
|
||||
<!-- Your SDK code -->
|
||||
<script>
|
||||
window.fbAsyncInit = function() {
|
||||
FB.init({
|
||||
xfbml: true,
|
||||
version: 'v12.0'
|
||||
});
|
||||
};
|
||||
(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.src = 'https://connect.facebook.net/en_GB/sdk/xfbml.customerchat.js';
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
</script>
|
3
resources/views/shortcodes/form.blade.php
Normal file
3
resources/views/shortcodes/form.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php $alias=str_replace("&quod;","",$alias); ?>
|
||||
<?php $alias=str_replace("'","",$alias); ?>
|
||||
{{CCMS::showForm($alias)}}
|
24
resources/views/shortcodes/gallery.blade.php
Normal file
24
resources/views/shortcodes/gallery.blade.php
Normal file
@ -0,0 +1,24 @@
|
||||
<div class="{{$css}}">
|
||||
<div class="row">
|
||||
@php
|
||||
$alias = htmlspecialchars_decode($alias);
|
||||
$Photos = CCMS::getGalleryByAlias($alias);
|
||||
@endphp
|
||||
|
||||
@if ($Photos && count($Photos) > 0)
|
||||
@foreach ($Photos as $Photo)
|
||||
<div class="col-md-3">
|
||||
<a href="{{site_url($Photo->thumb)}}" data-fancybox="gallery1">
|
||||
<img class="img-fluid" src="{{site_url($Photo->thumb)}}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
@if (!$Photos)
|
||||
This gallery with alias {!! $alias !!} does not exist.
|
||||
@else
|
||||
No photos available in the gallery.
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
35
resources/views/shortcodes/teams.blade.php
Normal file
35
resources/views/shortcodes/teams.blade.php
Normal file
@ -0,0 +1,35 @@
|
||||
<div class="{{$css}}">
|
||||
<div class="">
|
||||
@php
|
||||
$branch = trim($branch, '"');
|
||||
if(isset($branch) && $branch!="all"){
|
||||
$Teams=CCMS::getTeamsByBranch($branch);
|
||||
}
|
||||
else
|
||||
{
|
||||
$Teams=CCMS::getTeams($branch);
|
||||
}
|
||||
@endphp
|
||||
<div class="row" id="teams">
|
||||
@if (isset($Teams) && count($Teams) > 0)
|
||||
@foreach ($Teams as $Team)
|
||||
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
|
||||
<div class="our-team">
|
||||
<div class="picture">
|
||||
<img src="{!! site_url($Team->thumb)!!}" class=" card-img-top border border-thin" alt="{!! $Team->title!!}">
|
||||
</div>
|
||||
<div class="team-content">
|
||||
<h3 class="name">{!! $Team->title!!}</h3>
|
||||
<h4 class="title">{!! $Team->designation!!}</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
Country not added or published.
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@push("js")
|
||||
@endpush
|
56
resources/views/shortcodes/testimonials.blade.php
Normal file
56
resources/views/shortcodes/testimonials.blade.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
if (isset($branch)) {
|
||||
if ($branch != "all") {
|
||||
$Testi = CCMS::getTestimonialsByBranchAlias($branch);
|
||||
} else {
|
||||
$Testi = CCMS::getTestimonials();
|
||||
}
|
||||
} else {
|
||||
$Testi = CCMS::getTestimonials();
|
||||
}
|
||||
if (isset($layout)) {
|
||||
?>
|
||||
<?php foreach ($Testi as $testimo) : ?>
|
||||
|
||||
<div class="row pb-5 mb-10" style="border-bottom: 1px solid;">
|
||||
<div class="col-12 txt-p-jssfy">
|
||||
<h6><?php echo $testimo->by; ?></h6>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<img src="<?php echo site_url($testimo->image); ?>" alt="<?php echo $testimo->by; ?>" class="logo">
|
||||
</div>
|
||||
<div class="col-8 txt-p-jssfy">
|
||||
<i class="quote-left fas fa-quote-left"></i>
|
||||
<?php echo Str::words($testimo->text, 30, " ..."); ?> <i class="quote-right fas fa-quote-right"></i>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endforeach; ?>
|
||||
<?php
|
||||
|
||||
|
||||
} else {
|
||||
?>
|
||||
<div class="swiper-container mid-slider items" data-perview="3">
|
||||
|
||||
<div class="swiper-wrapper">
|
||||
<?php foreach ($Testi as $testimo) : ?>
|
||||
<div class="swiper-slide slide-center item">
|
||||
<div class="row card">
|
||||
<div class="col-12 txt-p-jssfy">
|
||||
<div class="cntr-img"><img src="<?php echo site_url($testimo->image); ?>" alt="<?php echo $testimo->by; ?>" class="logo"></div>
|
||||
<i class="quote-left fas fa-quote-left"></i>
|
||||
<?php echo Str::words($testimo->text, 30, " ..."); ?> <i class="quote-right fas fa-quote-right"></i>
|
||||
<h6><?php echo $testimo->by; ?></h6>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
}
|
||||
?>
|
26
resources/views/shortcodes/visaposts.blade.php
Normal file
26
resources/views/shortcodes/visaposts.blade.php
Normal file
@ -0,0 +1,26 @@
|
||||
<div class="swiper-container mid-slider items" data-perview="3">
|
||||
|
||||
<div class="swiper-wrapper">
|
||||
<?php
|
||||
if (isset($branch)) {
|
||||
if ($branch != "all") {
|
||||
$Testi = CCMS::getVisasByBranchAlias($branch);
|
||||
} else {
|
||||
$Testi = CCMS::getVisas();
|
||||
}
|
||||
} else {
|
||||
$Testi = CCMS::getVisas();
|
||||
}
|
||||
foreach ($Testi as $testimo) : ?>
|
||||
<div class="swiper-slide slide-center item">
|
||||
<div class="row card">
|
||||
<div class="col-12 txt-p-cntr">
|
||||
<img src="<?php echo site_url($testimo->image); ?>" alt="<?php echo $testimo->title; ?>" class="img-responsive" />
|
||||
<h6><?php echo $testimo->title; ?></h6>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
128
resources/views/template.blade.php
Normal file
128
resources/views/template.blade.php
Normal file
@ -0,0 +1,128 @@
|
||||
<!doctype html>
|
||||
<html lang="en" data-layout="vertical" data-topbar="light" data-sidebar="dark" data-sidebar-size="lg" data-sidebar-image="none" data-preloader="disable">
|
||||
|
||||
|
||||
<!-- Mirrored from themesbrand.com/velzon/html/default/auth-signin-basic.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 15 Mar 2023 04:09:37 GMT -->
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<title>Sign In | {{env("APP_NAME")}} - Admin & Dashboard</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta content="{{env('APP_NAME')}} Admin & Dashboard" name="description" />
|
||||
<meta content="Bibhuti" name="author" />
|
||||
<!-- App favicon -->
|
||||
<link rel="shortcut icon" href="assets/images/favicon.ico">
|
||||
|
||||
<!-- Layout config Js -->
|
||||
<script src="assets/js/layout.js"></script>
|
||||
<!-- Bootstrap Css -->
|
||||
<link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
|
||||
<!-- Icons Css -->
|
||||
<link href="assets/css/icons.min.css" rel="stylesheet" type="text/css" />
|
||||
<!-- App Css-->
|
||||
<link href="assets/css/app.min.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ asset('vendor/laravel-filemanager/css/lfm.css') }}">
|
||||
|
||||
|
||||
<!-- custom Css-->
|
||||
<link href="assets/css/custom.min.css" rel="stylesheet" type="text/css" />
|
||||
<style>
|
||||
.auth-one-bg .bg-overlay {
|
||||
background: linear-gradient(to right, #bf2628, #b9070a);
|
||||
opacity: .9;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="auth-page-wrapper pt-5">
|
||||
<!-- auth page bg -->
|
||||
<div class="auth-one-bg-position auth-one-bg" id="auth-particles">
|
||||
<div class="bg-overlay"></div>
|
||||
|
||||
<div class="shape">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1440 120">
|
||||
<path d="M 0,36 C 144,53.6 432,123.2 720,124 C 1008,124.8 1296,56.8 1440,40L1440 140L0 140z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- auth page content -->
|
||||
<div class="auth-page-content">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="text-center mt-sm-5 mb-4 text-white-50">
|
||||
<div>
|
||||
<a href="index.html" class="d-inline-block auth-logo">
|
||||
<img src="assets/images/logo-light.png" alt="" height="120">
|
||||
</a>
|
||||
</div>
|
||||
<p class="mt-3 fs-15 fw-medium">{{env('APP_NAME')}} Admin & Dashboard</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end row -->
|
||||
|
||||
@yield("content")
|
||||
<!-- end row -->
|
||||
</div>
|
||||
<!-- end container -->
|
||||
</div>
|
||||
<!-- end auth page content -->
|
||||
|
||||
<!-- footer -->
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="text-center">
|
||||
<p class="mb-0 text-muted">©
|
||||
<script>
|
||||
document.write(new Date().getFullYear())
|
||||
</script> BIB-CCms Developed with <i class="mdi mdi-heart text-danger"></i> by <a href="https://bibhutisolutions.com/" target="_blank">Bibhuti Solutions</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!-- end Footer -->
|
||||
</div>
|
||||
<!-- end auth-page-wrapper -->
|
||||
|
||||
<!-- JAVASCRIPT -->
|
||||
<script src="assets/libs/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="assets/libs/simplebar/simplebar.min.js"></script>
|
||||
<script src="assets/libs/node-waves/waves.min.js"></script>
|
||||
<script src="assets/libs/feather-icons/feather.min.js"></script>
|
||||
<script src="assets/js/pages/plugins/lord-icon-2.1.0.js"></script>
|
||||
<script src="assets/js/plugins.js"></script>
|
||||
<script src="{{ asset('vendor/laravel-filemanager/js/lfm.js') }}"></script>
|
||||
<!-- particles js -->
|
||||
<script src="assets/libs/particles.js/particles.js"></script>
|
||||
<!-- particles app js -->
|
||||
<script src="assets/js/pages/particles.app.js"></script>
|
||||
<!-- password-addon init -->
|
||||
<script src="assets/js/pages/password-addon.init.js"></script>
|
||||
<script>
|
||||
var imgTags = document.getElementsByTagName('img');
|
||||
for (var i = 0; i < imgTags.length; i++) {
|
||||
var imgTag = imgTags[i];
|
||||
if (typeof imgTag.onerror === 'function') {
|
||||
imgTag.onerror = function() {
|
||||
console.log('Error loading image: ' + this.src);
|
||||
this.src="{{site_url(SITEVARS->no_image)}}";
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
|
||||
<!-- Mirrored from themesbrand.com/velzon/html/default/auth-signin-basic.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 15 Mar 2023 04:09:37 GMT -->
|
||||
|
||||
</html>
|
77
resources/views/vendor/installer/environment.blade.php
vendored
Normal file
77
resources/views/vendor/installer/environment.blade.php
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
@extends('vendor.installer.layouts.master')
|
||||
|
||||
@section('title', trans('installer_messages.environment.title'))
|
||||
@section('style')
|
||||
<link href="{{ asset('installer/froiden-helper/helper.css') }}" rel="stylesheet"/>
|
||||
<style>
|
||||
.form-control{
|
||||
height: 14px;
|
||||
width: 100%;
|
||||
}
|
||||
.has-error{
|
||||
color: red;
|
||||
}
|
||||
.has-error input{
|
||||
color: black;
|
||||
border:1px solid red;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
@section('container')
|
||||
<form method="post" action="{{ route('LaravelInstaller::environmentSave') }}" id="env-form">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Hostname</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="hostname" class="form-control" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Username</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="username" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Password</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Database</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="database" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="buttons">
|
||||
<button class="button" onclick="checkEnv();return false">
|
||||
{{ trans('installer_messages.next') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
function checkEnv() {
|
||||
$.easyAjax({
|
||||
url: "{!! route('LaravelInstaller::environmentSave') !!}",
|
||||
type: "GET",
|
||||
data: $("#env-form").serialize(),
|
||||
container: "#env-form",
|
||||
messagePosition: "inline"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@stop
|
||||
@section('scripts')
|
||||
<script src="{{ asset('installer/js/jQuery-2.2.0.min.js') }}"></script>
|
||||
<script src="{{ asset('installer/froiden-helper/helper.js')}}"></script>
|
||||
<script>
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endsection
|
9
resources/views/vendor/installer/finished.blade.php
vendored
Normal file
9
resources/views/vendor/installer/finished.blade.php
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
@extends('vendor.installer.layouts.master')
|
||||
|
||||
@section('title', trans('installer_messages.final.title'))
|
||||
@section('container')
|
||||
<p class="paragraph" style="text-align: center;">{{ session('message')['message'] }}</p>
|
||||
<div class="buttons">
|
||||
<a href="{{ url('/') }}" class="button">{{ trans('installer_messages.final.exit') }}</a>
|
||||
</div>
|
||||
@stop
|
43
resources/views/vendor/installer/layouts/master.blade.php
vendored
Normal file
43
resources/views/vendor/installer/layouts/master.blade.php
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>{{ trans('installer_messages.title') }}</title>
|
||||
<link rel="icon" type="image/png" href="{{ asset('installer/img/favicon/favicon-16x16.png') }}" sizes="16x16"/>
|
||||
<link rel="icon" type="image/png" href="{{ asset('installer/img/favicon/favicon-32x32.png') }}" sizes="32x32"/>
|
||||
<link rel="icon" type="image/png" href="{{ asset('installer/img/favicon/favicon-96x96.png') }}" sizes="96x96"/>
|
||||
|
||||
|
||||
<link href="{{ asset('installer/css/style.min.css') }}" rel="stylesheet"/>
|
||||
@yield('style')
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="master">
|
||||
<div class="box">
|
||||
<div class="header">
|
||||
<img src="{{ asset('/logo/knap.png') }}" height="40px" alt="">
|
||||
<h1 class="header__title">@yield('title')</h1>
|
||||
</div>
|
||||
<ul class="step">
|
||||
<li class="step__divider"></li>
|
||||
<li class="step__item {{ isActive('LaravelInstaller::final') }}"><i class="step__icon database"></i></li>
|
||||
<li class="step__divider"></li>
|
||||
<li class="step__item {{ isActive('LaravelInstaller::permissions') }}"><i class="step__icon permissions"></i></li>
|
||||
<li class="step__divider"></li>
|
||||
<li class="step__item {{ isActive('LaravelInstaller::requirements') }}"><i class="step__icon requirements"></i></li>
|
||||
<li class="step__divider"></li>
|
||||
<li class="step__item {{ isActive('LaravelInstaller::environment') }}"><i class="step__icon update"></i></li>
|
||||
<li class="step__divider"></li>
|
||||
<li class="step__item {{ isActive('LaravelInstaller::welcome') }}"><i class="step__icon welcome"></i></li>
|
||||
<li class="step__divider"></li>
|
||||
</ul>
|
||||
<div class="main">
|
||||
@yield('container')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
@yield('scripts')
|
||||
</html>
|
29
resources/views/vendor/installer/permissions.blade.php
vendored
Normal file
29
resources/views/vendor/installer/permissions.blade.php
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
@extends('vendor.installer.layouts.master')
|
||||
|
||||
@section('title', trans('installer_messages.permissions.title'))
|
||||
@section('container')
|
||||
@if (isset($permissions['errors']))
|
||||
<div class="alert alert-danger">Please fix the below error and the click {{ trans('installer_messages.checkPermissionAgain') }}</div>
|
||||
@endif
|
||||
<ul class="list">
|
||||
@foreach($permissions['permissions'] as $permission)
|
||||
<li class="list__item list__item--permissions {{ $permission['isSet'] ? 'success' : 'error' }}">
|
||||
{{ $permission['folder'] }}<span>{{ $permission['permission'] }}</span>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="buttons">
|
||||
@if ( ! isset($permissions['errors']))
|
||||
<a class="button" href="{{ route('LaravelInstaller::database') }}">
|
||||
{{ trans('installer_messages.next') }}
|
||||
</a>
|
||||
@else
|
||||
<a class="button" href="javascript:window.location.href='';">
|
||||
{{ trans('installer_messages.checkPermissionAgain') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@stop
|
20
resources/views/vendor/installer/requirements.blade.php
vendored
Normal file
20
resources/views/vendor/installer/requirements.blade.php
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
@extends('vendor.installer.layouts.master')
|
||||
|
||||
@section('title', trans('installer_messages.requirements.title'))
|
||||
@section('container')
|
||||
<ul class="list">
|
||||
<li class="list__item {{ $phpSupportInfo['supported'] ? 'success' : 'error' }}">PHP Version >= {{ $phpSupportInfo['minimum'] }}</li>
|
||||
|
||||
@foreach($requirements['requirements'] as $extention => $enabled)
|
||||
<li class="list__item {{ $enabled ? 'success' : 'error' }}">{{ $extention }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
@if ( ! isset($requirements['errors']) && $phpSupportInfo['supported'] == 'success')
|
||||
<div class="buttons">
|
||||
<a class="button" href="{{ route('LaravelInstaller::permissions') }}">
|
||||
{{ trans('installer_messages.next') }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
@stop
|
9
resources/views/vendor/installer/welcome.blade.php
vendored
Normal file
9
resources/views/vendor/installer/welcome.blade.php
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
@extends('vendor.installer.layouts.master')
|
||||
|
||||
@section('title', trans('installer_messages.welcome.title'))
|
||||
@section('container')
|
||||
<p class="paragraph" style="text-align: center;">{{ trans('installer_messages.welcome.message') }}</p>
|
||||
<div class="buttons">
|
||||
<a href="{{ route('LaravelInstaller::environment') }}" class="button">{{ trans('installer_messages.next') }}</a>
|
||||
</div>
|
||||
@stop
|
104
resources/views/vendor/laravel-filemanager/crop.blade.php
vendored
Normal file
104
resources/views/vendor/laravel-filemanager/crop.blade.php
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
<div class="row no-gutters">
|
||||
<div class="col-xl-8">
|
||||
<div class="crop-container">
|
||||
<img src="{{ $img->url . '?timestamp=' . $img->time }}" class="img img-responsive">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-4">
|
||||
<div class="text-center">
|
||||
<div class="img-preview center-block"></div>
|
||||
<br>
|
||||
<div class="btn-group clearfix">
|
||||
<label class="btn btn-info btn-aspectRatio active" onclick="changeAspectRatio(this, 16 / 9)">
|
||||
16:9
|
||||
</label>
|
||||
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, 4 / 3)">
|
||||
4:3
|
||||
</label>
|
||||
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, 1)">
|
||||
1:1
|
||||
</label>
|
||||
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, 2 / 3)">
|
||||
2:3
|
||||
</label>
|
||||
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, null)">
|
||||
{{ trans('laravel-filemanager::lfm.btn-crop-free') }}
|
||||
</label>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<div class="btn-group clearfix">
|
||||
<button class="btn btn-secondary" onclick="loadItems()">{{ trans('laravel-filemanager::lfm.btn-cancel') }}</button>
|
||||
<button class="btn btn-warning" onclick="performCropNew()">{{ trans('laravel-filemanager::lfm.btn-copy-crop') }}</button>
|
||||
<button class="btn btn-primary" onclick="performCrop()">{{ trans('laravel-filemanager::lfm.btn-crop') }}</button>
|
||||
</div>
|
||||
<form id='cropForm'>
|
||||
<input type="hidden" id="img" name="img" value="{{ $img->name }}">
|
||||
<input type="hidden" id="working_dir" name="working_dir" value="{{ $working_dir }}">
|
||||
<input type="hidden" id="dataX" name="dataX">
|
||||
<input type="hidden" id="dataY" name="dataY">
|
||||
<input type="hidden" id="dataWidth" name="dataWidth">
|
||||
<input type="hidden" id="dataHeight" name="dataHeight">
|
||||
<input type='hidden' name='_token' value='{{csrf_token()}}'>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var $image = null,
|
||||
options = {};
|
||||
|
||||
$(document).ready(function () {
|
||||
var $dataX = $('#dataX'),
|
||||
$dataY = $('#dataY'),
|
||||
$dataHeight = $('#dataHeight'),
|
||||
$dataWidth = $('#dataWidth');
|
||||
|
||||
$image = $('.crop-container > img');
|
||||
options = {
|
||||
aspectRatio: 16 / 9,
|
||||
preview: ".img-preview",
|
||||
strict: false,
|
||||
crop: function (data) {
|
||||
// Output the result data for cropping image.
|
||||
$dataX.val(Math.round(data.x));
|
||||
$dataY.val(Math.round(data.y));
|
||||
$dataHeight.val(Math.round(data.height));
|
||||
$dataWidth.val(Math.round(data.width));
|
||||
}
|
||||
};
|
||||
$image.cropper(options);
|
||||
});
|
||||
function changeAspectRatio(_this, aspectRatio) {
|
||||
options.aspectRatio = aspectRatio;
|
||||
$('.btn-aspectRatio.active').removeClass('active');
|
||||
$(_this).addClass('active');
|
||||
$('.img-preview').removeAttr('style');
|
||||
$image.cropper('destroy').cropper(options);
|
||||
return false;
|
||||
}
|
||||
function performCrop() {
|
||||
performLfmRequest('cropimage', {
|
||||
img: $("#img").val(),
|
||||
working_dir: $("#working_dir").val(),
|
||||
dataX: $("#dataX").val(),
|
||||
dataY: $("#dataY").val(),
|
||||
dataHeight: $("#dataHeight").val(),
|
||||
dataWidth: $("#dataWidth").val(),
|
||||
type: $('#type').val()
|
||||
}).done(loadItems);
|
||||
}
|
||||
|
||||
function performCropNew() {
|
||||
performLfmRequest('cropnewimage', {
|
||||
img: $("#img").val(),
|
||||
working_dir: $("#working_dir").val(),
|
||||
dataX: $("#dataX").val(),
|
||||
dataY: $("#dataY").val(),
|
||||
dataHeight: $("#dataHeight").val(),
|
||||
dataWidth: $("#dataWidth").val(),
|
||||
type: $('#type').val()
|
||||
}).done(loadItems);
|
||||
}
|
||||
</script>
|
213
resources/views/vendor/laravel-filemanager/demo.blade.php
vendored
Normal file
213
resources/views/vendor/laravel-filemanager/demo.blade.php
vendored
Normal file
@ -0,0 +1,213 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Laravel Filemanager</title>
|
||||
<link rel="shortcut icon" type="image/png" href="{{ asset('vendor/laravel-filemanager/img/72px color.png') }}">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1 class="page-header">Integration Demo Page</h1>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2 class="mt-4">CKEditor</h2>
|
||||
<textarea name="ce" class="form-control"></textarea>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h2 class="mt-4">TinyMCE</h2>
|
||||
<textarea name="tm" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2 class="mt-4">Summernote</h2>
|
||||
<textarea id="summernote-editor" name="content"></textarea>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h2 class="mt-4">Standalone Image Button</h2>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<a id="lfm" data-input="thumbnail" data-preview="holder" class="btn btn-primary text-white">
|
||||
<i class="fa fa-picture-o"></i> Choose
|
||||
</a>
|
||||
</span>
|
||||
<input id="thumbnail" class="form-control" type="text" name="filepath">
|
||||
</div>
|
||||
<div id="holder" style="margin-top:15px;max-height:100px;"></div>
|
||||
<h2 class="mt-4">Standalone File Button</h2>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<a id="lfm2" data-input="thumbnail2" data-preview="holder2" class="btn btn-primary text-white">
|
||||
<i class="fa fa-picture-o"></i> Choose
|
||||
</a>
|
||||
</span>
|
||||
<input id="thumbnail2" class="form-control" type="text" name="filepath">
|
||||
</div>
|
||||
<div id="holder2" style="margin-top:15px;max-height:100px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2 class="mt-4">Embed file manager</h2>
|
||||
<iframe src="/filemanager" style="width: 100%; height: 500px; overflow: hidden; border: none;"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>
|
||||
<script>
|
||||
var route_prefix = "{{env('APP_URL')}}/files";
|
||||
</script>
|
||||
|
||||
<!-- CKEditor init -->
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ckeditor/4.5.11/ckeditor.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ckeditor/4.5.11/adapters/jquery.js"></script>
|
||||
<script>
|
||||
$('textarea[name=ce]').ckeditor({
|
||||
height: 100,
|
||||
filebrowserImageBrowseUrl: route_prefix + '?type=Images',
|
||||
filebrowserImageUploadUrl: route_prefix + '/upload?type=Images&_token={{csrf_token()}}',
|
||||
filebrowserBrowseUrl: route_prefix + '?type=Files',
|
||||
filebrowserUploadUrl: route_prefix + '/upload?type=Files&_token={{csrf_token()}}'
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- TinyMCE init -->
|
||||
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
|
||||
<script>
|
||||
var editor_config = {
|
||||
path_absolute : "",
|
||||
selector: "textarea[name=tm]",
|
||||
plugins: [
|
||||
"link image"
|
||||
],
|
||||
relative_urls: false,
|
||||
height: 129,
|
||||
file_browser_callback : function(field_name, url, type, win) {
|
||||
var x = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
|
||||
var y = window.innerHeight|| document.documentElement.clientHeight|| document.getElementsByTagName('body')[0].clientHeight;
|
||||
|
||||
var cmsURL = editor_config.path_absolute + route_prefix + '?field_name=' + field_name;
|
||||
if (type == 'image') {
|
||||
cmsURL = cmsURL + "&type=Images";
|
||||
} else {
|
||||
cmsURL = cmsURL + "&type=Files";
|
||||
}
|
||||
|
||||
tinyMCE.activeEditor.windowManager.open({
|
||||
file : cmsURL,
|
||||
title : 'Filemanager',
|
||||
width : x * 0.8,
|
||||
height : y * 0.8,
|
||||
resizable : "yes",
|
||||
close_previous : "no"
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
tinymce.init(editor_config);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
{!! \File::get(base_path('vendor/unisharp/laravel-filemanager/public/js/stand-alone-button.js')) !!}
|
||||
</script>
|
||||
<script>
|
||||
$('#lfm').filemanager('image', {prefix: route_prefix});
|
||||
// $('#lfm').filemanager('file', {prefix: route_prefix});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var lfm = function(id, type, options) {
|
||||
let button = document.getElementById(id);
|
||||
|
||||
button.addEventListener('click', function () {
|
||||
var route_prefix = (options && options.prefix) ? options.prefix : '/filemanager';
|
||||
var target_input = document.getElementById(button.getAttribute('data-input'));
|
||||
var target_preview = document.getElementById(button.getAttribute('data-preview'));
|
||||
|
||||
window.open(route_prefix + '?type=' + options.type || 'file', 'FileManager', 'width=900,height=600');
|
||||
window.SetUrl = function (items) {
|
||||
var file_path = items.map(function (item) {
|
||||
return item.url;
|
||||
}).join(',');
|
||||
|
||||
// set the value of the desired input to image url
|
||||
target_input.value = file_path;
|
||||
target_input.dispatchEvent(new Event('change'));
|
||||
|
||||
// clear previous preview
|
||||
target_preview.innerHtml = '';
|
||||
|
||||
// set or change the preview image src
|
||||
items.forEach(function (item) {
|
||||
let img = document.createElement('img')
|
||||
img.setAttribute('style', 'height: 5rem')
|
||||
img.setAttribute('src', item.thumb_url)
|
||||
target_preview.appendChild(img);
|
||||
});
|
||||
|
||||
// trigger change event
|
||||
target_preview.dispatchEvent(new Event('change'));
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
lfm('lfm2', 'file', {prefix: route_prefix});
|
||||
</script>
|
||||
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.8/summernote.css" rel="stylesheet">
|
||||
<script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.8/summernote.js"></script>
|
||||
<style>
|
||||
.popover {
|
||||
top: auto;
|
||||
left: auto;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
|
||||
// Define function to open filemanager window
|
||||
var lfm = function(options, cb) {
|
||||
var route_prefix = (options && options.prefix) ? options.prefix : '/filemanager';
|
||||
window.open(route_prefix + '?type=' + options.type || 'file', 'FileManager', 'width=900,height=600');
|
||||
window.SetUrl = cb;
|
||||
};
|
||||
|
||||
// Define LFM summernote button
|
||||
var LFMButton = function(context) {
|
||||
var ui = $.summernote.ui;
|
||||
var button = ui.button({
|
||||
contents: '<i class="note-icon-picture"></i> ',
|
||||
tooltip: 'Insert image with filemanager',
|
||||
click: function() {
|
||||
|
||||
lfm({type: 'image', prefix: '/filemanager'}, function(lfmItems, path) {
|
||||
lfmItems.forEach(function (lfmItem) {
|
||||
context.invoke('insertImage', lfmItem.url);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
return button.render();
|
||||
};
|
||||
|
||||
// Initialize summernote with LFM button in the popover button group
|
||||
// Please note that you can add this button to any other button group you'd like
|
||||
$('#summernote-editor').summernote({
|
||||
toolbar: [
|
||||
['popovers', ['lfm']],
|
||||
],
|
||||
buttons: {
|
||||
lfm: LFMButton
|
||||
}
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
292
resources/views/vendor/laravel-filemanager/index.blade.php
vendored
Normal file
292
resources/views/vendor/laravel-filemanager/index.blade.php
vendored
Normal file
@ -0,0 +1,292 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<!-- Chrome, Firefox OS and Opera -->
|
||||
<meta name="theme-color" content="#333844">
|
||||
<!-- Windows Phone -->
|
||||
<meta name="msapplication-navbutton-color" content="#333844">
|
||||
<!-- iOS Safari -->
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="#333844">
|
||||
|
||||
<title>{{ trans('laravel-filemanager::lfm.title-page') }}</title>
|
||||
<link rel="shortcut icon" type="image/png" href="{{ asset('vendor/laravel-filemanager/img/72px color.png') }}">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.1.0/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.5.0/css/all.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jquery-ui-dist@1.12.1/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="{{ asset('vendor/laravel-filemanager/css/cropper.min.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('vendor/laravel-filemanager/css/dropzone.min.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('vendor/laravel-filemanager/css/mime-icons.min.css') }}">
|
||||
<style>{!! \File::get(base_path('vendor/unisharp/laravel-filemanager/public/css/lfm.css')) !!}</style>
|
||||
{{-- Use the line below instead of the above if you need to cache the css. --}}
|
||||
{{-- <link rel="stylesheet" href="{{ asset('/vendor/laravel-filemanager/css/lfm.css') }}"> --}}
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar sticky-top navbar-expand-lg navbar-dark" id="nav">
|
||||
<a class="navbar-brand invisible-lg d-none d-lg-inline" id="to-previous">
|
||||
<i class="fas fa-arrow-left fa-fw"></i>
|
||||
<span class="d-none d-lg-inline">{{ trans('laravel-filemanager::lfm.nav-back') }}</span>
|
||||
</a>
|
||||
<a class="navbar-brand d-block d-lg-none" id="show_tree">
|
||||
<i class="fas fa-bars fa-fw"></i>
|
||||
</a>
|
||||
<a class="navbar-brand d-block d-lg-none" id="current_folder"></a>
|
||||
<a id="loading" class="navbar-brand"><i class="fas fa-spinner fa-spin"></i></a>
|
||||
<div class="ml-auto px-2">
|
||||
<a class="navbar-link d-none" id="multi_selection_toggle">
|
||||
<i class="fa fa-check-double fa-fw"></i>
|
||||
<span class="d-none d-lg-inline">{{ trans('laravel-filemanager::lfm.menu-multiple') }}</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="navbar-toggler collapsed border-0 px-1 py-2 m-0" data-toggle="collapse" data-target="#nav-buttons">
|
||||
<i class="fas fa-cog fa-fw"></i>
|
||||
</a>
|
||||
<div class="collapse navbar-collapse flex-grow-0" id="nav-buttons">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-display="grid">
|
||||
<i class="fas fa-th-large fa-fw"></i>
|
||||
<span>{{ trans('laravel-filemanager::lfm.nav-thumbnails') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-display="list">
|
||||
<i class="fas fa-list-ul fa-fw"></i>
|
||||
<span>{{ trans('laravel-filemanager::lfm.nav-list') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-sort fa-fw"></i>{{ trans('laravel-filemanager::lfm.nav-sort') }}
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right border-0"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<nav class="bg-light fixed-bottom border-top d-none" id="actions">
|
||||
<a data-action="open" data-multiple="false"><i class="fas fa-folder-open"></i>{{ trans('laravel-filemanager::lfm.btn-open') }}</a>
|
||||
<a data-action="preview" data-multiple="true"><i class="fas fa-images"></i>{{ trans('laravel-filemanager::lfm.menu-view') }}</a>
|
||||
<a data-action="use" data-multiple="true"><i class="fas fa-check"></i>{{ trans('laravel-filemanager::lfm.btn-confirm') }}</a>
|
||||
</nav>
|
||||
|
||||
<div class="d-flex flex-row">
|
||||
<div id="tree"></div>
|
||||
|
||||
<div id="main">
|
||||
<div id="alerts"></div>
|
||||
|
||||
<nav aria-label="breadcrumb" class="d-none d-lg-block" id="breadcrumbs">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item invisible">Home</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div id="empty" class="d-none">
|
||||
<i class="far fa-folder-open"></i>
|
||||
{{ trans('laravel-filemanager::lfm.message-empty') }}
|
||||
</div>
|
||||
|
||||
<div id="content"></div>
|
||||
<div id="pagination"></div>
|
||||
|
||||
<a id="item-template" class="d-none">
|
||||
<div class="square"></div>
|
||||
|
||||
<div class="info">
|
||||
<div class="item_name text-truncate"></div>
|
||||
<time class="text-muted font-weight-light text-truncate"></time>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="fab"></div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="myModalLabel">{{ trans('laravel-filemanager::lfm.title-upload') }}</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aia-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{{ route('unisharp.lfm.upload') }}" role='form' id='uploadForm' name='uploadForm' method='post' enctype='multipart/form-data' class="dropzone">
|
||||
<div class="form-group" id="attachment">
|
||||
<div class="controls text-center">
|
||||
<div class="input-group w-100">
|
||||
<a class="btn btn-primary w-100 text-white" id="upload-button">{{ trans('laravel-filemanager::lfm.message-choose') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type='hidden' name='working_dir' id='working_dir'>
|
||||
<input type='hidden' name='type' id='type' value='{{ request("type") }}'>
|
||||
<input type='hidden' name='_token' value='{{csrf_token()}}'>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="notify" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
|
||||
<button type="button" class="btn btn-primary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-confirm') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="dialog" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
|
||||
<button type="button" class="btn btn-primary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-confirm') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="carouselTemplate" class="d-none carousel slide bg-light" data-ride="carousel">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#previewCarousel" data-slide-to="0" class="active"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<a class="carousel-label"></a>
|
||||
<div class="carousel-image"></div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="carousel-control-prev" href="#previewCarousel" role="button" data-slide="prev">
|
||||
<div class="carousel-control-background" aria-hidden="true">
|
||||
<i class="fas fa-chevron-left"></i>
|
||||
</div>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="carousel-control-next" href="#previewCarousel" role="button" data-slide="next">
|
||||
<div class="carousel-control-background" aria-hidden="true">
|
||||
<i class="fas fa-chevron-right"></i>
|
||||
</div>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.3/dist/umd/popper.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.1.0/dist/js/bootstrap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery-ui-dist@1.12.1/jquery-ui.min.js"></script>
|
||||
<script src="{{ asset('vendor/laravel-filemanager/js/cropper.min.js') }}"></script>
|
||||
<script src="{{ asset('vendor/laravel-filemanager/js/dropzone.min.js') }}"></script>
|
||||
<script>
|
||||
var lang = {!! json_encode(trans('laravel-filemanager::lfm')) !!};
|
||||
var actions = [
|
||||
// {
|
||||
// name: 'use',
|
||||
// icon: 'check',
|
||||
// label: 'Confirm',
|
||||
// multiple: true
|
||||
// },
|
||||
{
|
||||
name: 'rename',
|
||||
icon: 'edit',
|
||||
label: lang['menu-rename'],
|
||||
multiple: false
|
||||
},
|
||||
{
|
||||
name: 'download',
|
||||
icon: 'download',
|
||||
label: lang['menu-download'],
|
||||
multiple: true
|
||||
},
|
||||
// {
|
||||
// name: 'preview',
|
||||
// icon: 'image',
|
||||
// label: lang['menu-view'],
|
||||
// multiple: true
|
||||
// },
|
||||
{
|
||||
name: 'move',
|
||||
icon: 'paste',
|
||||
label: lang['menu-move'],
|
||||
multiple: true
|
||||
},
|
||||
{
|
||||
name: 'resize',
|
||||
icon: 'arrows-alt',
|
||||
label: lang['menu-resize'],
|
||||
multiple: false
|
||||
},
|
||||
{
|
||||
name: 'crop',
|
||||
icon: 'crop',
|
||||
label: lang['menu-crop'],
|
||||
multiple: false
|
||||
},
|
||||
{
|
||||
name: 'trash',
|
||||
icon: 'trash',
|
||||
label: lang['menu-delete'],
|
||||
multiple: true
|
||||
},
|
||||
];
|
||||
|
||||
var sortings = [
|
||||
{
|
||||
by: 'alphabetic',
|
||||
icon: 'sort-alpha-down',
|
||||
label: lang['nav-sort-alphabetic']
|
||||
},
|
||||
{
|
||||
by: 'time',
|
||||
icon: 'sort-numeric-down',
|
||||
label: lang['nav-sort-time']
|
||||
}
|
||||
];
|
||||
</script>
|
||||
<script>{!! \File::get(base_path('vendor/unisharp/laravel-filemanager/public/js/script.js')) !!}</script>
|
||||
{{-- Use the line below instead of the above if you need to cache the script. --}}
|
||||
{{-- <script src="{{ asset('vendor/laravel-filemanager/js/script.js') }}"></script> --}}
|
||||
<script>
|
||||
Dropzone.options.uploadForm = {
|
||||
paramName: "upload[]", // The name that will be used to transfer the file
|
||||
uploadMultiple: false,
|
||||
parallelUploads: 5,
|
||||
timeout:0,
|
||||
clickable: '#upload-button',
|
||||
dictDefaultMessage: lang['message-drop'],
|
||||
init: function() {
|
||||
var _this = this; // For the closure
|
||||
this.on('success', function(file, response) {
|
||||
if (response == 'OK') {
|
||||
loadFolders();
|
||||
} else {
|
||||
this.defaultOptions.error(file, response.join('\n'));
|
||||
}
|
||||
});
|
||||
},
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + getUrlParam('token')
|
||||
},
|
||||
acceptedFiles: "{{ implode(',', $helper->availableMimeTypes()) }}",
|
||||
maxFilesize: ({{ $helper->maxUploadSize() }} / 1000)
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
40
resources/views/vendor/laravel-filemanager/move.blade.php
vendored
Normal file
40
resources/views/vendor/laravel-filemanager/move.blade.php
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
<ul class="nav nav-pills flex-column">
|
||||
@foreach($root_folders as $root_folder)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#" data-type="0" onclick="moveToNewFolder(`{{$root_folder->url}}`)">
|
||||
<i class="fa fa-folder fa-fw"></i> {{ $root_folder->name }}
|
||||
<input type="hidden" id="goToFolder" name="goToFolder" value="{{ $root_folder->url }}">
|
||||
<div id="items">
|
||||
@foreach($items as $i)
|
||||
<input type="hidden" id="{{ $i }}" name="items[]" value="{{ $i }}">
|
||||
@endforeach
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
@foreach($root_folder->children as $directory)
|
||||
<li class="nav-item sub-item">
|
||||
<a class="nav-link" href="#" data-type="0" onclick="moveToNewFolder(`{{$directory->url}}`)">
|
||||
<i class="fa fa-folder fa-fw"></i> {{ $directory->name }}
|
||||
<input type="hidden" id="goToFolder" name="goToFolder" value="{{ $directory->url }}">
|
||||
<div id="items">
|
||||
@foreach($items as $i)
|
||||
<input type="hidden" id="{{ $i }}" name="items[]" value="{{ $i }}">
|
||||
@endforeach
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
function moveToNewFolder($folder) {
|
||||
$("#notify").modal('hide');
|
||||
var items =[];
|
||||
$("#items").find("input").each(function() {items.push(this.id)});
|
||||
performLfmRequest('domove', {
|
||||
items: items,
|
||||
goToFolder: $folder
|
||||
}).done(refreshFoldersAndItems);
|
||||
}
|
||||
</script>
|
123
resources/views/vendor/laravel-filemanager/resize.blade.php
vendored
Normal file
123
resources/views/vendor/laravel-filemanager/resize.blade.php
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
<style>
|
||||
#work_space {
|
||||
padding: 30px;
|
||||
height: 100vw;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
#work_space {
|
||||
width: unset;
|
||||
height: unset;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 bg-light" id="work_space">
|
||||
<div id="containment" class="d-none d-md-inline">
|
||||
<img id="resize" src="{{ $img->url . '?timestamp=' . $img->time }}" height="{{ $height }}" width="{{ $width }}">
|
||||
</div>
|
||||
<div id="resize_mobile" style="background-image: url({{ $img->url . '?timestamp=' . $img->time }})" class="d-block d-md-none"></div>
|
||||
</div>
|
||||
<div class="col-md-4 pt-3">
|
||||
<table class="table table-compact table-striped">
|
||||
<thead></thead>
|
||||
<tbody>
|
||||
@if ($scaled)
|
||||
<tr>
|
||||
<td class="text-nowrap">{{ trans('laravel-filemanager::lfm.resize-ratio') }}</td>
|
||||
<td class="text-right">{{ number_format($ratio, 2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-nowrap">{{ trans('laravel-filemanager::lfm.resize-scaled') }}</td>
|
||||
<td class="text-right">
|
||||
{{ trans('laravel-filemanager::lfm.resize-true') }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<td class="text-nowrap">{{ trans('laravel-filemanager::lfm.resize-old-height') }}</td>
|
||||
<td class="text-right">{{ $original_height }}px</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-nowrap">{{ trans('laravel-filemanager::lfm.resize-old-width') }}</td>
|
||||
<td class="text-right">{{ $original_width }}px</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-nowrap" style="vertical-align: middle">{{ trans('laravel-filemanager::lfm.resize-new-height') }}</td>
|
||||
<td class="text-right"><input type="text" id="height_display" class="form-control w-50 d-inline mr-2" value="{{ $height }}">px</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-nowrap" style="vertical-align: middle">{{ trans('laravel-filemanager::lfm.resize-new-width') }}</td>
|
||||
<td class="text-right"><input type="text" id="width_display" class="form-control w-50 d-inline mr-2" value="{{ $width }}">px</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="d-flex mb-3">
|
||||
<button class="btn btn-secondary w-50 mr-1" onclick="loadItems()">{{ trans('laravel-filemanager::lfm.btn-cancel') }}</button>
|
||||
<button class="btn btn-primary w-50" onclick="doResize()">{{ trans('laravel-filemanager::lfm.btn-resize') }}</button>
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="img" name="img" value="{{ $img->name }}">
|
||||
<input type="hidden" name="ratio" value="{{ $ratio }}">
|
||||
<input type="hidden" name="scaled" value="{{ $scaled }}">
|
||||
<input type="hidden" id="original_height" name="original_height" value="{{ $original_height }}">
|
||||
<input type="hidden" id="original_width" name="original_width" value="{{ $original_width }}">
|
||||
<input type="hidden" id="height" name="height" value="{{ $height }}">
|
||||
<input type="hidden" id="width" name="width" value="{{ $width }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
renderResizedValues($("#width_display").val(), $("#height_display").val());
|
||||
|
||||
$("#resize").resizable({
|
||||
aspectRatio: true,
|
||||
containment: "#containment",
|
||||
handles: "n, e, s, w, se, sw, ne, nw",
|
||||
resize: function (event, ui) {
|
||||
renderResizedValues(ui.size.width, ui.size.height);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#width_display, #height_display').change(function () {
|
||||
var newWidth = $("#width_display").val();
|
||||
var newHeight = $("#height_display").val();
|
||||
|
||||
renderResizedValues(newWidth, newHeight);
|
||||
$("#containment > .ui-wrapper").width(newWidth).height(newHeight);
|
||||
$("#resize").width(newWidth).height(newHeight);
|
||||
});
|
||||
|
||||
function renderResizedValues(newWidth, newHeight) {
|
||||
$("#width").val(newWidth);
|
||||
$("#height").val(newHeight);
|
||||
$("#width_display").val(newWidth);
|
||||
$("#height_display").val(newHeight);
|
||||
|
||||
$('#resize_mobile').css('background-size', '100% 100%');
|
||||
|
||||
if (newWidth < newHeight) {
|
||||
$('#resize_mobile').css('width', (newWidth / newHeight * 100) + '%').css('padding-bottom', '100%');
|
||||
} else if (newWidth > newHeight) {
|
||||
$('#resize_mobile').css('width', '100%').css('padding-bottom', (newHeight / newWidth * 100) + '%');
|
||||
} else { // newWidth === newHeight
|
||||
$('#resize_mobile').css('width', '100%').css('padding-bottom', '100%');
|
||||
}
|
||||
}
|
||||
|
||||
function doResize() {
|
||||
performLfmRequest('doresize', {
|
||||
img: $("#img").val(),
|
||||
dataHeight: $("#height").val(),
|
||||
dataWidth: $("#width").val()
|
||||
}).done(loadItems);
|
||||
}
|
||||
</script>
|
34
resources/views/vendor/laravel-filemanager/tree.blade.php
vendored
Normal file
34
resources/views/vendor/laravel-filemanager/tree.blade.php
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
<div class="m-3 d-block d-lg-none">
|
||||
<h1 style="font-size: 1.5rem;">Laravel File Manager</h1>
|
||||
<small class="d-block">Ver 2.0</small>
|
||||
<div class="row mt-3">
|
||||
<div class="col-4">
|
||||
<img src="{{ asset('vendor/laravel-filemanager/img/152px color.png') }}" class="w-100">
|
||||
</div>
|
||||
|
||||
<div class="col-8">
|
||||
<p>Current usage :</p>
|
||||
<p>20 GB (Max : 1 TB)</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress mt-3" style="height: .5rem;">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated w-75 bg-main" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-pills flex-column">
|
||||
@foreach($root_folders as $root_folder)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#" data-type="0" data-path="{{ $root_folder->url }}">
|
||||
<i class="fa fa-folder fa-fw"></i> {{ $root_folder->name }}
|
||||
</a>
|
||||
</li>
|
||||
@foreach($root_folder->children as $directory)
|
||||
<li class="nav-item sub-item">
|
||||
<a class="nav-link" href="#" data-type="0" data-path="{{ $directory->url }}">
|
||||
<i class="fa fa-folder fa-fw"></i> {{ $directory->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
@endforeach
|
||||
</ul>
|
16
resources/views/vendor/laravel-filemanager/use.blade.php
vendored
Normal file
16
resources/views/vendor/laravel-filemanager/use.blade.php
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<script type='text/javascript'>
|
||||
function getUrlParam(paramName) {
|
||||
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
|
||||
var match = window.location.search.match(reParam);
|
||||
return ( match && match.length > 1 ) ? match[1] : null;
|
||||
}
|
||||
|
||||
var funcNum = getUrlParam('CKEditorFuncNum');
|
||||
|
||||
var par = window.parent;
|
||||
var op = window.opener;
|
||||
var o = (par && par.CKEDITOR) ? par : ((op && op.CKEDITOR) ? op : false);
|
||||
|
||||
if (op) window.close();
|
||||
if (o !== false) o.CKEDITOR.tools.callFunction(funcNum, "{{ $file }}");
|
||||
</script>
|
140
resources/views/welcome.blade.php
Normal file
140
resources/views/welcome.blade.php
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user