public function edit(Request $request, $id) { if ($request->has('type')) { $type = $request->input('type'); switch ($type) { case 'selectalarm': if ($id == 'no') { $available = AlarmType::where('entity_type', '=', 0)->get(); $existing = Alarm::where('entity_id', '=', 0)->get(); } else { $e = Entity::findOrFail($id); $available = $e->type->alarms; $existing = $e->alarms; } $structured = array(); foreach ($available as $a) { $unit = (object) array('alarm' => $a, 'pendings' => array()); foreach ($existing as $exist) { if ($exist->type->id == $a->id) { $unit->pendings[] = $exist; } } $structured[] = $unit; } return view('alarms.choosealarmtype', ['structured' => $structured]); break; } } else { $e = Entity::findOrFail($id); return view('entities.edit', ['entity' => $e]); } }
public function index(Request $request) { Reminder::where('active', '=', true)->where('expiry', '<', DB::raw('NOW()'))->update(['active' => false]); $sequence = array(); $month_offset = 3; $alarms = Alarm::where('closed', '=', false)->where('date1', '<', DB::raw('NOW() + INTERVAL ' . $month_offset . ' MONTH'))->orderBy('date1', 'asc')->get(); $reminders = Reminder::where('active', '=', true)->where('expiry', '<', DB::raw('NOW() + INTERVAL ' . $month_offset . ' MONTH'))->orderBy('expiry', 'asc')->get(); $alarms = $alarms->merge($reminders)->sort(function ($first, $second) { return $first->time() - $second->time(); }); $m = $start = date('n'); if (count($alarms) != 0) { $first = $alarms->first(); $m = min($first->month(), $m); } while ($m < $start + $month_offset) { $name = strftime('%B', mktime(0, 0, 0, $m, 1)); $sequence[$name] = array(); $m++; } $managed = array(); foreach ($alarms as $a) { $this->alarmSetStatus($a); $name = strftime('%B', mktime(0, 0, 0, $a->month(), 1)); $sequence[$name][] = $a; $managed[] = $a->id; } if ($request->has('target')) { $target = $request->input('target'); $data['focus'] = $target; if (array_search($target, $managed) === false) { $a = Alarm::find($target); $this->alarmSetStatus($a); $name = strftime('... %B %Y', mktime(0, 0, 0, $a->month(), 1, $a->year())); $sequence[$name] = [$a]; } } else { $data['focus'] = -1; } $data['alarms'] = $sequence; $data['iterable_mails'] = $this->getIterableMails(); return view('alarms.index', $data); }
public function getIcs() { $alarms = Alarm::where('closed', '=', false)->orderBy('date1', 'asc')->get(); $reminders = Reminder::where('active', '=', true)->orderBy('expiry', 'asc')->get(); return view('export.ics', ['alarms' => $alarms, 'reminders' => $reminders]); }
public static function getByOwner($user) { return Alarm::where('owner_id', '=', $user->id)->get(); }