iniziato test calendario - non funziona ancora
This commit is contained in:
parent
95ba0f602b
commit
717d100dcf
128
app/Http/Controllers/FullCalenderController.php
Normal file
128
app/Http/Controllers/FullCalenderController.php
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class FullCalenderController extends Controller
|
||||||
|
{
|
||||||
|
**
|
||||||
|
|
||||||
|
* Write code on Method
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
* @return response()
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function index(Request $request)
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if($request->ajax()) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$data = Event::whereDate('start', '>=', $request->start)
|
||||||
|
|
||||||
|
->whereDate('end', '<=', $request->end)
|
||||||
|
|
||||||
|
->get(['id', 'title', 'start', 'end']);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return response()->json($data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return view('fullcalender');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
* Write code on Method
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
* @return response()
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function ajax(Request $request)
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
switch ($request->type) {
|
||||||
|
|
||||||
|
case 'add':
|
||||||
|
|
||||||
|
$event = Event::create([
|
||||||
|
|
||||||
|
'title' => $request->title,
|
||||||
|
|
||||||
|
'start' => $request->start,
|
||||||
|
|
||||||
|
'end' => $request->end,
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return response()->json($event);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case 'update':
|
||||||
|
|
||||||
|
$event = Event::find($request->id)->update([
|
||||||
|
|
||||||
|
'title' => $request->title,
|
||||||
|
|
||||||
|
'start' => $request->start,
|
||||||
|
|
||||||
|
'end' => $request->end,
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return response()->json($event);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case 'delete':
|
||||||
|
|
||||||
|
$event = Event::find($request->id)->delete();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return response()->json($event);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
|
# code...
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
29
app/Models/Event.php
Normal file
29
app/Models/Event.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Event extends Model
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
|
||||||
|
'title', 'start', 'end'
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreateEventsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
Schema::create('events', function (Blueprint $table) {
|
||||||
|
|
||||||
|
$table->id();
|
||||||
|
|
||||||
|
$table->string('title');
|
||||||
|
|
||||||
|
$table->date('start');
|
||||||
|
|
||||||
|
$table->date('end');
|
||||||
|
|
||||||
|
$table->timestamps();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('events');
|
||||||
|
}
|
||||||
|
}
|
253
resources/views/fullcalendar.blade.php
Normal file
253
resources/views/fullcalendar.blade.php
Normal file
@ -0,0 +1,253 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<title>Laravel Fullcalender Tutorial Tutorial - ItSolutionStuff.com</title>
|
||||||
|
|
||||||
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.css" />
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css" />
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<h1>Laravel FullCalender Tutorial Example - ItSolutionStuff.com</h1>
|
||||||
|
|
||||||
|
<div id='calendar'></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var SITEURL = "{{ url('/') }}";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$.ajaxSetup({
|
||||||
|
|
||||||
|
headers: {
|
||||||
|
|
||||||
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var calendar = $('#calendar').fullCalendar({
|
||||||
|
|
||||||
|
editable: true,
|
||||||
|
|
||||||
|
events: SITEURL + "/fullcalender",
|
||||||
|
|
||||||
|
displayEventTime: false,
|
||||||
|
|
||||||
|
editable: true,
|
||||||
|
|
||||||
|
eventRender: function (event, element, view) {
|
||||||
|
|
||||||
|
if (event.allDay === 'true') {
|
||||||
|
|
||||||
|
event.allDay = true;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
event.allDay = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
selectable: true,
|
||||||
|
|
||||||
|
selectHelper: true,
|
||||||
|
|
||||||
|
select: function (start, end, allDay) {
|
||||||
|
|
||||||
|
var title = prompt('Event Title:');
|
||||||
|
|
||||||
|
if (title) {
|
||||||
|
|
||||||
|
var start = $.fullCalendar.formatDate(start, "Y-MM-DD");
|
||||||
|
|
||||||
|
var end = $.fullCalendar.formatDate(end, "Y-MM-DD");
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
|
||||||
|
url: SITEURL + "/fullcalenderAjax",
|
||||||
|
|
||||||
|
data: {
|
||||||
|
|
||||||
|
title: title,
|
||||||
|
|
||||||
|
start: start,
|
||||||
|
|
||||||
|
end: end,
|
||||||
|
|
||||||
|
type: 'add'
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "POST",
|
||||||
|
|
||||||
|
success: function (data) {
|
||||||
|
|
||||||
|
displayMessage("Event Created Successfully");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
calendar.fullCalendar('renderEvent',
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
id: data.id,
|
||||||
|
|
||||||
|
title: title,
|
||||||
|
|
||||||
|
start: start,
|
||||||
|
|
||||||
|
end: end,
|
||||||
|
|
||||||
|
allDay: allDay
|
||||||
|
|
||||||
|
},true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
calendar.fullCalendar('unselect');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
eventDrop: function (event, delta) {
|
||||||
|
|
||||||
|
var start = $.fullCalendar.formatDate(event.start, "Y-MM-DD");
|
||||||
|
|
||||||
|
var end = $.fullCalendar.formatDate(event.end, "Y-MM-DD");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
|
||||||
|
url: SITEURL + '/fullcalenderAjax',
|
||||||
|
|
||||||
|
data: {
|
||||||
|
|
||||||
|
title: event.title,
|
||||||
|
|
||||||
|
start: start,
|
||||||
|
|
||||||
|
end: end,
|
||||||
|
|
||||||
|
id: event.id,
|
||||||
|
|
||||||
|
type: 'update'
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "POST",
|
||||||
|
|
||||||
|
success: function (response) {
|
||||||
|
|
||||||
|
displayMessage("Event Updated Successfully");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
eventClick: function (event) {
|
||||||
|
|
||||||
|
var deleteMsg = confirm("Do you really want to delete?");
|
||||||
|
|
||||||
|
if (deleteMsg) {
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
|
||||||
|
type: "POST",
|
||||||
|
|
||||||
|
url: SITEURL + '/fullcalenderAjax',
|
||||||
|
|
||||||
|
data: {
|
||||||
|
|
||||||
|
id: event.id,
|
||||||
|
|
||||||
|
type: 'delete'
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
success: function (response) {
|
||||||
|
|
||||||
|
calendar.fullCalendar('removeEvents', event.id);
|
||||||
|
|
||||||
|
displayMessage("Event Deleted Successfully");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function displayMessage(message) {
|
||||||
|
|
||||||
|
toastr.success(message, 'Event');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -6,6 +6,7 @@ use App\Http\Controllers\ContatoreEnElController;
|
|||||||
use App\Http\Controllers\ContatoreGasController;
|
use App\Http\Controllers\ContatoreGasController;
|
||||||
use App\Http\Controllers\MovimentiController;
|
use App\Http\Controllers\MovimentiController;
|
||||||
use App\Http\Controllers\TagController;
|
use App\Http\Controllers\TagController;
|
||||||
|
use App\Http\Controllers\FullCalenderController;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -35,6 +36,8 @@ Route::get('/', function () {
|
|||||||
Route::post('movmodify',[MovimentiController::class,'updatePostMovimenti']);
|
Route::post('movmodify',[MovimentiController::class,'updatePostMovimenti']);
|
||||||
Route::get('movdelete',[MovimentiController::class,'deleteMovimenti']);
|
Route::get('movdelete',[MovimentiController::class,'deleteMovimenti']);
|
||||||
|
|
||||||
|
Route::get('fullcalender', [FullCalenderController::class, 'index']);
|
||||||
|
Route::post('fullcalenderAjax', [FullCalenderController::class, 'ajax']);
|
||||||
|
|
||||||
Route::get('categorie', [CategorieController::class,'listCategorie'])->name('categorie');
|
Route::get('categorie', [CategorieController::class,'listCategorie'])->name('categorie');
|
||||||
Route::post('categorie', [CategorieController::class,'insCategorie']);
|
Route::post('categorie', [CategorieController::class,'insCategorie']);
|
||||||
|
Loading…
Reference in New Issue
Block a user