Browse Source

Timed events can be set as all-day event

pull/15/head
Nafies Luthfi 7 years ago
parent
commit
0f8859241b
  1. 14
      app/Http/Controllers/Api/EventsController.php
  2. 2
      resources/views/users/calendar.blade.php
  3. 48
      tests/Feature/Api/ApiEventsTest.php

14
app/Http/Controllers/Api/EventsController.php

@ -150,10 +150,11 @@ class EventsController extends Controller
public function reschedule(Request $request)
{
$this->validate($request, [
'id' => 'required|numeric|exists:user_events,id',
'start' => 'required|date|date_format:Y-m-d H:i:s',
'end' => 'nullable|date|date_format:Y-m-d H:i:s',
$request->validate([
'id' => 'required|numeric|exists:user_events,id',
'start' => 'required|date|date_format:Y-m-d H:i:s',
'end' => 'nullable|date|date_format:Y-m-d H:i:s',
'is_allday' => 'required|in:true,false',
]);
$event = Event::findOrFail($request->get('id'));
@ -165,6 +166,11 @@ class EventsController extends Controller
$event->is_allday = false;
}
if ($request->get('is_allday') == 'true') {
$event->end = null;
$event->is_allday = true;
}
$event->save();
$response = [

2
resources/views/users/calendar.blade.php

@ -300,7 +300,7 @@
$.ajax({
url: "{{ route('api.events.reschedule') }}",
method: "PATCH",
data: { id: calEvent.id, start: start, end: end },
data: { id: calEvent.id, start: start, end: end, is_allday: calEvent.allDay },
success: function(response){
if(response.message != 'event.rescheduled')
revertFunc();

48
tests/Feature/Api/ApiEventsTest.php

@ -137,25 +137,53 @@ class ApiEventsTest extends TestCase
$event = factory(Event::class)->create(['user_id' => $user->id, 'start' => '2016-11-17 12:00:00']);
$this->patchJson(route('api.events.reschedule'), [
'id' => $event->id,
'start' => '2016-11-07 13:00:00',
'end' => '2016-11-07 15:00:00',
'id' => $event->id,
'start' => '2016-11-07 13:00:00',
'end' => '2016-11-07 15:00:00',
'is_allday' => 'false',
], [
'Authorization' => 'Bearer '.$user->api_token,
]);
// $this->dump();
$this->seeStatusCode(200);
$this->seeJson(['message' => trans('event.rescheduled')]);
$this->seeInDatabase('user_events', [
'id' => $event->id,
'user_id' => $user->id,
'start' => '2016-11-07 13:00:00',
'end' => '2016-11-07 15:00:00',
'is_allday' => 0,
]);
}
$this->seeJson([
'message' => trans('event.rescheduled'),
/** @test */
public function event_can_be_set_as_all_day_event()
{
$user = factory(User::class)->create();
$event = factory(Event::class)->create([
'user_id' => $user->id,
'start' => '2016-11-17 12:00:00',
'end' => '2016-11-17 14:00:00',
'is_allday' => 0,
]);
$this->patchJson(route('api.events.reschedule'), [
'id' => $event->id,
'start' => '2016-11-07 13:00:00',
'end' => '2016-11-07 15:00:00',
'is_allday' => 'true',
], [
'Authorization' => 'Bearer '.$user->api_token,
]);
$this->seeStatusCode(200);
$this->seeJson(['message' => trans('event.rescheduled')]);
$this->seeInDatabase('user_events', [
'id' => $event->id,
'user_id' => $user->id,
'start' => '2016-11-07 13:00:00',
'end' => '2016-11-07 15:00:00',
'id' => $event->id,
'user_id' => $user->id,
'start' => '2016-11-07 13:00:00',
'end' => null,
'is_allday' => 1,
]);
}
}
Loading…
Cancel
Save