diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php
index 32ed6f6..cdbf925 100644
--- a/app/Http/Controllers/EventController.php
+++ b/app/Http/Controllers/EventController.php
@@ -14,11 +14,15 @@ class EventController extends Controller
/**
* Display a listing of the resource.
*
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Http\Response|object
*/
public function index()
{
- //
+ $events = Event::all();
+
+ return (EventResource::collection($events))
+ ->response()
+ ->setStatusCode(200);
}
/**
diff --git a/app/Http/Resources/Event.php b/app/Http/Resources/Event.php
index 9522499..48f6c75 100644
--- a/app/Http/Resources/Event.php
+++ b/app/Http/Resources/Event.php
@@ -3,6 +3,7 @@
namespace App\Http\Resources;
use App\Http\Resources\User as UserResource;
+use App\Http\Resources\EventCategory as EventCategoryRessource;
use App\Http\Resources\EventGuestWithoutEmail as GuestsWithoutEmailResource;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -27,11 +28,7 @@ class Event extends JsonResource
'start_date' => $this->start_date,
'end_date' => $this->end_date,
'location' => $this->location,
- 'category' => [
- 'data' => [
- 'category_id' => $this->category_id
- ],
- ],
+ 'category' => new EventCategoryRessource($this->category),
'invitations' => UserResource::collection($this->guests),
'invitations-with-email' => [
'data' => GuestsWithoutEmailResource::collection($this->emailedGuests)
diff --git a/app/Models/Event.php b/app/Models/Event.php
index 7d037d6..1d4c312 100644
--- a/app/Models/Event.php
+++ b/app/Models/Event.php
@@ -4,6 +4,7 @@ namespace App\Models;
use App\User;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -11,6 +12,11 @@ class Event extends Model
{
protected $guarded = [];
+ public function category() :BelongsTo
+ {
+ return $this->belongsTo(EventCategory::class, 'category_id');
+ }
+
public function guests() :BelongsToMany
{
return $this->belongsToMany(User::class, 'event_guest')
diff --git a/deploy.sh b/deploy.sh
index dcd3b66..0feca03 100644
--- a/deploy.sh
+++ b/deploy.sh
@@ -48,6 +48,7 @@ if [ -z "$1" ]; then
composer install
php artisan migrate --force
+ php artisan db:seed
php artisan optimize
npm install --no-progress
@@ -79,6 +80,7 @@ elif [ "$1" = git-prod ]; then
composer install
php artisan migrate --force
+ php artisan db:seed
php artisan optimize
fi
diff --git a/resources/js/components/Form/DateTimeField.vue b/resources/js/components/Form/DateTimeField.vue
index 1ffd5a8..0ac20e4 100644
--- a/resources/js/components/Form/DateTimeField.vue
+++ b/resources/js/components/Form/DateTimeField.vue
@@ -1,13 +1,74 @@
-$END$
+
+
+
+
+
+
+
Error Here
+
-
diff --git a/resources/js/components/Form/InputField.vue b/resources/js/components/Form/InputField.vue
index 0ef175c..f005f6a 100644
--- a/resources/js/components/Form/InputField.vue
+++ b/resources/js/components/Form/InputField.vue
@@ -2,7 +2,7 @@
-
Error Here
+
Error Here
@@ -55,8 +55,8 @@ export default {
}
},
errorClassObject: function () {
- return {
- 'error-field': this.hasError
+ if (this.hasError) {
+ return 'border-red'
}
}
},
diff --git a/resources/js/components/Form/SelectorField.vue b/resources/js/components/Form/SelectorField.vue
new file mode 100644
index 0000000..5cbe02a
--- /dev/null
+++ b/resources/js/components/Form/SelectorField.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
Error Here
+
+
+
+
diff --git a/resources/js/components/Form/TextAreaField.vue b/resources/js/components/Form/TextAreaField.vue
index 935e133..d3b6fff 100644
--- a/resources/js/components/Form/TextAreaField.vue
+++ b/resources/js/components/Form/TextAreaField.vue
@@ -1,6 +1,6 @@
-
+
-
Error Here
+
Error Here
@@ -60,8 +60,8 @@ export default {
}
},
errorClassObject: function () {
- return {
- 'error-field': this.hasError
+ if (this.hasError) {
+ return 'border-red'
}
}
},
diff --git a/resources/js/components/Nav.vue b/resources/js/components/Nav.vue
index 5c252ed..25e693d 100644
--- a/resources/js/components/Nav.vue
+++ b/resources/js/components/Nav.vue
@@ -17,6 +17,10 @@
Bookmarks
+
+
+ Evénements
+
Jeux
diff --git a/resources/js/router.js b/resources/js/router.js
index 49a1c34..010d10d 100644
--- a/resources/js/router.js
+++ b/resources/js/router.js
@@ -15,6 +15,10 @@ import BookmarkIndex from './views/Bookmark/BookmarkIndex'
import GameIndex from './views/Games/GameIndex'
import Hangman from './views/Games/HangMan/Hangman'
import Quizz from './views/Games/Quizz/Quizz'
+import EventIndex from './views/Event/EventIndex'
+import EventCreate from './views/Event/EventCreate'
+import EventShow from './views/Event/EventShow'
+import EventEdit from './views/Event/EventEdit'
Vue.use(VueRouter)
@@ -66,6 +70,20 @@ export default new VueRouter({
meta: {title: 'Details of List'}
},
+ {
+ path: '/events', component: EventIndex,
+ meta: {title: 'Events List'}
+ }, {
+ path: '/events/create', component: EventCreate,
+ meta: {title: 'Add New Event'}
+ }, {
+ path: '/events/:id', component: EventShow,
+ meta: {title: 'Detail for Event'}
+ }, {
+ path: '/events/:id/edit', component: EventEdit,
+ meta: {title: 'Edit Event'}
+ },
+
{
path: '/bookmarks', component: BookmarkIndex,
meta: {title: 'Bookmark Lists'}
diff --git a/resources/js/views/Event/EventCreate.vue b/resources/js/views/Event/EventCreate.vue
index 230edcc..7762f1e 100644
--- a/resources/js/views/Event/EventCreate.vue
+++ b/resources/js/views/Event/EventCreate.vue
@@ -1,13 +1,113 @@
-$END$
+
-
-
diff --git a/resources/js/views/Event/EventEdit.vue b/resources/js/views/Event/EventEdit.vue
new file mode 100644
index 0000000..572187c
--- /dev/null
+++ b/resources/js/views/Event/EventEdit.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
diff --git a/resources/js/views/Event/EventIndex.vue b/resources/js/views/Event/EventIndex.vue
index b45125d..c82ab4a 100644
--- a/resources/js/views/Event/EventIndex.vue
+++ b/resources/js/views/Event/EventIndex.vue
@@ -1,13 +1,58 @@
-$END$
+
+
+
+
+
+
No memos yet. Get Started >
+
+
+
+
+
+
{{ event.data.attributes.data.name }}
+ {{ event.data.attributes.data.location }}
+
+
{{ event.data.attributes.data.description }}
+
+ {{ event.data.attributes.data.category.data.attributes.data.name }}
+ {{ event.data.attributes.data.start_date }}
+
+
+
+
+
+
-
-
diff --git a/resources/js/views/Event/EventShow.vue b/resources/js/views/Event/EventShow.vue
new file mode 100644
index 0000000..4efa9a7
--- /dev/null
+++ b/resources/js/views/Event/EventShow.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
Are you sure you want to delete this record ?
+
+
+
+
+
+
+
+
+
+
{{ event.data.attributes.data.name }}
+ {{ event.data.attributes.data.location }}
+
+
+
{{ event.data.attributes.data.description }}
+
+ {{ event.data.attributes.data.category.data.attributes.data.name }}
+ {{ event.data.attributes.data.start_date }}
+
+
+
+
+
+
+
diff --git a/resources/sass/components/_base.scss b/resources/sass/components/_base.scss
index e5daee9..c1c9cb3 100644
--- a/resources/sass/components/_base.scss
+++ b/resources/sass/components/_base.scss
@@ -35,6 +35,14 @@ textarea {
@apply ;
}
+select {
+ @apply border py-2 px-4 rounded bg-white;
+
+ option {
+ @apply bg-white;
+ }
+}
+
.text-shadow {
text-shadow: 1px 1px 2px #000;
}
diff --git a/resources/svg/calendar.svg b/resources/svg/calendar.svg
new file mode 100644
index 0000000..d0039a9
--- /dev/null
+++ b/resources/svg/calendar.svg
@@ -0,0 +1,9 @@
+
diff --git a/tests/Feature/EventsTest.php b/tests/Feature/EventsTest.php
index 0796ed4..f33ce59 100644
--- a/tests/Feature/EventsTest.php
+++ b/tests/Feature/EventsTest.php
@@ -172,7 +172,7 @@ class EventsTest extends TestCase
}
/** @test */
- public function only_the_admin_can_patch_the_memo()
+ public function only_the_admin_can_patch_the_event_category()
{
$this->actingAs($user = factory(User::class)->create(), 'api');
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
@@ -305,6 +305,19 @@ class EventsTest extends TestCase
]);
}
+ /** @test */
+ public function all_event_can_be_retrieved()
+ {
+ $this->actingAs($user = factory(User::class)->create(), 'api');
+ $events = factory(Event::class, 10)->create(['user_id' => $user->id]);
+
+ $response = $this->get('/api/events');
+
+ $response->assertStatus(200);
+
+ $this->assertCount(10, Event::all());
+ }
+
/** @test */
public function a_to_event_can_be_patch()
{