예제 #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $validator = Validator::make($request->all(), ['title' => "required|between:2,30", 'date' => "required|date", 'time' => "required", 'timezone' => "required|timezone"], ['title.required' => 'You need to provide a title!', 'date.required' => 'You need to provide a date!', 'time.required' => 'You need to provide a time!', 'timezone.required' => "The timezone is a required field - please don't remove it...", 'title.between' => 'The title must be between :min - :max characters long.', 'date.date' => 'The date needs to be formatted as a date dd/mm/yyyy', 'timezone.timezone' => 'The timezone was already formatted to your timezone, the one you have changed it to is not a supported timezone...']);
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator)->withInput();
     }
     $userDateTime = \Carbon\Carbon::createFromFormat('Y-m-d H:i', $request->date . $request->time, $request->timezone);
     $utcDateTime = clone $userDateTime;
     $utcDateTime->setTimeZone('UTC');
     $currentDateTime = \Carbon\Carbon::now()->format('Y-m-d H:i');
     if ($utcDateTime < $currentDateTime) {
         $validator->getMessageBag()->add('oldate', 'The date and time provided is in the past, please provide a future date and time.');
         return Redirect::back()->withErrors($validator)->withInput();
     }
     $data = array('title' => $request->title, 'date' => $userDateTime);
     $reminder = new Reminder();
     $reminder->memberid = Auth::user()->id;
     $reminder->title = $request->title;
     $reminder->userReminderDate = $userDateTime;
     $reminder->utcReminderDate = $utcDateTime;
     $reminder->description = $request->description;
     $reminder->save();
     flash()->success('Your reminder was successfully set.');
     return redirect('/remindr');
 }
예제 #2
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $user = Auth::user()->id;
     $note = new Reminder();
     $note->user_id = $user;
     $note->category_id = $request->category;
     $note->text = $request->text;
     $note->reminder = $request->date;
     $note->save();
     $note->reminder = DateTime::createFromFormat('Y-m-d H:i:s', $note->reminder)->format('d/m/Y H:i');
     return Response::json($note, 200);
 }
예제 #3
0
 public function update(Request $request, $id)
 {
     $a = Alarm::findOrFail($id);
     $action = $request->input('action', 'update');
     switch ($action) {
         case 'mail':
             $recipients = $request->input('recipient');
             $message = $request->input('message');
             Mail::send('emails.reminder', ['alarm' => $a, 'mailmessage' => $message], function ($m) use($recipients, $a) {
                 foreach ($recipients as $r) {
                     $m->to($r);
                 }
                 $m->subject('Avviso: ' . $a->simpleName());
             });
             break;
         case 'remind':
             $r = new Reminder();
             $r->alarm_id = $a->id;
             $r->active = true;
             $r->notes = $request->input('notes', '');
             $interval = $request->input('reminder-offset');
             $r->expiry = date('Y-m-d', strtotime('+1 ' . $interval));
             $r->save();
             break;
         case 'close':
             $a->closed = true;
             $a->closer_id = Auth::user()->id;
             $a->save();
             $a->history()->update(['active' => false]);
             $a->reIterate();
             break;
         case 'update':
             $a->date1 = $request->input('date1');
             $a->notes = $request->input('notes', '');
             $a->save();
             $path = $a->filesPath();
             if ($request->has('existing_attachments')) {
                 $saved = $request->input('existing_attachments');
             } else {
                 $saved = [];
             }
             $existing = array_diff(scandir($path), ['.', '..']);
             foreach ($existing as $e) {
                 if (array_search($e, $saved) === false) {
                     unlink($path . '/' . $e);
                 }
             }
             if ($request->hasFile('attachments')) {
                 foreach ($request->file('attachments') as $file) {
                     $file->move($path, $file->getClientOriginalName());
                 }
             }
             break;
     }
     return redirect(url('/alarms'));
 }