aggiunto funzionalità modale ai popup di inserimento. TODO: rivedere impostazione grafica dell'aggiunta della riga
This commit is contained in:
parent
f673953377
commit
709e415273
@ -6,6 +6,7 @@ use App\Models\Progetti;
|
|||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\RigaProgetto;
|
use App\Models\RigaProgetto;
|
||||||
|
use function GuzzleHttp\json_encode;
|
||||||
|
|
||||||
class ProgettiController extends Controller
|
class ProgettiController extends Controller
|
||||||
{
|
{
|
||||||
@ -24,6 +25,11 @@ class ProgettiController extends Controller
|
|||||||
return view('progetti.new',['coordinatori'=>User::getUsers()]);
|
return view('progetti.new',['coordinatori'=>User::getUsers()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getCoordinatori()
|
||||||
|
{
|
||||||
|
return json_encode(User::getUsers());
|
||||||
|
}
|
||||||
|
|
||||||
public function salvaProgetto(Request $request)
|
public function salvaProgetto(Request $request)
|
||||||
{
|
{
|
||||||
Progetti::saveProgetto($request);
|
Progetti::saveProgetto($request);
|
||||||
@ -36,9 +42,9 @@ class ProgettiController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function dettaglioProgetto(Request $id)
|
public function dettaglioProgetto($id)
|
||||||
{
|
{
|
||||||
$progetto_id=$id['id'];
|
$progetto_id=$id;
|
||||||
$progetto = Progetti::getProgettoById($progetto_id);
|
$progetto = Progetti::getProgettoById($progetto_id);
|
||||||
$righe = RigaProgetto::getRigheProgetto($progetto_id);
|
$righe = RigaProgetto::getRigheProgetto($progetto_id);
|
||||||
$costo_tot=RigaProgetto::getCostoRighe($progetto_id);
|
$costo_tot=RigaProgetto::getCostoRighe($progetto_id);
|
||||||
|
@ -8,14 +8,14 @@ use App\Models\RigaProgetto;
|
|||||||
class RigaProgettoController extends Controller
|
class RigaProgettoController extends Controller
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
public function deleterow($id_row,$id_prog)
|
public function deleterow($id_row,$id)
|
||||||
{
|
{
|
||||||
$id_riga = $id_row;
|
$id_riga = $id_row;
|
||||||
$id_progetto = $id_prog;
|
//$id_progetto = $id_prog;
|
||||||
|
|
||||||
RigaProgetto::deleteRow($id_riga);
|
RigaProgetto::deleteRow($id_riga);
|
||||||
// Ritorna alla pagina dei dettagli del progetto
|
// Ritorna alla pagina dei dettagli del progetto
|
||||||
return redirect('/admin/progetti/detail/?id='.$id_progetto);
|
return redirect('/admin/progetti/detail/'.$id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function editRiga($id)
|
public function editRiga($id)
|
||||||
@ -26,17 +26,17 @@ class RigaProgettoController extends Controller
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateRiga(Request $data)
|
public function updateRiga(Request $data,$id)
|
||||||
{
|
{
|
||||||
RigaProgetto::updateRiga($data);
|
RigaProgetto::updateRiga($data);
|
||||||
$id_progetto=$data['fk_id_progetto'];
|
// $id_progetto=$data['fk_id_progetto'];
|
||||||
return redirect('/admin/progetti/detail/?id='.$id_progetto);
|
return redirect('/admin/progetti/detail/'.$id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function inserisciRiga(Request $args)
|
public function inserisciRiga(Request $args,$id)
|
||||||
{
|
{
|
||||||
RigaProgetto::saveRiga($args);
|
RigaProgetto::saveRiga($args,$id);
|
||||||
return redirect(Route('detail',['id'=>$args['fk_id_progetto']]));
|
return redirect('/admin/progetti/detail/'.$id);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,10 @@ class RigaProgetto extends Model
|
|||||||
return DB::table('riga_progettos')->where('fk_id_progetto','=',$progetto_id)->orderBy('data')->get();
|
return DB::table('riga_progettos')->where('fk_id_progetto','=',$progetto_id)->orderBy('data')->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function saveRiga($args)
|
public static function saveRiga($args,$id)
|
||||||
{
|
{
|
||||||
DB::table('riga_progettos')->insert([
|
DB::table('riga_progettos')->insert([
|
||||||
'fk_id_progetto'=>$args['fk_id_progetto'],
|
'fk_id_progetto'=>$id,
|
||||||
'data'=>$args['data'],
|
'data'=>$args['data'],
|
||||||
'descrizione'=>$args['descrizione'],
|
'descrizione'=>$args['descrizione'],
|
||||||
'prezzo'=>$args['prezzo'],
|
'prezzo'=>$args['prezzo'],
|
||||||
|
@ -6,12 +6,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- Content here -->
|
<!-- Content here -->
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12">
|
|
||||||
<a class="btn btn-primary" href="progetti/new"><i
|
|
||||||
class="fa fa-pencil-square-o fw"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-10">
|
<div class="col-xs-10">
|
||||||
@ -87,59 +82,15 @@
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-10">
|
<div class="col-xs-10">
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading" id="form">Inserisci riga (click
|
|
||||||
show/hide)</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<form method="POST" action="">
|
|
||||||
<div class="row">
|
|
||||||
@csrf
|
|
||||||
<div class="col-xs-2">
|
|
||||||
|
|
||||||
<!-- Form per task con jquery e aggiunta righe automatica -->
|
|
||||||
<label for="tdata" class="form-label">data:</label> <input
|
|
||||||
type="date" name="data" class="form-control" id="data"
|
|
||||||
value="{{ date('Y-m-d') }}">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-5">
|
|
||||||
|
|
||||||
<!-- Form per task con jquery e aggiunta righe automatica -->
|
|
||||||
<label for="desc" class="form-label">descrizione:</label> <input
|
|
||||||
type="text" name="descrizione" class="form-control" id="desc">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-2">
|
|
||||||
<label for="ore" class="form-label">ore lavoro:</label>
|
|
||||||
<!-- Form per task con jquery e aggiunta righe automatica -->
|
|
||||||
<input type="text" name="ore" class="form-control" id="ore">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-2">
|
|
||||||
<label for="ore" class="form-label">prezzo:</label>
|
|
||||||
<!-- Form per task con jquery e aggiunta righe automatica -->
|
|
||||||
<input type="text" name="prezzo" class="form-control" id="ore">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-1">
|
|
||||||
<input type="hidden" name="fk_id_progetto" value="{{ $progetto->id }}">
|
|
||||||
<input type="submit" name="Submit" class="form-control">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-10">
|
<div class="col-xs-10">
|
||||||
<div class="panel panel-default">
|
<div class="row p-3">
|
||||||
<div class="panel-heading" id="form">Elementi e costi del progetto</div>
|
<button class="btn btn-primary open_modal_addRow">Nuova riga</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table class="table table-striped table-bordered table-hover" id="tab_progetti">
|
<table class="table table-striped table-bordered table-hover" id="tab_progetti">
|
||||||
<thead>
|
<thead>
|
||||||
@ -159,7 +110,7 @@
|
|||||||
<td>{{ $riga->descrizione }}</td>
|
<td>{{ $riga->descrizione }}</td>
|
||||||
<td>{{ $riga->ore }}</td>
|
<td>{{ $riga->ore }}</td>
|
||||||
<td>{{ $riga->prezzo }}</td>
|
<td>{{ $riga->prezzo }}</td>
|
||||||
<td><a href="delete_row/{{ $riga->id }}/return/{{ $progetto->id }}" class="btn btn-danger">X</a>
|
<td><a href="/admin/progetti/delete_row/{{ $riga->id }}/return/{{ $progetto->id }}" class="btn btn-danger">X</a>
|
||||||
|
|
||||||
<button class="btn btn-warning btn-detail open_modal" value="{{$riga->id}}">Edit</button>
|
<button class="btn btn-warning btn-detail open_modal" value="{{$riga->id}}">Edit</button>
|
||||||
</td>
|
</td>
|
||||||
@ -243,39 +194,56 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- MODAL END -->
|
<!-- MODAL END -->
|
||||||
|
|
||||||
|
<!-- MODAL NEW ROW -->
|
||||||
|
<div class="modal fade" id="myModal_addRow" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="panel-heading" id="form">Aggiungi Riga</div>
|
||||||
|
|
||||||
|
<form method="POST" action="">
|
||||||
|
<div class="row">
|
||||||
|
@csrf
|
||||||
|
<div class="col-xs-2">
|
||||||
|
|
||||||
|
<!-- Form per task con jquery e aggiunta righe automatica -->
|
||||||
|
<label for="tdata" class="form-label">data:</label> <input
|
||||||
|
type="date" name="data" class="form-control" id="data"
|
||||||
|
value="{{ date('Y-m-d') }}">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-5">
|
||||||
|
|
||||||
|
<!-- Form per task con jquery e aggiunta righe automatica -->
|
||||||
|
<label for="desc" class="form-label">descrizione:</label> <input
|
||||||
|
type="text" name="descrizione" class="form-control" id="desc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2">
|
||||||
|
<label for="ore" class="form-label">ore lavoro:</label>
|
||||||
|
<!-- Form per task con jquery e aggiunta righe automatica -->
|
||||||
|
<input type="text" name="ore" class="form-control" id="ore">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2">
|
||||||
|
<label for="ore" class="form-label">prezzo:</label>
|
||||||
|
<!-- Form per task con jquery e aggiunta righe automatica -->
|
||||||
|
<input type="text" name="prezzo" class="form-control" id="ore">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-1">
|
||||||
|
<!-- <input type="hidden" name="fk_id_progetto" value="">-->
|
||||||
|
<input type="submit" name="Submit" class="form-control">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<!-- /MODAL RIGA -->
|
||||||
|
|
||||||
|
|
||||||
<!-- /.col-lg-12 -->
|
<!-- /.col-lg-12 -->
|
||||||
|
|
||||||
@endsection @section('script')
|
@endsection @section('script')
|
||||||
<script>
|
<script src="/js/app/rigaProgetti.js"></script>
|
||||||
$(document).ready(function() {
|
|
||||||
$('#tab_progetti').DataTable({
|
|
||||||
responsive: true
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#form').click(function(){
|
|
||||||
$('form').toggle();
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#dettaglio").click(function(){
|
|
||||||
$('[hidable]').toggle();
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).on('click','.open_modal',function(){
|
|
||||||
var url = "detail/edit";
|
|
||||||
var riga_id= $(this).val();
|
|
||||||
$.get(url + '/' + riga_id, function (data) {
|
|
||||||
//success data
|
|
||||||
console.log(data);
|
|
||||||
console.log(data[0].descrizione);
|
|
||||||
$('#data_u').val(data[0].data);
|
|
||||||
$('#desc_u').val(data[0].descrizione);
|
|
||||||
$('#ore_u').val(data[0].ore);
|
|
||||||
$('#prezzo_u').val(data[0].prezzo);
|
|
||||||
$('#id_progetto_u').val(data[0].fk_id_progetto);
|
|
||||||
$('#idriga').val(data[0].id);
|
|
||||||
$('#myModal').modal('show');
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@endsection
|
@endsection
|
@ -1,28 +1,27 @@
|
|||||||
@extends('admin')
|
@extends('admin') @section('content')
|
||||||
@section('content')
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h1 class="page-header">Lista Progetti</h1>
|
<h1 class="page-header">Lista Progetti</h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- Content here -->
|
<!-- Content here -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<a class="btn btn-primary" href="progetti/new"><i class="fa fa-pencil-square-o fw"></i></a>
|
<button class="btn btn-primary open_modal_new"><i
|
||||||
|
class="fa fa-pencil-square-o fw"></i>Nuovo Progetto</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-10">
|
<div class="col-xs-10">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">Lista dei progetti</div>
|
||||||
Lista dei progetti
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped table-bordered table-hover" id="tab_progetti">
|
<table class="table table-striped table-bordered table-hover"
|
||||||
|
id="tab_progetti">
|
||||||
|
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -37,14 +36,14 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
@foreach($progetti ?? '' as $progetto)
|
@foreach($progetti ?? '' as $progetto)
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="progetti/detail?id={{ $progetto->progetto }}">{{ $progetto->nome; }}</a></td>
|
<td><a href="progetti/detail/{{ $progetto->progetto }}">{{
|
||||||
|
$progetto->nome; }}</a></td>
|
||||||
<td>{{ $progetto->data_creazione; }}</td>
|
<td>{{ $progetto->data_creazione; }}</td>
|
||||||
<td>{{ $progetto->stato; }}</td>
|
<td>{{ $progetto->stato; }}</td>
|
||||||
<td>{{ $progetto->name; }}</td>
|
<td>{{ $progetto->name; }}</td>
|
||||||
<td>{{ $progetto->budget; }}</td>
|
<td>{{ $progetto->budget; }}</td>
|
||||||
<td>
|
<td><a href="progetti/delete?id={{ $progetto->progetto }}"
|
||||||
<a href="progetti/delete?id={{ $progetto->progetto }}" class="btn btn-danger">Cancella</a>
|
class="btn btn-danger">Cancella</a></td>
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -53,19 +52,94 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- /.col-lg-12 -->
|
<!-- /.col-lg-12 -->
|
||||||
|
<!-- MODAL -->
|
||||||
|
<div class="modal fade" id="myModal_new" tabindex="-1" role="dialog"
|
||||||
|
aria-labelledby="myModalLabel" aria-hidden="true">
|
||||||
|
<form action="" method="POST" id="form_new">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title">Nuovo Progetto</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
|
||||||
@endsection
|
@csrf
|
||||||
|
<div class="row">
|
||||||
@section('script')
|
<div class="col-xs-6">
|
||||||
<script>
|
<label for="nome" class="form-label">Nome</label> <input
|
||||||
$(document).ready(function() {
|
type="text" class="form-control" id="nome" name="nome" />
|
||||||
$('#tab_progetti').DataTable({
|
</div>
|
||||||
responsive: true
|
<div class="col-xs-6">
|
||||||
});
|
<label for="coordinatore" class="form-label">Coordinatore</label>
|
||||||
});
|
<!-- TODO: Da vedere funzione di select in js -->
|
||||||
</script>
|
<select name="coordinatore" class="form-control selectpicker"
|
||||||
@endsection
|
id="coordinatore" data-live-search="true"
|
||||||
|
data-live-search-placeholder="Cerca">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<label for="descrizione" class="form-label">Descrizione</label>
|
||||||
|
<textarea class="form-control" id="descrizione"
|
||||||
|
name="descrizione"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-5">
|
||||||
|
<label for="budget" class="form-label">Budget previsto</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"> <i class="fa fa-eur"></i>
|
||||||
|
</span> <input type="number" step="0.01" min="-999999"
|
||||||
|
max="999999" class="form-control" id="budget" size="50"
|
||||||
|
name="budget" aria-describedby="Budget">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div id="importo" class="form-text">inserire l'importo (se spesa far precedere da il simbolo "-")</div>-->
|
||||||
|
<div class="col-xs-7">
|
||||||
|
<label for=stato class="form-label">Tag</label> <select
|
||||||
|
name="stato" class="form-control" id="stato">
|
||||||
|
<option value="aperto">Aperto</option>
|
||||||
|
<option value="bloccato">Bloccato</option>
|
||||||
|
<option value="chiuso">chiuso</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<label for="data_inizio" class="form-label">Data Inizio</label>
|
||||||
|
<input type="date" class="form-control" id="data_inizio"
|
||||||
|
name="data_inizio" />
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<label for="data_fine" class="form-label">Data Fine</label> <input
|
||||||
|
type="date" class="form-control" id="data_fine"
|
||||||
|
name="data_fine" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<label for="note" class="form-label">Note</label>
|
||||||
|
<textarea class="form-control" id="note" name="note"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<button type="submit" class="btn btn-primary">Aggiungi</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<!-- /MODAL -->
|
||||||
|
@endsection @section('script')
|
||||||
|
<script src="/js/app/progetti.js"></script>
|
||||||
|
@endsection
|
@ -115,10 +115,11 @@ Route::get('/', [MovimentiController::class,'dashboard']);
|
|||||||
Route::get('progetti/new', [ProgettiController::class, 'nuovoProgetto'])->name('nuovoProgetto');
|
Route::get('progetti/new', [ProgettiController::class, 'nuovoProgetto'])->name('nuovoProgetto');
|
||||||
Route::get('progetti/delete',[ProgettiController::class, 'deleteProgetto']);
|
Route::get('progetti/delete',[ProgettiController::class, 'deleteProgetto']);
|
||||||
Route::get('progetti/delete_row/{id_row}/return/{id_prog}',[RigaProgettoController::class, 'deleterow']);
|
Route::get('progetti/delete_row/{id_row}/return/{id_prog}',[RigaProgettoController::class, 'deleterow']);
|
||||||
Route::get('progetti/detail', [ProgettiController::class, 'dettaglioProgetto'])->name('detail');
|
Route::get('progetti/detail/{id}', [ProgettiController::class, 'dettaglioProgetto'])->name('detail');
|
||||||
Route::post('progetti/detail', [RigaProgettoController::class, 'inserisciRiga']);
|
Route::post('progetti/detail/{id}', [RigaProgettoController::class, 'inserisciRiga']);
|
||||||
Route::get('progetti/detail/edit/{id}', [RigaProgettoController::class, 'editRiga']);
|
Route::get('progetti/detail/edit/{id}', [RigaProgettoController::class, 'editRiga']);
|
||||||
Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']);
|
Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']);
|
||||||
|
Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']);
|
||||||
/// TEST routes
|
/// TEST routes
|
||||||
Route::get('fullcalendar', [FullCalenderController::class, 'index']);
|
Route::get('fullcalendar', [FullCalenderController::class, 'index']);
|
||||||
Route::post('fullcalendar', [FullCalenderController::class, 'ajax']);
|
Route::post('fullcalendar', [FullCalenderController::class, 'ajax']);
|
||||||
|
Loading…
Reference in New Issue
Block a user