Browse Source

Merge pull request #15 from nafiesl/fix/issue#14

Fix some calendar bug and Notification Improvement
pull/16/head
Nafies Luthfi 7 years ago
committed by GitHub
parent
commit
e4d3695c44
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      app/Http/Controllers/Api/EventsController.php
  2. 8
      resources/lang/de/event.php
  3. 8
      resources/lang/en/event.php
  4. 8
      resources/lang/id/event.php
  5. 23
      resources/views/users/calendar.blade.php
  6. 36
      tests/Feature/Api/ApiEventsTest.php

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

@ -150,10 +150,11 @@ class EventsController extends Controller
public function reschedule(Request $request)
{
$this->validate($request, [
$request->validate([
'id' => 'required|numeric|exists:user_events,id',
'start' => 'required|date|date_format:Y-m-d H:i:s',
'end' => '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 = [

8
resources/lang/de/event.php

@ -0,0 +1,8 @@
<?php
return [
'created' => 'Event created.',
'updated' => 'Event updated.',
'deleted' => 'Event deleted.',
'rescheduled' => 'Event has been rescheduled.',
];

8
resources/lang/en/event.php

@ -0,0 +1,8 @@
<?php
return [
'created' => 'Event created.',
'updated' => 'Event updated.',
'deleted' => 'Event deleted.',
'rescheduled' => 'Event has been rescheduled.',
];

8
resources/lang/id/event.php

@ -0,0 +1,8 @@
<?php
return [
'created' => 'Event berhasil diinput.',
'updated' => 'Event berhasil diupdate.',
'deleted' => 'Event berhasil dihapus.',
'rescheduled' => 'Jadwal event berhasil diubah.',
];

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

@ -17,7 +17,6 @@
</div>
</div>
<!-- calendar modal -->
<div id="CalenderModalNew" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
@ -127,7 +126,6 @@
<div id="fc_create" data-toggle="modal" data-target="#CalenderModalNew"></div>
<div id="fc_edit" data-toggle="modal" data-target="#CalenderModalEdit"></div>
<!-- /calendar modal -->
@endsection
@section('ext_css')
@ -140,6 +138,7 @@
@endsection
@section('script')
<script src="{{ asset('assets/js/plugins/noty.js') }}"></script>
<script>
(function() {
var date = new Date(),
@ -191,7 +190,6 @@
method: "POST",
data: { title: title, body: body, project_id: project_id, start: started.format("YYYY-MM-DD HH:mm:ss"), end: ended.format("YYYY-MM-DD HH:mm:ss"), is_allday: is_allday },
success: function(response){
if(response.message == 'event.created') {
calendar.fullCalendar('renderEvent', {
id: response.data.id,
title: title,
@ -204,7 +202,7 @@
allDay: is_allday,
editable: true
}, true);
}
noty({type: 'success', layout: 'bottomRight', text: response.message, timeout: 3000});
},
error: function(e){
alert('Error processing your request: '+e.responseText);
@ -252,9 +250,8 @@
},
data: { id: calEvent.id },
success: function(response){
if(response.message == 'event.deleted')
noty({type: 'warning', layout: 'bottomRight', text: response.message, timeout: 3000});
calendar.fullCalendar('removeEvents', calEvent.id);
console.log(calEvent);
},
error: function(e){
alert('Error processing your request: '+e.responseText);
@ -277,9 +274,8 @@
method: "PATCH",
data: { id: calEvent.id, title: calEvent.title, body: calEvent.body, project_id: calEvent.project_id, is_allday: calEvent.is_allday },
success: function(response){
if(response.message == 'event.updated')
noty({type: 'success', layout: 'bottomRight', text: response.message, timeout: 3000});
$('#calendar').fullCalendar('updateEvent',calEvent);
console.log(calEvent);
},
error: function(e){
alert('Error processing your request: '+e.responseText);
@ -300,10 +296,9 @@
$.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();
noty({type: 'success', layout: 'bottomRight', text: response.message, timeout: 3000});
},
error: function(e){
revertFunc();
@ -317,17 +312,15 @@
$.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: 'false' },
success: function(response){
if(response.message != 'event.rescheduled')
revertFunc();
noty({type: 'success', layout: 'bottomRight', text: response.message, timeout: 3000});
},
error: function(e){
revertFunc();
alert('Error processing your request: '+e.responseText);
}
});
}
});
})();

36
tests/Feature/Api/ApiEventsTest.php

@ -140,22 +140,50 @@ class ApiEventsTest extends TestCase
'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',
'end' => null,
'is_allday' => 1,
]);
}
}
Loading…
Cancel
Save