diff --git a/skolehjem/app/Http/Controllers/MultipleEventsController.php b/skolehjem/app/Http/Controllers/MultipleEventsController.php index 711f503..72e7e20 100644 --- a/skolehjem/app/Http/Controllers/MultipleEventsController.php +++ b/skolehjem/app/Http/Controllers/MultipleEventsController.php @@ -151,8 +151,46 @@ class MultipleEventsController extends Controller * @param \App\MultipleEvents $multipleeventsController * @return \Illuminate\Http\Response */ - public function destroy(MultipleeventsController $multipleeventsController) + public function destroy(Request $request, MultipleeventsController $multipleeventsController) { - // + if ($request->signup != null) { // If input signup is not empty, which has been set when you look at the individuel signup, then delete the user who have signed up for the event + $UserEvent = UserEvent::query()->where('user_id', "=", $request->signup)->where('multiple_event_id', "=", $multipleeventsController); + + $UserEvent->delete(); + + return redirect()->route("multiple-events.signups", [ "event" => $multipleeventsController ]); + } else { // Else if you are deleting an event. Then delete all the sign ups AND the event + $userEvents = UserEvent::where('multiple_event_id', "=", $multipleeventsController)->get(); + $multiparent = MultipleEventsParent::where('id', '=', $multipleeventsController)->get(); + $multievent = MultipleEvents::where('multiple_events_parent_id', '=', $multiparent->id)->get(); + + foreach ($userEvents as $userEvent) { + $userEvent->delete(); + } + + foreach ($multievent as $me) { + $me->delete(); + } + + $news = News::query()->join('news_types', 'news_types.id', '=', 'news.type_id')->where("type", "=", "MultipleEvent")->where("arrangement_id", "=", $multipleeventsController); + $news->delete(); + + $multiparent->delete(); + + return redirect()->route("multiple-events.index"); + } + } + + public function previewPages(Request $request){ + /*if(!Resource::find($request->preview)){ + $multipleEventsParent = MultipleEventsParent::find($request->preview); + $multipleEvents = MultipleEvents::where('multiple_events_parent_id', '=', $multipleEventsParent->id)->get(); + } else {*/ + //$multipleEventsParent = MultipleEventsParent::find($request->preview); + $multipleEventsParent = MultipleEventsParent::leftJoin('resources', 'resources.id', '=', 'multiple_events_parent.resource_id')->where('multiple_events_parent.id', '=', $request->preview)->first(); + $multipleEvents = MultipleEvents::where('multiple_events_parent_id', '=', $multipleEventsParent->id)->get(); + //} + + return [$multipleEventsParent, $multipleEvents]; } } diff --git a/skolehjem/app/Http/Controllers/RootController.php b/skolehjem/app/Http/Controllers/RootController.php index 6bf3192..d377336 100644 --- a/skolehjem/app/Http/Controllers/RootController.php +++ b/skolehjem/app/Http/Controllers/RootController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Event; use App\Guide; +use App\MultipleEventsParent; use App\News; use App\Resource; use App\User; @@ -24,17 +25,18 @@ class RootController extends Controller public function index() { if (File::exists(public_path('uploads'))) { foreach (File::allFiles(public_path('uploads')) as $file) { - $resource = Resource::query()->where('filename', '=', '/uploads/' . $file->getFilename())->get(); + $resource = Resource::where('filename', '=', '/uploads/' . $file->getFilename())->get(); if(count($resource) < 1) unlink(public_path() . '/uploads/' . $file->getFilename()); else { - $events = Event::query()->where('resource_id', '=', $resource[0]->id)->get(); - $news = News::query()->where('resource_id', '=', $resource[0]->id)->get(); - $guides = Guide::query()->where('resource_id', '=', $resource[0]->id)->get(); - $users = User::query()->where('resource_id', '=', $resource[0]->id)->get(); + $events = Event::where('resource_id', '=', $resource[0]->id)->get(); + $multipleevent = MultipleEventsParent::where('resource_id', '=', $resource[0]->id)->get(); + $news = News::where('resource_id', '=', $resource[0]->id)->get(); + $guides = Guide::where('resource_id', '=', $resource[0]->id)->get(); + $users = User::where('resource_id', '=', $resource[0]->id)->get(); - if(count($events) < 1 && count($news) < 1 && count($guides) < 1 && count($users) < 1) { + if(count($events) < 1 && count($news) < 1 && count($guides) < 1 && count($users) < 1 && count($multipleevent) < 1) { $resource[0]->delete(); unlink(public_path() . '/uploads/' . $file->getFilename()); } diff --git a/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php b/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php index 1850a2c..56aa485 100644 --- a/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php +++ b/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php @@ -19,7 +19,8 @@ class CreateUserEventsTable extends Migration $table->timestamps(); $table->foreignid("user_id")->constrained("users", "id"); - $table->foreignid("event_id")->constrained("events", "id"); + $table->foreignid("event_id")->nullable()->constrained("events", "id"); + $table->foreignid("multiple_event_id")->nullable()->constrained("multiple_events", "id"); }); } diff --git a/skolehjem/resources/views/admin/events/index.blade.php b/skolehjem/resources/views/admin/events/index.blade.php index 8d087ba..f66ea4d 100644 --- a/skolehjem/resources/views/admin/events/index.blade.php +++ b/skolehjem/resources/views/admin/events/index.blade.php @@ -48,7 +48,7 @@ {{ $event->accountable }} {{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($event->date))->format('d/m/Y \k\l\. H:i') }} $event ]) }}">Show - preview + preview @if(auth()->user()->can('event.edit')) $event ]) }}">Update @endif @@ -64,7 +64,7 @@ -