added fast attachment upload to improve system ux

update detach word mistake fixed
master
A1Gard 2 weeks ago
parent d2e5dc4387
commit 33a60eb170

@ -115,15 +115,18 @@ class AttachmentController extends XController
{
return parent::delete($item);
}
public function deattach(Attachment $item)
public function detach(Attachment $item)
{
$item->attachable_id = null;
$item->attachable_type = null;
$item->save();
logAdmin(__METHOD__,__CLASS__,$item->id);
if (request()->ajax()) {
return ['OK' => true , 'message' => __('As you wished detached successfully')];
}
return redirect()->back()
->with(['message' => __('As you wished deattached successfully')]);
->with(['message' => __('As you wished detached successfully')]);
}
@ -132,5 +135,12 @@ class AttachmentController extends XController
return $this->bringUp($request, $item);
}
public function attaching(Request $request){
$item = new Attachment();
$item = $this->save($item, $request);
logAdmin(__METHOD__,__CLASS__,$item->id);
return ['OK' => true,'data'=> $item,'message' => __('File uploaded successfully')];
}
}

@ -32,6 +32,7 @@ import './panel/prototypes.js';
import './panel/panel-window-loader.js';
import './panel/responsive-control.js';
import './panel/fast-edit.js';
import './panel/fast-attachment.js';
// import './panel/seo-analyzer.js';
// chartjs.defaults.defaultFontFamily = "Vazir";
@ -123,6 +124,10 @@ app.component('menu-item-input', MenuItemInput);
import VueTimepicker from "./components/vueTimePicker.vue";
app.component('vue-time-picker', VueTimepicker);
import fastAttaching from "./components/FastAttaching.vue";
app.component('fast-attaching', fastAttaching);
/**
* The following block of code may be used to automatically register your
* Vue components. It will recursively scan this directory for the Vue

@ -0,0 +1,230 @@
<template>
<div id="fast-attaching">
<i class="ri-add-line" id="new-attach" data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="Add new attachment" @click="isShowNew = !isShowNew"></i>
<div class="row mt-4" v-if="isShowNew">
<div class="col-md">
<input type="text" placeholder="Title" v-model="title" class="form-control">
</div>
<div class="col-md">
<input type="file" class="form-control" id="upload-attachment-file" ref="fileInput">
</div>
<div class="col-md-2">
<button class="btn btn-primary w-100"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="Upload"
@click="upload">
<i class="ri-upload-2-line"></i>
</button>
</div>
</div>
<div id="progress" v-if="isShowProgress">
Uploading {{ title }}
<div id="percent" :style="percentStyle"></div>
</div>
<ul class="list-group my-4">
<li v-for="(attach,i) in attachments" :key="attach.id" class="list-group-item">
<div class="row">
<div class="col-md-1 pt-1">
{{ i + 1 }}
</div>
<div class="col-md pt-1">
<span class="badge bg-success">
{{ attach.ext }}
</span>
</div>
<div class="col-md-4 pt-1">
<template v-if="xlang == null">
{{ attach.title }}
</template>
<template v-else>
{{ attach['title']?.[xlang] ?? attach.title }}
</template>
</div>
<div class="col-md-4 pt-1">
{{ attach.file }}
</div>
<div class="col-md-1">
<div class="btn btn-secondary btn-sm w-100" data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="Detach"
@click="detach(attach.slug,i)"
>
<i class="ri-close-line"></i>
</div>
</div>
</div>
</li>
</ul>
</div>
</template>
<script>
import axios from 'axios';
export default {
name: "fast-attaching",
data() {
return {
title: '',
isShowNew: false,
isShowProgress: false,
percent: 0,
}
},
props: {
attachments: {
type: Array,
default: () => [],
},
xlang: {
default: null
},
uploadUrl: {
type: String,
default: 'http://127.0.0.1:8000/dashboard/attachments/attaching',
},
detachUrl: {
type: String,
default: 'http://127.0.0.1:8000/dashboard/attachments/attaching',
},
model: {
type: String,
default: 'App\\Models\\Post'
},
id: {
type: Number,
default: '1',
},
},
computed: {
percentStyle() {
return 'width:' + this.percent + '%;';
}
},
methods: {
async detach(slug, index) {
if (!confirm(window.TR.deleteConfirm)) {
return false;
}
try {
const response = await axios.get(this.detachUrl + slug);
if (response.data.OK) {
$toast.success(response.data.message);
this.attachments.splice(index, 1);
if (document.querySelector('#attach-number') != null){
document.querySelector('#attach-number').innerText = this.attachments.length;
}
this.$forceUpdate();
} else {
$toast.error("Detach problem!");
}
} catch (e) {
$toast.error(e.message);
}
},
async upload() {
console.log('upload start');
if (this.title.length < 2) {
this.$toast.error('Title is incorrect');
return false;
}
const fileInput = this.$refs.fileInput;
if (fileInput.files.length === 0) {
this.$toast.error('File is incorrect');
return false;
}
this.isShowNew = false;
this.isShowProgress = true;
this.percent = 0; // Reset the percent
const formData = new FormData();
formData.append('title', this.title);
formData.append('attachable_id', this.id);
formData.append('attachable_type', this.model);
formData.append('file', fileInput.files[0]); // Assuming only one file is selected
try {
const response = await axios.post(this.uploadUrl, formData, {
headers: {
'Content-Type': 'multipart/form-data'
},
onUploadProgress: progressEvent => {
if (progressEvent.lengthComputable) {
this.percent = Math.round((progressEvent.loaded * 100) / progressEvent.total);
}
}
});
// Handle the response
console.log(response.data);
if (response.data.OK) {
this.$toast.success(response.data.message);
this.attachments.push(response.data.data); // Adjust based on your response
if (document.querySelector('#attach-number') != null){
document.querySelector('#attach-number').innerText = this.attachments.length;
}
this.title = '';
}
// Optionally, add the new attachment to the attachments array
} catch (error) {
console.error(error);
this.$toast.error('Upload failed!');
} finally {
this.isShowProgress = false;
}
}
}
}
</script>
<style scoped>
#fast-attaching {
}
#new-attach {
position: absolute;
inset-inline-end: 80px;
top: 0;
padding: 5px;
background: rgba(8, 255, 0, 0.2);
font-size: 30px;
border-radius: 0 0 7px 7px;
cursor: pointer;
&:hover {
background: rgba(8, 255, 0, 0.4);
}
}
#progress {
margin: 2rem 0;
border: 1px solid #ffffff22;
border-radius: 7px;
overflow: hidden;
text-align: center;
position: relative;
}
#percent {
background: rgba(8, 255, 0, 0.4);
position: absolute;
inset-inline-start: 0;
top: 0;
bottom: 0;
}
</style>

@ -0,0 +1,11 @@
document.addEventListener('DOMContentLoaded', function () {
let attachFrom = document.querySelector('#attaching-form');
document.querySelector('#attach-down')?.addEventListener('click', function () {
attachFrom.style.bottom = (window.innerHeight * -.5+'px');
});
document.querySelector('#show-attach-form')?.addEventListener('click', function (e) {
e.preventDefault();
attachFrom.style.bottom = ('0px');
});
});

@ -82,7 +82,7 @@
"Area design": "طراحی محیط",
"Areas": "محیط‌ها ",
"As you wished created successfully": "همانطور که شما مایل بودید ایجاد شد",
"As you wished deattached successfully": "همانطور که شما مایل بودید از پیوست خارج شد",
"As you wished detached successfully": "همانطور که شما مایل بودید از پیوست خارج شد",
"As you wished removed successfully": "همانطور که شما مایل بودید حذف شد",
"As you wished restored successfully": "همانطور که شما مایل بودید بازیافت شد",
"As you wished sort saved": "همانطور که شما مایل بودید مرتب شدند",
@ -137,6 +137,7 @@
"Clips list": "فهرست کلیپ‌ها",
"Close": "بستن",
"Code": "کد",
"Collapse attachment form": "بستن فرم پیوست‌ها",
"Colleague": "همکار",
"Command ignored, segment part exists!": "",
"Comment": "دیدگاه",
@ -170,7 +171,6 @@
"Date": "تاریخ",
"Date of born": "تاریخ تولد",
"Datetime": "تاریخ و زمان",
"Deattach": "عدم پیوست",
"Default": "پیش‌فرض",
"Default admin email is :E1 (developer) or :E2 (admin) and default password is: :P": "در نگارش آزمایشی رایانامه توسعه دهنده :E1 است و رایانامه مدیر عادی :E2 و گذرواژه هر دو :P است",
"DefaultFooter": "فوتر پیش‌فرض",
@ -181,7 +181,8 @@
"Description Text": "نوشته توضیحات",
"Design": "طراحی",
"Design :AREA": "طراحی :AREA",
"Design guide": "",
"Design guide": "راهنمای طراحی",
"Detach": "عدم پیوست",
"Detail": "جزئیات",
"Developer guide": "راهنمای توسعه",
"Devices": "دستگاه‌ها",
@ -244,6 +245,7 @@
"File ext": "پسوند پرونده",
"File name": "نام پرونده",
"File size": "حجم پرونده",
"File uploaded successfully": "پرونده با موفقیت بارگزاری شد",
"Filter": "صافی",
"Find more": "موارد بیشتر",
"Flag": "پرچم",
@ -271,6 +273,7 @@
"GuestLogs list": "فهرست لاگ میهمان ها",
"Height": "قد",
"Hello world": "سلام دنیا",
"Hide in menu": "عدم نمایش در فهرست (منو)",
"Home": "خانه",
"ID": "",
"Icon": "نماد",

@ -13,6 +13,7 @@ body{
user-select: none;
cursor: pointer;
transition: 500ms;
&:hover {
box-shadow: 0px 3px 5px #11111177, inset 0 0 0 40px darkred;
}
@ -32,6 +33,7 @@ body{
a.btn, a.action-btn, a.circle-btn {
&:hover {
color: white;
i {
color: white;
}
@ -43,9 +45,11 @@ a.btn,a.action-btn,a.circle-btn{
display: block;
font-size: 47px;
text-align: center;
i {
color: white;
}
position: fixed;
inset-inline-start: 4.2rem;
bottom: 1rem;
@ -56,6 +60,7 @@ a.btn,a.action-btn,a.circle-btn{
border-radius: 7px;
margin-bottom: 4rem;
position: relative;
h1 {
font-size: 25px;
font-weight: 200;
@ -83,9 +88,11 @@ a.btn,a.action-btn,a.circle-btn{
overflow-y: auto;
padding: 0 .5rem;
height: 12rem;
ul {
list-style: none;
}
input {
margin: 0 .5rem;
}
@ -97,12 +104,15 @@ a.btn,a.action-btn,a.circle-btn{
margin: auto;
border-radius: 3px;
}
.status-0, .status-CLOSED, .status-FAILED, .status-PROCESSING {
background: red;
}
.status-1, .status-ANSWERED, .status-COMPLETED {
background: lime;
}
.status-PENDING {
background: gold;
}
@ -123,7 +133,6 @@ a.btn,a.action-btn,a.circle-btn{
}
.img-squire {
display: block;
max-width: 100%;
@ -144,6 +153,7 @@ a.btn,a.action-btn,a.circle-btn{
background: #ffffff11;
border-bottom: 1px solid #00000022;
color: white;
&.active {
background: $primary-color-panel;
}
@ -176,11 +186,13 @@ a.btn,a.action-btn,a.circle-btn{
padding-left: 1rem;
list-style: none;
border-radius: 5px;
li {
border: 1px solid grey;
background: #ffffff11;
margin-bottom: .25rem;
border-radius: 5px;
span {
display: block;
padding: 7px;
@ -199,12 +211,14 @@ a.btn,a.action-btn,a.circle-btn{
&:hover {
color: lighten($primary-color-panel, 10);
}
i {
font-size: 45px;
display: block;
margin: 1rem auto;
}
}
[data-open-file] {
cursor: pointer;
}
@ -223,6 +237,7 @@ a.btn,a.action-btn,a.circle-btn{
position: relative;
min-height: 128px;
}
.skewed-icon {
font-size: 128px;
opacity: .3;
@ -240,13 +255,16 @@ a.btn,a.action-btn,a.circle-btn{
background: #ffffff22 !important;
color: $secondary-color-panel;
}
.card-body {
background: #00000011;
text-align: center;
}
i {
font-size: 100px;
}
a, a:visited {
color: white;
}
@ -259,13 +277,16 @@ a.btn,a.action-btn,a.circle-btn{
background: #ffffff22 !important;
color: $secondary-color-panel;
}
.card-body {
background: #00000011;
text-align: center;
}
i {
font-size: 100px;
}
a, a:visited {
color: white;
}
@ -299,10 +320,12 @@ a.btn,a.action-btn,a.circle-btn{
align-items: center;
justify-content: center;
color: lighten($primary-color-panel, 15);
.loader {
position: relative;
width: 100px;
height: 100px;
&:before {
content: '';
border-radius: 50%;
@ -310,6 +333,7 @@ a.btn,a.action-btn,a.circle-btn{
inset: 0;
box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.3) inset;
}
&:after {
content: '';
border-radius: 50%;
@ -325,7 +349,6 @@ a.btn,a.action-btn,a.circle-btn{
}
@keyframes rotate {
0% {
transform: rotate(0);
@ -343,6 +366,7 @@ a.btn,a.action-btn,a.circle-btn{
margin-bottom: 5px;
margin-top: 5px;
}
/* -620px width */
@media (max-width: 620px) {
.table-list {
@ -370,6 +394,7 @@ a.btn,a.action-btn,a.circle-btn{
.dropdown {
min-width: 75%;
.btn {
width: 100%;
}
@ -383,8 +408,6 @@ a.btn,a.action-btn,a.circle-btn{
}
#seo-hint {
@ -395,6 +418,7 @@ a.btn,a.action-btn,a.circle-btn{
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.seo-score-container {
display: flex;
align-items: center;
@ -402,11 +426,13 @@ a.btn,a.action-btn,a.circle-btn{
border-bottom: 1px solid #eee;
gap: 20px;
}
.seo-score {
position: relative;
width: 80px;
height: 80px;
}
.seo-score-circle {
width: 100%;
height: 100%;
@ -418,57 +444,71 @@ a.btn,a.action-btn,a.circle-btn{
font-weight: bold;
color: white;
}
.seo-status {
flex: 1;
h3 {
margin: 0 0 5px 0;
font-size: 18px;
}
p {
margin: 0;
color: #eee;
}
}
.seo-details {
padding: 20px;
}
.seo-feedback {
margin-bottom: 20px;
ul {
margin: 10px 0;
padding-left: 20px;
}
li {
margin: 8px 0;
color: #ddd;
}
}
.seo-metrics {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
}
.metric-card {
background: #f8f9fa;
padding: 15px;
border-radius: 6px;
h4 {
margin: 0 0 10px 0;
color: #333;
font-size: 14px;
}
}
.metric-value {
font-size: 16px;
font-weight: 500;
color: #2a2a2a;
}
.good {
background: #22c55e;
}
.average {
background: #f59e0b;
}
.poor {
background: #ef4444;
}
@ -477,9 +517,11 @@ a.btn,a.action-btn,a.circle-btn{
.nested-ul {
list-style: none;
ul {
list-style: none;
}
input[type='checkbox'] {
margin: 0 1rem;
}
@ -505,3 +547,34 @@ a.btn,a.action-btn,a.circle-btn{
border-radius: 1rem;
}
}
#attaching-form {
position: fixed;
bottom: -50vh;
left: 1rem;
right: 1rem;
background: $lighter-color;
height: 40vh;
border-radius: 7px 7px 0 0;
border: 1px solid #aaaaaa55;
border-bottom: none;
overflow-y: auto;
overflow-x: hidden;
transition: 500ms;
#attach-down {
position: absolute;
inset-inline-end: 30px;
top: 0;
padding: 5px;
background: #ffffff22;
font-size: 30px;
border-radius: 0 0 7px 7px;
cursor: pointer;
&:hover {
background: #ffffff66;
}
}
}

@ -9,11 +9,6 @@
@endsection
@section('filter')
<input type="hidden" id="group-edit-url" value="{{route('admin.post.group-edit','')}}/">
<div id="iframe-modal">
<div class="container">
<iframe href="#"></iframe>
</div>
</div>
{{-- Other filters --}}
{{__("Main group")}}

@ -10,15 +10,11 @@
@section('filter')
{{-- Other filters --}}
<h2>
<input type="hidden" id="category-edit-url" value="{{route('admin.product.category-edit','')}}/">
<div id="iframe-modal">
<div class="container">
<iframe href="#"></iframe>
</div>
</div>
<i class="ri-book-3-line"></i>
{{__("Category")}}:
</h2>
<input type="hidden" id="category-edit-url" value="{{route('admin.product.category-edit','')}}/">
<searchable-multi-select
:items='{{\App\Models\Category::all(['id','name'])}}'
title-field="name"

@ -186,6 +186,17 @@
{{--</div>--}}
<hr>
<div class="mt-4">
@include('components.panel-attachs',['attachs' => $item->attachs??[]])
<div class="mt-4 position-relative">
<h3>
{{__("Attachments")}}
</h3>
<br>
<fast-attaching
:attachments='@json($item->attachs)'
xlang="{{config('app.locale')}}"
upload-url="{{route('admin.attachment.attaching')}}"
detach-url="{{route('admin.attachment.detach','')}}/"
model="{{get_class($item)}}"
id="{{$item->id}}"
></fast-attaching>
</div>

@ -1,28 +1,32 @@
<h4>
{{__("Attachments")}}
<a href="{{route('admin.attachment.create')}}?" class="btn btn-light float-end mb-2">
<a href="{{route('admin.attachment.create')}}?" id="show-attach-form" class="btn btn-light float-end mb-2">
<i class="ri-add-line"></i>
<i class="ri-attachment-line"></i>
<span id="attach-number">
({{count($attachs)}})
</span>
</a>
</h4>
<div class="clearfix"></div>
<ul class="list-group">
@foreach($attachs as $attach)
{{--<ul class="list-group">--}}
{{-- @foreach($attachs as $attach)--}}
<li class="list-group-item">
<a href="{{route('admin.attachment.deattach',$attach->slug)}}" class="btn btn-danger float-end btn-sm" data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Deattach")}}">
<i class="ri-close-line"></i>
</a>
<div class="p-2">
{{-- <li class="list-group-item">--}}
{{-- <a href="{{route('admin.attachment.detach',$attach->slug)}}" class="btn btn-danger float-end btn-sm" data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"--}}
{{-- data-bs-title="{{__("Detach")}}">--}}
{{-- <i class="ri-close-line"></i>--}}
{{-- </a>--}}
{{-- <div class="p-2">--}}
<a href="{{$attach->url()}}">
{{$attach->file}}
</a>
[ {{formatFileSize($attach->size)}} ]
[ {{$attach->ext}} ]
</div>
{{-- <a href="{{$attach->url()}}">--}}
{{-- {{$attach->file}}--}}
{{-- </a>--}}
{{-- [ {{formatFileSize($attach->size)}} ]--}}
{{-- [ {{$attach->ext}} ]--}}
{{-- </div>--}}
</li>
@endforeach
</ul>
{{-- </li>--}}
{{-- @endforeach--}}
{{--</ul>--}}

@ -1,4 +1,9 @@
@yield('js-content')
<div id="iframe-modal">
<div class="container">
<iframe href="#"></iframe>
</div>
</div>
<script type="text/javascript">
var xupload = "{{route('admin.ckeditor.upload', ['_token' => csrf_token() ])}}";
var website_bg = "{{gfx()['background']}}";

@ -22,6 +22,27 @@
</main>
</div>
</div>
@if(isset($item) && isset($item->attachs))
<div id="attaching-form">
<i class="ri-skip-down-line" id="attach-down" data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Collapse attachment form")}}"></i>
<div class="p-4">
<h5>
{{__("Attachments")}}
</h5>
<fast-attaching
:attachments='@json($item->attachs)'
xlang="{{config('app.locale')}}"
upload-url="{{route('admin.attachment.attaching')}}"
detach-url="{{route('admin.attachment.detach','')}}/"
model="{{get_class($item)}}"
id="{{$item->id}}"
></fast-attaching>
</div>
</div>
@endif
</div>
@yield('js-content')
@include('components.panel-footer')

@ -18,83 +18,104 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group(
Route::get('/', [\App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::any('logout', [\App\Http\Controllers\Auth\LoginController::class, 'logout'])->name('logout');
Route::post('ckeditor/upload', [\App\Http\Controllers\Admin\CkeditorController::class, 'upload'])->name('ckeditor.upload');
Route::get('adminlogs', [\App\Http\Controllers\Admin\AdminLogController::class, 'index'])->name('adminlog.index');
Route::get('guestlog', [\App\Http\Controllers\Admin\GuestLogController::class, 'index'])->name('guestlog.index');
Route::get('rates', [\App\Http\Controllers\Admin\RateController::class, 'index'])->name('rate.index');
Route::get('adminlogs/{user}', [\App\Http\Controllers\Admin\AdminLogController::class, 'log'])->name('adminlog.show');
Route::post('ckeditor/upload', [\App\Http\Controllers\Admin\CkeditorController::class, 'upload'])->name('ckeditor.upload');
Route::get('guestlog', [\App\Http\Controllers\Admin\GuestLogController::class, 'index'])->name('guestlog.index');
Route::post('images/store/{gallery}', [\App\Http\Controllers\Admin\ImageController::class, 'store'])->name('image.store');
Route::get('images/destroy/{image}', [\App\Http\Controllers\Admin\ImageController::class, 'destroy'])->name('image.destroy');
Route::any('logout', [\App\Http\Controllers\Auth\LoginController::class, 'logout'])->name('logout');
Route::get('rates', [\App\Http\Controllers\Admin\RateController::class, 'index'])->name('rate.index');
Route::prefix('users')->name('user.')->group(
Route::prefix('addresses')->name('address.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\UserController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\UserController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\UserController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\UserController::class, 'edit'])->name('edit');
Route::get('log/{item}', [\App\Http\Controllers\Admin\AdminLogController::class, 'log'])->name('log');
Route::get('show/{item}', [\App\Http\Controllers\Admin\UserController::class, 'show'])->name('show');
Route::post('update/{item}', [\App\Http\Controllers\Admin\UserController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\UserController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\UserController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\UserController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\UserController::class, "trashed"])->name('trashed');
Route::get('customer/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'customer'])->name('customer');
Route::post('add/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'store'])->name('store');
Route::post('update/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'update'])->name('update');
Route::get('destroy/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'destroy'])->name('destroy');
});
Route::prefix('groups')->name('group.')->group(
Route::prefix('adv')->name('adv.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\GroupController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\GroupController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\GroupController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'update'])->name('update');
Route::get('show/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'show'])->name('show');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\GroupController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\GroupController::class, "trashed"])->name('trashed');
Route::post('sort/save', [\App\Http\Controllers\Admin\GroupController::class, 'sortSave'])->name('sort-save');
Route::get('sort', [\App\Http\Controllers\Admin\GroupController::class, 'sort'])->name('sort');
Route::get('', [\App\Http\Controllers\Admin\AdvController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\AdvController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\AdvController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\AdvController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\AdvController::class, "trashed"])->name('trashed');
});
Route::prefix('discounts')->name('discount.')->group(
Route::prefix('area')->name('area.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\DiscountController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\DiscountController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\DiscountController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\DiscountController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\DiscountController::class, "trashed"])->name('trashed');
Route::get('index', [\App\Http\Controllers\Admin\AreaController::class, "index"])->name('index');
Route::get('design/{area}', [\App\Http\Controllers\Admin\AreaController::class, "design"])->name('design');
Route::get('design/model/{area}/{model}/{id}', [\App\Http\Controllers\Admin\AreaController::class, "designModel"])->name('design.model');
Route::get('image/{segment}/{part}', [\App\Http\Controllers\Admin\AreaController::class, "image"])->name('image');
// Route::post('store', [\App\Http\Controllers\Admin\SettingController::class, "store"])->name('store');
Route::post('update/{area}', [\App\Http\Controllers\Admin\AreaController::class, "update"])->name('update');
Route::post('update/model/{model}/{id}', [\App\Http\Controllers\Admin\AreaController::class, "updateModel"])->name('update.model');
Route::get('sort/{area}', [\App\Http\Controllers\Admin\AreaController::class, "sort"])->name('sort');
Route::get('build', [\App\Http\Controllers\Admin\AreaController::class, "build"])->name('build');
Route::get('guide', [\App\Http\Controllers\Admin\AreaController::class, "guide"])->name('guide');
Route::post('sort-save/{area}', [\App\Http\Controllers\Admin\AreaController::class, "sortSave"])->name('sort-save');
}
);
Route::prefix('attachments')->name('attachment.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\AttachmentController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\AttachmentController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\AttachmentController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'destroy'])->name('destroy');
Route::get('detach/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'detach'])->name('detach');
Route::post('bulk', [\App\Http\Controllers\Admin\AttachmentController::class, "bulk"])->name('bulk');
Route::post('attaching', [\App\Http\Controllers\Admin\AttachmentController::class, "attaching"])->name('attaching');
});
Route::prefix('evaluations')->name('evaluation.')->group(
Route::prefix('categories')->name('category.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\EvaluationController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\EvaluationController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\EvaluationController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\EvaluationController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\EvaluationController::class, "trashed"])->name('trashed');
Route::get('', [\App\Http\Controllers\Admin\CategoryController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\CategoryController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\CategoryController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'edit'])->name('edit');
Route::get('show/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'show'])->name('show');
Route::post('update/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\CategoryController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\CategoryController::class, "trashed"])->name('trashed');
Route::post('sort/save', [\App\Http\Controllers\Admin\CategoryController::class, 'sortSave'])->name('sort-save');
Route::get('sort', [\App\Http\Controllers\Admin\CategoryController::class, 'sort'])->name('sort');
});
Route::prefix('tags')->name('tag.')->group(
Route::prefix('cities')->name('city.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\TagController::class, 'index'])->name('index');
Route::get('', [\App\Http\Controllers\Admin\CityController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\CityController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\CityController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\CityController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\CityController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\CityController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\CityController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\CityController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\CityController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\CityController::class, "trashed"])->name('trashed');
});
Route::prefix('tickets')->name('ticket.')->group(
Route::prefix('clips')->name('clip.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\TicketController::class, 'index'])->name('index');
// Route::get('create', [\App\Http\Controllers\Admin\TicketController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\TicketController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\TicketController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\TicketController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\TicketController::class, 'destroy'])->name('destroy');
Route::post('bulk', [\App\Http\Controllers\Admin\TicketController::class, "bulk"])->name('bulk');
Route::get('', [\App\Http\Controllers\Admin\ClipController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\ClipController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\ClipController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\ClipController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\ClipController::class, "trashed"])->name('trashed');
});
Route::prefix('contacts')->name('contact.')->group(
function () {
@ -115,45 +136,76 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group(
Route::post('replying/{item}', [\App\Http\Controllers\Admin\CommentController::class, 'replying'])->name('replying');
Route::post('bulk', [\App\Http\Controllers\Admin\CommentController::class, "bulk"])->name('bulk');
});
Route::prefix('transports')->name('transport.')->group(
Route::prefix('customers')->name('customer.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\TransportController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\TransportController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\TransportController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\TransportController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\TransportController::class, "trashed"])->name('trashed');
Route::get('', [\App\Http\Controllers\Admin\CustomerController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\CustomerController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\CustomerController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\CustomerController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\CustomerController::class, "trashed"])->name('trashed');
});
Route::prefix('questions')->name('question.')->group(
Route::prefix('discounts')->name('discount.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\QuestionController::class, 'index'])->name('index');
// Route::get('create', [\App\Http\Controllers\Admin\TransportController::class, 'create'])->name('create');
// Route::post('store', [\App\Http\Controllers\Admin\TransportController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'destroy'])->name('destroy');
// Route::get('restore/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\QuestionController::class, "bulk"])->name('bulk');
Route::get('', [\App\Http\Controllers\Admin\DiscountController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\DiscountController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\DiscountController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\DiscountController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\DiscountController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\DiscountController::class, "trashed"])->name('trashed');
});
Route::prefix('categories')->name('category.')->group(
Route::prefix('evaluations')->name('evaluation.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\CategoryController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\CategoryController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\CategoryController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'edit'])->name('edit');
Route::get('show/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'show'])->name('show');
Route::post('update/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\CategoryController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\CategoryController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\CategoryController::class, "trashed"])->name('trashed');
Route::post('sort/save', [\App\Http\Controllers\Admin\CategoryController::class, 'sortSave'])->name('sort-save');
Route::get('sort', [\App\Http\Controllers\Admin\CategoryController::class, 'sort'])->name('sort');
Route::get('', [\App\Http\Controllers\Admin\EvaluationController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\EvaluationController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\EvaluationController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\EvaluationController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\EvaluationController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\EvaluationController::class, "trashed"])->name('trashed');
});
Route::prefix('galleries')->name('gallery.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\GalleryController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\GalleryController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\GalleryController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'show'])->name('show');
Route::post('title/update', [\App\Http\Controllers\Admin\GalleryController::class, 'updateTitle'])->name('title');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'destroy'])->name('destroy');
Route::post('bulk', [\App\Http\Controllers\Admin\GalleryController::class, "bulk"])->name('bulk');
});
Route::prefix('gfx')->name('gfx.')->group(
function () {
Route::get('index', [\App\Http\Controllers\Admin\GfxController::class, "index"])->name('index');
// Route::post('store', [\App\Http\Controllers\Admin\SettingController::class, "store"])->name('store');
Route::post('update', [\App\Http\Controllers\Admin\GfxController::class, "update"])->name('update');
}
);
Route::prefix('groups')->name('group.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\GroupController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\GroupController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\GroupController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'update'])->name('update');
Route::get('show/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'show'])->name('show');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\GroupController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\GroupController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\GroupController::class, "trashed"])->name('trashed');
Route::post('sort/save', [\App\Http\Controllers\Admin\GroupController::class, 'sortSave'])->name('sort-save');
Route::get('sort', [\App\Http\Controllers\Admin\GroupController::class, 'sort'])->name('sort');
});
Route::prefix('invoices')->name('invoice.')->group(
function () {
@ -169,72 +221,25 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group(
Route::post('bulk', [\App\Http\Controllers\Admin\InvoiceController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\InvoiceController::class, "trashed"])->name('trashed');
});
Route::prefix('posts')->name('post.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\PostController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\PostController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\PostController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\PostController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\PostController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\PostController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\PostController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\PostController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\PostController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\PostController::class, "trashed"])->name('trashed');
Route::get('group/edit/{id}', [\App\Http\Controllers\Admin\PostController::class, 'groupEdit'])->name('group-edit');
Route::post('group/save/{item}', [\App\Http\Controllers\Admin\PostController::class, 'groupSave'])->name('group-save');
});
Route::prefix('attachments')->name('attachment.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\AttachmentController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\AttachmentController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\AttachmentController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'destroy'])->name('destroy');
Route::get('deattach/{item}', [\App\Http\Controllers\Admin\AttachmentController::class, 'deattach'])->name('deattach');
Route::post('bulk', [\App\Http\Controllers\Admin\AttachmentController::class, "bulk"])->name('bulk');
});
Route::prefix('clips')->name('clip.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\ClipController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\ClipController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\ClipController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\ClipController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\ClipController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\ClipController::class, "trashed"])->name('trashed');
});
Route::prefix('adv')->name('adv.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\AdvController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\AdvController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\AdvController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\AdvController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\AdvController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\AdvController::class, "trashed"])->name('trashed');
});
Route::prefix('customers')->name('customer.')->group(
Route::prefix('langs')->name('lang.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\CustomerController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\CustomerController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\CustomerController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\CustomerController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\CustomerController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\CustomerController::class, "trashed"])->name('trashed');
Route::get('/', [\App\Http\Controllers\Admin\XLangController::class, 'index'])->name('index');
Route::get('/translates', [\App\Http\Controllers\Admin\XLangController::class, 'translate'])->name('translate');
Route::get('/delete/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'destroy'])->name('delete');
Route::get('/create', [\App\Http\Controllers\Admin\XLangController::class, 'create'])->name('create');
Route::post('/store', [\App\Http\Controllers\Admin\XLangController::class, 'store'])->name('store');
Route::get('/edit/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'edit'])->name('edit');
Route::post('/update/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'update'])->name('update');
Route::post('bulk', [\App\Http\Controllers\Admin\XLangController::class, "bulk"])->name('bulk');
Route::get('/download/{tag}', [\App\Http\Controllers\Admin\XLangController::class, 'download'])->name('download');
Route::get('/ai/{tag}', [\App\Http\Controllers\Admin\XLangController::class, 'ai'])->name('ai');
Route::post('/upload/{tag}', [\App\Http\Controllers\Admin\XLangController::class, 'upload'])->name('upload');
Route::get('/model/translate/{id}/{model}', [\App\Http\Controllers\Admin\XLangController::class, 'translateModel'])->name('model');
Route::post('/model/translate/save/{id}/{model}', [\App\Http\Controllers\Admin\XLangController::class, 'translateModelSave'])->name('modelSave');
Route::get('/model/ai/{id}/{model}/{field}/{lang}', [\App\Http\Controllers\Admin\XLangController::class, 'translateModelAi'])->name('aiText');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'restore'])->name('restore');
Route::get('trashed', [\App\Http\Controllers\Admin\XLangController::class, "trashed"])->name('trashed');
});
Route::prefix('menus')->name('menu.')->group(
function () {
@ -251,45 +256,21 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group(
Route::post('sort/save', [\App\Http\Controllers\Admin\MenuController::class, 'sortSave'])->name('sort-save');
Route::get('sort/{item}', [\App\Http\Controllers\Admin\MenuController::class, 'sort'])->name('sort');
});
Route::prefix('states')->name('state.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\StateController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\StateController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\StateController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\StateController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\StateController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\StateController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\StateController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\StateController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\StateController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\StateController::class, "trashed"])->name('trashed');
});
Route::prefix('cities')->name('city.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\CityController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\CityController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\CityController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\CityController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\CityController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\CityController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\CityController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\CityController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\CityController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\CityController::class, "trashed"])->name('trashed');
});
Route::prefix('galleries')->name('gallery.')->group(
Route::prefix('posts')->name('post.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\GalleryController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\GalleryController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\GalleryController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'show'])->name('show');
Route::post('title/update', [\App\Http\Controllers\Admin\GalleryController::class, 'updateTitle'])->name('title');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\GalleryController::class, 'destroy'])->name('destroy');
Route::post('bulk', [\App\Http\Controllers\Admin\GalleryController::class, "bulk"])->name('bulk');
Route::get('', [\App\Http\Controllers\Admin\PostController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\PostController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\PostController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\PostController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\PostController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\PostController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\PostController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\PostController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\PostController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\PostController::class, "trashed"])->name('trashed');
Route::get('group/edit/{id}', [\App\Http\Controllers\Admin\PostController::class, 'groupEdit'])->name('group-edit');
Route::post('group/save/{item}', [\App\Http\Controllers\Admin\PostController::class, 'groupSave'])->name('group-save');
});
Route::prefix('products')->name('product.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\ProductController::class, 'index'])->name('index');
@ -321,6 +302,26 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group(
Route::post('sort/save', [\App\Http\Controllers\Admin\PropController::class, 'sortSave'])->name('sort-save');
Route::get('sort', [\App\Http\Controllers\Admin\PropController::class, 'sort'])->name('sort');
});
Route::prefix('questions')->name('question.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\QuestionController::class, 'index'])->name('index');
// Route::get('create', [\App\Http\Controllers\Admin\TransportController::class, 'create'])->name('create');
// Route::post('store', [\App\Http\Controllers\Admin\TransportController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'destroy'])->name('destroy');
// Route::get('restore/{item}', [\App\Http\Controllers\Admin\QuestionController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\QuestionController::class, "bulk"])->name('bulk');
});
Route::prefix('setting')->name('setting.')->group(
function () {
Route::get('index', [\App\Http\Controllers\Admin\SettingController::class, "index"])->name('index');
Route::post('store', [\App\Http\Controllers\Admin\SettingController::class, "store"])->name('store');
Route::post('update', [\App\Http\Controllers\Admin\SettingController::class, "update"])->name('update');
Route::get('cache/clear', [\App\Http\Controllers\Admin\SettingController::class, "cacheClear"])->name('cache-clear');
Route::get('live/{slug}', [\App\Http\Controllers\Admin\SettingController::class, "liveEdit"])->name('live');
}
);
Route::prefix('sliders')->name('slider.')->group(
function () {
Route::get('', [\App\Http\Controllers\Admin\SliderController::class, 'index'])->name('index');
@ -333,66 +334,59 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group(
Route::get('delete/{item}', [\App\Http\Controllers\Admin\SliderController::class, 'destroy'])->name('destroy');
Route::post('bulk', [\App\Http\Controllers\Admin\SliderController::class, "bulk"])->name('bulk');
});
Route::prefix('addresses')->name('address.')->group(
Route::prefix('states')->name('state.')->group(
function () {
Route::get('customer/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'customer'])->name('customer');
Route::post('add/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'store'])->name('store');
Route::post('update/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'update'])->name('update');
Route::get('destroy/{item}', [\App\Http\Controllers\Admin\AddressController::class, 'destroy'])->name('destroy');
Route::get('', [\App\Http\Controllers\Admin\StateController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\StateController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\StateController::class, 'store'])->name('store');
Route::get('show/{item}', [\App\Http\Controllers\Admin\StateController::class, 'show'])->name('show');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\StateController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\StateController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\StateController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\StateController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\StateController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\StateController::class, "trashed"])->name('trashed');
});
Route::prefix('setting')->name('setting.')->group(
Route::prefix('tags')->name('tag.')->group(
function () {
Route::get('index', [\App\Http\Controllers\Admin\SettingController::class, "index"])->name('index');
Route::post('store', [\App\Http\Controllers\Admin\SettingController::class, "store"])->name('store');
Route::post('update', [\App\Http\Controllers\Admin\SettingController::class, "update"])->name('update');
Route::get('cache/clear', [\App\Http\Controllers\Admin\SettingController::class, "cacheClear"])->name('cache-clear');
Route::get('live/{slug}', [\App\Http\Controllers\Admin\SettingController::class, "liveEdit"])->name('live');
}
);
Route::prefix('gfx')->name('gfx.')->group(
Route::get('', [\App\Http\Controllers\Admin\TagController::class, 'index'])->name('index');
});
Route::prefix('tickets')->name('ticket.')->group(
function () {
Route::get('index', [\App\Http\Controllers\Admin\GfxController::class, "index"])->name('index');
// Route::post('store', [\App\Http\Controllers\Admin\SettingController::class, "store"])->name('store');
Route::post('update', [\App\Http\Controllers\Admin\GfxController::class, "update"])->name('update');
}
);
Route::prefix('area')->name('area.')->group(
Route::get('', [\App\Http\Controllers\Admin\TicketController::class, 'index'])->name('index');
// Route::get('create', [\App\Http\Controllers\Admin\TicketController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\TicketController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\TicketController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\TicketController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\TicketController::class, 'destroy'])->name('destroy');
Route::post('bulk', [\App\Http\Controllers\Admin\TicketController::class, "bulk"])->name('bulk');
});
Route::prefix('transports')->name('transport.')->group(
function () {
Route::get('index', [\App\Http\Controllers\Admin\AreaController::class, "index"])->name('index');
Route::get('design/{area}', [\App\Http\Controllers\Admin\AreaController::class, "design"])->name('design');
Route::get('design/model/{area}/{model}/{id}', [\App\Http\Controllers\Admin\AreaController::class, "designModel"])->name('design.model');
Route::get('image/{segment}/{part}', [\App\Http\Controllers\Admin\AreaController::class, "image"])->name('image');
// Route::post('store', [\App\Http\Controllers\Admin\SettingController::class, "store"])->name('store');
Route::post('update/{area}', [\App\Http\Controllers\Admin\AreaController::class, "update"])->name('update');
Route::post('update/model/{model}/{id}', [\App\Http\Controllers\Admin\AreaController::class, "updateModel"])->name('update.model');
Route::get('sort/{area}', [\App\Http\Controllers\Admin\AreaController::class, "sort"])->name('sort');
Route::get('build', [\App\Http\Controllers\Admin\AreaController::class, "build"])->name('build');
Route::get('guide', [\App\Http\Controllers\Admin\AreaController::class, "guide"])->name('guide');
Route::post('sort-save/{area}', [\App\Http\Controllers\Admin\AreaController::class, "sortSave"])->name('sort-save');
}
);
Route::get('', [\App\Http\Controllers\Admin\TransportController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\TransportController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\TransportController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'edit'])->name('edit');
Route::post('update/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\TransportController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\TransportController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\TransportController::class, "trashed"])->name('trashed');
});
Route::prefix('langs')->name('lang.')->group(
Route::prefix('users')->name('user.')->group(
function () {
Route::get('/', [\App\Http\Controllers\Admin\XLangController::class, 'index'])->name('index');
Route::get('/translates', [\App\Http\Controllers\Admin\XLangController::class, 'translate'])->name('translate');
Route::get('/delete/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'destroy'])->name('delete');
Route::get('/create', [\App\Http\Controllers\Admin\XLangController::class, 'create'])->name('create');
Route::post('/store', [\App\Http\Controllers\Admin\XLangController::class, 'store'])->name('store');
Route::get('/edit/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'edit'])->name('edit');
Route::post('/update/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'update'])->name('update');
Route::post('bulk', [\App\Http\Controllers\Admin\XLangController::class, "bulk"])->name('bulk');
Route::get('/download/{tag}', [\App\Http\Controllers\Admin\XLangController::class, 'download'])->name('download');
Route::get('/ai/{tag}', [\App\Http\Controllers\Admin\XLangController::class, 'ai'])->name('ai');
Route::post('/upload/{tag}', [\App\Http\Controllers\Admin\XLangController::class, 'upload'])->name('upload');
Route::get('/model/translate/{id}/{model}', [\App\Http\Controllers\Admin\XLangController::class, 'translateModel'])->name('model');
Route::post('/model/translate/save/{id}/{model}', [\App\Http\Controllers\Admin\XLangController::class, 'translateModelSave'])->name('modelSave');
Route::get('/model/ai/{id}/{model}/{field}/{lang}', [\App\Http\Controllers\Admin\XLangController::class, 'translateModelAi'])->name('aiText');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\XLangController::class, 'restore'])->name('restore');
Route::get('trashed', [\App\Http\Controllers\Admin\XLangController::class, "trashed"])->name('trashed');
Route::get('', [\App\Http\Controllers\Admin\UserController::class, 'index'])->name('index');
Route::get('create', [\App\Http\Controllers\Admin\UserController::class, 'create'])->name('create');
Route::post('store', [\App\Http\Controllers\Admin\UserController::class, 'store'])->name('store');
Route::get('edit/{item}', [\App\Http\Controllers\Admin\UserController::class, 'edit'])->name('edit');
Route::get('log/{item}', [\App\Http\Controllers\Admin\AdminLogController::class, 'log'])->name('log');
Route::get('show/{item}', [\App\Http\Controllers\Admin\UserController::class, 'show'])->name('show');
Route::post('update/{item}', [\App\Http\Controllers\Admin\UserController::class, 'update'])->name('update');
Route::get('delete/{item}', [\App\Http\Controllers\Admin\UserController::class, 'destroy'])->name('destroy');
Route::get('restore/{item}', [\App\Http\Controllers\Admin\UserController::class, 'restore'])->name('restore');
Route::post('bulk', [\App\Http\Controllers\Admin\UserController::class, "bulk"])->name('bulk');
Route::get('trashed', [\App\Http\Controllers\Admin\UserController::class, "trashed"])->name('trashed');
});
});

Loading…
Cancel
Save