diff --git a/app/controllers/ReminderController.php b/app/controllers/ReminderController.php index 657f3e8a10..ba6eb30747 100644 --- a/app/controllers/ReminderController.php +++ b/app/controllers/ReminderController.php @@ -7,4 +7,11 @@ class ReminderController extends BaseController { + /** + * @param Reminder $reminder + */ + public function show(Reminder $reminder) + { + var_dump($reminder); + } } \ No newline at end of file diff --git a/app/filters.php b/app/filters.php index 835ecba055..f1396ca5e1 100644 --- a/app/filters.php +++ b/app/filters.php @@ -9,7 +9,14 @@ App::before( /** @var \FireflyIII\Shared\Toolkit\Filter $toolkit */ $filter = App::make('FireflyIII\Shared\Toolkit\Filter'); $filter->setSessionDateRange(); - //Event::fire('recurring.verify'); + + /** @var \FireflyIII\Shared\Toolkit\Reminders $toolkit */ + $reminderKit = App::make('FireflyIII\Shared\Toolkit\Reminders'); + + $reminderKit->updateReminders(); + + View::share('reminders',$reminderKit->getReminders()); + } } diff --git a/app/lib/FireflyIII/Shared/Toolkit/Reminders.php b/app/lib/FireflyIII/Shared/Toolkit/Reminders.php new file mode 100644 index 0000000000..bce26d910b --- /dev/null +++ b/app/lib/FireflyIII/Shared/Toolkit/Reminders.php @@ -0,0 +1,59 @@ +reminders()->get(); + $hasTestReminder = false; + /** @var \Reminder $reminder */ + foreach($reminders as $reminder) { + if($reminder->title == 'Test' && $reminder->active == true) { + $hasTestReminder = true; + } + } + if(!$hasTestReminder) { + $reminder = new \Reminder; + $reminder->user()->associate(\Auth::user()); + $reminder->title = 'Test'; + $reminder->startdate = new Carbon; + $reminder->enddate = Carbon::now()->addDays(4); + + $data = [1 => 2, 'money' => 100, 'amount' => 2.45,'type' => 'Test']; + + $reminder->data = $data; + $reminder->save(); + } + } + + /** + * + */ + public function getReminders() { + $reminders = \Auth::user()->reminders()->where('active',true)->get(); + $return = []; + /** @var \Reminder $reminder */ + foreach($reminders as $reminder) { + $set = [ + 'id' => $reminder->id + ]; + switch($reminder->data->type) { + case 'Test': + $set['title'] = 'Test reminder #'.$reminder->id; + $set['icon'] = 'fa-bomb'; + $set['text'] = 'Bla bla'; + + } + $return[] = $set; + } + return $return; + } +} \ No newline at end of file diff --git a/app/models/Reminder.php b/app/models/Reminder.php index fac62d9d48..3122be1aa8 100644 --- a/app/models/Reminder.php +++ b/app/models/Reminder.php @@ -49,4 +49,24 @@ class Reminder extends Ardent { return $this->belongsTo('User'); } + + /** + * @param $value + * + * @return mixed + */ + public function getDataAttribute($value) + { + return json_decode($value); + } + + /** + * @param $value + */ + public function setDataAttribute($value) + { + $this->attributes['data'] = json_encode($value); + } + + } \ No newline at end of file diff --git a/app/models/User.php b/app/models/User.php index 88b46873c4..20cfa67d38 100644 --- a/app/models/User.php +++ b/app/models/User.php @@ -71,6 +71,14 @@ class User extends Ardent implements UserInterface, RemindableInterface return $this->hasMany('Budget'); } + /** + * @return \Illuminate\Database\Eloquent\Relations\HasMany + */ + public function reminders() + { + return $this->hasMany('Reminder'); + } + /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ diff --git a/app/routes.php b/app/routes.php index 1e1975d34a..daee77ffea 100644 --- a/app/routes.php +++ b/app/routes.php @@ -201,6 +201,9 @@ Route::group( Route::get('/reports', ['uses' => 'ReportController@index', 'as' => 'reports.index']); Route::get('/reports/{year}', ['uses' => 'ReportController@year', 'as' => 'reports.year']); + // reminder controller + Route::get('/reminders/{reminder}',['uses' => 'ReminderController@show','as' => 'reminders.show']); + // search controller: Route::get('/search', ['uses' => 'SearchController@index', 'as' => 'search']); diff --git a/app/views/partials/menu.blade.php b/app/views/partials/menu.blade.php index 516506389b..635277bee4 100644 --- a/app/views/partials/menu.blade.php +++ b/app/views/partials/menu.blade.php @@ -12,6 +12,33 @@ + + + diff --git a/bootstrap/start.php b/bootstrap/start.php index 3de22ae845..4a78106be2 100644 --- a/bootstrap/start.php +++ b/bootstrap/start.php @@ -93,10 +93,10 @@ Event::subscribe('FireflyIII\Event\Piggybank'); // TODO event that creates a relationship between transaction journals and recurring events when created. // TODO event that updates the relationship between transaction journals and recurring events when edited. // TODO event that creates a LimitRepetition when a Limit is created. -// TODO event for when a transfer gets created and set an associated piggy bank; save as Piggy bank event. -// TODO when this transfer gets edited, retro-actively edit the event and THUS also the piggy bank. -// TODO event for when a transfer gets deleted; also delete related piggy bank event. -// TODO event to create the first repetition (for non-repeating piggy banks) when the piggy bank is created. +// event for when a transfer gets created and set an associated piggy bank; save as Piggy bank event. +// when this transfer gets edited, retro-actively edit the event and THUS also the piggy bank. +// event for when a transfer gets deleted; also delete related piggy bank event. +// event to create the first repetition (for non-repeating piggy banks) when the piggy bank is created. // TODO event for when the non-repeating piggy bank is updated because the single repetition must also be changed. // (also make piggy bank events "invalid" when they start falling outside of the date-scope of the piggy bank, // although this not changes the amount in the piggy bank).