コード例 #1
0
 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]);
     }
 }
コード例 #2
0
 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);
 }
コード例 #3
0
 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]);
 }
コード例 #4
0
ファイル: Alarm.php プロジェクト: OfficineDigitali/pendola
 public static function getByOwner($user)
 {
     return Alarm::where('owner_id', '=', $user->id)->get();
 }