v1.5.21 - Added edit feature to multiple events

Updated events
Fixed (maybe) htaccess
This commit is contained in:
Anders
2021-05-06 15:25:36 +02:00
parent b6105d0e0b
commit e7184cd820
8 changed files with 228 additions and 77 deletions
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\MultipleEvents;
use App\MultipleEventsParent;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Barryvdh\DomPDF\Facade as PDF;
@@ -59,6 +60,7 @@ class MultipleEventsController extends Controller
public function store(Request $request)
{
$requestBody = $request->validate([
"week" => "required",
"name" => "array",
"description" => "array",
"accountable" => "array",
@@ -93,14 +95,13 @@ class MultipleEventsController extends Controller
$multiEvents = MultipleEventsParent::query()->get();
if($request->newsoption == true){
$news = new News();
$news->name = "Nye ugentlig aktivitets";
$news->name = "Ny ugentlig aktivitet";
$news->subname = $request->week;
$news->arrangement_id = $multipleParent->id;
$news->type_id = '5';
$news->content = "Den ugentlige aktivitets plan er landet";
$news->content = "Den ugentlige aktivitets plan for uge ".$request->week." er her!";
$news->resource_id = $request->resource_id;
NewsController::storeAndGet($news);
}
return redirect()->route('events.index', ['multiEvents' => $multiEvents]);
@@ -127,7 +128,8 @@ class MultipleEventsController extends Controller
public function edit($id)
{
$multiEvents = MultipleEvents::where('multiple_events_parent_id', '=', $id)->get();
return Response::detect("multiple-events.edit", ["multiEvents" => $multiEvents, "parentEvent" => $id]);
$parentEvent = MultipleEventsParent::find($id);
return Response::detect("multiple-events.edit", ["multiEvents" => $multiEvents, "parentEvent" => $parentEvent]);
}
/**
@@ -139,7 +141,54 @@ class MultipleEventsController extends Controller
*/
public function update(Request $request, $id)
{
dd($request);
$requestBody = $request->validate([
"week" => "required",
"name" => "array",
"description" => "array",
"accountable" => "array",
"date" => "array",
]);
$parentEvent = MultipleEventsParent::find($id);
if($request->file("resource")) {
$parentEvent->update(["week" => $request->week, "resource_id" => ResourceController::store($request)->id]) ;
} else
$parentEvent->update(["week" => $request->week]);
//dd($requestBody);
foreach ($requestBody["name"] as $key => $singleEvent) {
if ($key == "new") {
//dd(count($s));
for ($i = 0; $i < count($singleEvent); $i++) {
$multi_event = new MultipleEvents();
$multi_event->name = $requestBody["name"]["new"][$i];
$multi_event->description = $requestBody["description"]["new"][$i];
$multi_event->accountable = $requestBody["accountable"]["new"][$i];
$multi_event->date = $requestBody["date"]["new"][$i];
$multi_event->multiple_events_parent_id = $id;
$multi_event->save();
}
} else {
$event = MultipleEvents::find($key);
$event->update(["name" => $requestBody["name"][$key][0], "description" => $requestBody["description"][$key][0], "accountable" => $requestBody["accountable"][$key][0], "date" => date("Y-m-d H:i:s", strtotime($requestBody["date"][$key][0]))]);
}
}
if($request->newsoption == true){
$news = new News();
$news->name = "Opdateret ugentlig aktivitet";
$news->subname = $request->week;
$news->arrangement_id = $parentEvent->id;
$news->type_id = '5';
$news->content = "Den ugentlige aktivitets plan for uge ".$request->week." er opdateret!";
$news->resource_id = $request->resource_id;
NewsController::storeAndGet($news);
}
$events = Event::query()->orderBY('date' , 'asc')->get();
return Response::detect("events.index", [ "events" => $events]);
}
@@ -162,21 +211,30 @@ class MultipleEventsController extends Controller
*/
public function destroy(Request $request, $id)
{
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
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 specific week event
$UserEvent = UserEvent::find($id);
$UserEvent->delete();
return 1;
} else { // Else if you are deleting an event. Then delete all the sign ups AND the event
$userEvents = UserEvent::where('multiple_event_id', "=", $id)->get();
} elseif ($request->onlyMultiEvent != null) { // Delete a single event from multiple events, and all its signups
$userEvents = UserEvent::where('multiple_event_id', '=', $id)->get();
$multiEvent = MultipleEvents::find($id);
foreach ($userEvents as $ue) {
$ue->delete();
}
$multiEvent->delete();
return 1;
} else { // Delete all multiple events and signups, from the parent/weekly event
$multiparent = MultipleEventsParent::find($id);
$multievent = MultipleEvents::where('multiple_events_parent_id', '=', $id)->get();
foreach ($userEvents as $userEvent) {
$userEvent->delete();
}
foreach ($multievent as $me) {
foreach (UserEvent::where('multiple_event_id', '=', $me->id)->get() as $ue) {
$ue->delete();
}
$me->delete();
}
$news = News::query()->join('news_types', 'news_types.id', '=', 'news.type_id')->where("type", "=", "MultipleEvent")->where("arrangement_id", "=", $id);