/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param $guildSlug
  * @param $occurrenceId
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request, $guildSlug, $occurrenceId)
 {
     $occurrence = EventOccurrence::with(['event', 'event.guild', 'signups', 'signups.character', 'signups.character.user'])->whereHas('event.guild', function ($query) use($guildSlug) {
         $query->where('slug', $guildSlug);
     })->findOrFail($occurrenceId);
     $event = $occurrence->event;
     $guild = $event->guild;
     $signups = $occurrence->signups;
     $character = Character::whereHas('guilds', function ($query) use($guild) {
         $query->where('guilds.id', $guild->id);
     })->where(['user_id' => Auth::user()->id])->first();
     if ($character == null) {
         abort(401, 'No characters in that guild');
     }
     foreach ($signups as $signup) {
         if ($signup->character_id == $character->id) {
             return $this->update($request, $guildSlug, $occurrenceId, $signup->id);
         }
     }
     $signup = new Signup();
     $signup->character_id = $character->id;
     $signup->event_occurrence_id = $occurrence->id;
     $signup->status = $request->get('status');
     $signup->save();
     return redirect()->route('guilds.events.show', [$guildSlug, $occurrenceId]);
 }
Пример #2
0
 /**
  * Display the specified resource.
  *
  * @param $slug
  * @return \Illuminate\Http\Response
  */
 public function show($slug)
 {
     $guild = Guild::where('slug', $slug)->firstOrFail();
     $now = Carbon::now();
     if (Input::has('month')) {
         $now->month = Input::get('month');
     }
     if (Input::has('year')) {
         $now->year = Input::get('year');
     }
     $startOfMonth = $now->copy()->startOfMonth();
     $endOfMonth = $now->copy()->endOfMonth();
     $occurrences = EventOccurrence::where('begin_at', '<', $endOfMonth)->where('end_at', '>', $startOfMonth)->whereHas('event', function ($query) use($guild) {
         $query->where('guild_id', $guild->id);
     })->with('event')->get();
     $events = [];
     foreach ($occurrences as $occurrence) {
         $events[$occurrence->begin_at->day][] = $occurrence;
     }
     $monthNames = [1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
     $dayNames = [1 => 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
     $month = $this->makeMonth($monthNames, $now);
     $lastRaids = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guild) {
         $query->where('id', $guild->id);
     })->where('begin_at', '<', Carbon::now())->orderBy('begin_at', 'desc')->limit(2)->get();
     $lastRaids = $lastRaids->reverse();
     $nextRaids = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guild) {
         $query->where('id', $guild->id);
     })->where('begin_at', '>', Carbon::now())->orderBy('begin_at')->limit(2)->get();
     return view('guilds.show', compact('guild', 'events', 'now', 'month', 'monthNames', 'dayNames', 'lastRaids', 'nextRaids'));
 }
Пример #3
0
 /**
  * Display the specified resource.
  *
  * @param $guildSlug
  * @param $occurrenceId
  * @return \Illuminate\Http\Response
  */
 public function show($guildSlug, $occurrenceId)
 {
     $guild = Guild::where('slug', $guildSlug)->firstOrFail();
     $occurrence = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guild) {
         $query->where('id', $guild->id);
     })->findOrFail($occurrenceId);
     $event = $occurrence->event;
     $guild = $event->guild;
     $signups = Signup::where(['event_occurrence_id' => $occurrence->id])->orderBy('created_at')->get();
     $comments = Comment::where(['event_occurrence_id' => $occurrence->id])->orderBy('created_at')->get();
     $character = Character::whereHas('guilds', function ($query) use($guild) {
         $query->where('guilds.id', $guild->id);
     })->where(['user_id' => Auth::user()->id])->firstOrFail();
     $ownSignup = null;
     $isSigned = false;
     foreach ($signups as $signup) {
         if ($signup->character_id == $character->id) {
             $ownSignup = $signup;
             $isSigned = true;
         }
     }
     if ($ownSignup == null) {
         $ownSignup = new Signup();
     }
     $statistic = new \stdClass();
     foreach (['YES', 'MAYBE', 'NO'] as $status) {
         $name = strtolower($status);
         $statistic->{$name} = $signups->filter(function ($signup) use($status) {
             return $signup->status == $status;
         })->count();
     }
     return view('guilds.events.show', compact('occurrence', 'event', 'guild', 'signups', 'comments', 'ownSignup', 'isSigned', 'statistic'));
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function show($id, $occId)
 {
     //
     $eventOccurrence = EventOccurrence::with(['comments'])->where('event_id', $id)->findOrFail($occId);
     $activitiesCompleted = collect([]);
     foreach ($eventOccurrence->activities as $activity) {
         $usersWhoHaveCompleted = collect([]);
         foreach ($eventOccurrence->event->group->users as $user) {
             $usersWhoHaveCompleted->push($user->id);
         }
         $activitiesCompleted->put($activity->id, $usersWhoHaveCompleted);
     }
     return view('eventOccurrence', compact('eventOccurrence'), compact('activitiesCompleted'));
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param $guildSlug
  * @param $occurrenceId
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request, $guildSlug, $occurrenceId)
 {
     $occurrence = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guildSlug) {
         $query->where('slug', $guildSlug);
     })->findOrFail($occurrenceId);
     $event = $occurrence->event;
     $guild = $event->guild;
     $character = Character::whereHas('guilds', function ($query) use($guild) {
         $query->where('guilds.id', $guild->id);
     })->where(['user_id' => Auth::user()->id])->first();
     if ($character == null) {
         abort(401, 'No characters in that guild');
     }
     $comment = new Comment($request->all());
     $comment->event_occurrence_id = $occurrence->id;
     $comment->character_id = $character->id;
     $comment->save();
     return redirect()->route('guilds.events.show', [$guildSlug, $occurrenceId]);
 }
 public function showActivityEventPlannerView()
 {
     $activitiesIds = session('activities');
     $activities = [];
     foreach ($activitiesIds as $id) {
         array_push($activities, Activity::find($id));
     }
     $eventPatternIds = session('eventPatterns');
     $eventPatterns = [];
     foreach ($eventPatternIds as $id) {
         array_push($eventPatterns, EventPattern::find($id));
     }
     $groupId = session('group');
     $group = Group::find($groupId);
     $groups = Group::all();
     $events2 = EventOccurrence::with('activities')->get();
     $events = $events2->filter(function ($item) use($groupId) {
         return $item->group->id === $groupId;
     });
     return view('ActivityPlanning/activityEventPlanner', compact('activities', 'eventPatterns', 'groups', 'group', 'events', 'groupId'));
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function show($id)
 {
     return EventOccurrence::with(['activities', 'comments'])->findOrFail($id);
 }