mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
First attempt at generating and showing reminders.
This commit is contained in:
parent
6581ee0ee0
commit
5fc31f3c1e
@ -7,4 +7,11 @@
|
|||||||
class ReminderController extends BaseController
|
class ReminderController extends BaseController
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Reminder $reminder
|
||||||
|
*/
|
||||||
|
public function show(Reminder $reminder)
|
||||||
|
{
|
||||||
|
var_dump($reminder);
|
||||||
|
}
|
||||||
}
|
}
|
@ -9,7 +9,14 @@ App::before(
|
|||||||
/** @var \FireflyIII\Shared\Toolkit\Filter $toolkit */
|
/** @var \FireflyIII\Shared\Toolkit\Filter $toolkit */
|
||||||
$filter = App::make('FireflyIII\Shared\Toolkit\Filter');
|
$filter = App::make('FireflyIII\Shared\Toolkit\Filter');
|
||||||
$filter->setSessionDateRange();
|
$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());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
59
app/lib/FireflyIII/Shared/Toolkit/Reminders.php
Normal file
59
app/lib/FireflyIII/Shared/Toolkit/Reminders.php
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FireflyIII\Shared\Toolkit;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Reminders
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Shared\Toolkit
|
||||||
|
*/
|
||||||
|
class Reminders {
|
||||||
|
|
||||||
|
|
||||||
|
public function updateReminders() {
|
||||||
|
$reminders = \Auth::user()->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;
|
||||||
|
}
|
||||||
|
}
|
@ -49,4 +49,24 @@ class Reminder extends Ardent
|
|||||||
{
|
{
|
||||||
return $this->belongsTo('User');
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -71,6 +71,14 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
|||||||
return $this->hasMany('Budget');
|
return $this->hasMany('Budget');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function reminders()
|
||||||
|
{
|
||||||
|
return $this->hasMany('Reminder');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
*/
|
*/
|
||||||
|
@ -201,6 +201,9 @@ Route::group(
|
|||||||
Route::get('/reports', ['uses' => 'ReportController@index', 'as' => 'reports.index']);
|
Route::get('/reports', ['uses' => 'ReportController@index', 'as' => 'reports.index']);
|
||||||
Route::get('/reports/{year}', ['uses' => 'ReportController@year', 'as' => 'reports.year']);
|
Route::get('/reports/{year}', ['uses' => 'ReportController@year', 'as' => 'reports.year']);
|
||||||
|
|
||||||
|
// reminder controller
|
||||||
|
Route::get('/reminders/{reminder}',['uses' => 'ReminderController@show','as' => 'reminders.show']);
|
||||||
|
|
||||||
// search controller:
|
// search controller:
|
||||||
Route::get('/search', ['uses' => 'SearchController@index', 'as' => 'search']);
|
Route::get('/search', ['uses' => 'SearchController@index', 'as' => 'search']);
|
||||||
|
|
||||||
|
@ -12,6 +12,33 @@
|
|||||||
<!-- /.navbar-header -->
|
<!-- /.navbar-header -->
|
||||||
|
|
||||||
<ul class="nav navbar-top-links navbar-right">
|
<ul class="nav navbar-top-links navbar-right">
|
||||||
|
|
||||||
|
<!-- reminders -->
|
||||||
|
@if(count($reminders) > 0)
|
||||||
|
<li class="dropdown">
|
||||||
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
|
<i class="fa fa-bell fa-fw"></i> <i class="fa fa-caret-down"></i>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-alerts">
|
||||||
|
@foreach($reminders as $index => $reminder)
|
||||||
|
<li>
|
||||||
|
<a href="{{route('reminders.show',$reminder['id'])}}">
|
||||||
|
<div>
|
||||||
|
<i class="fa {{$reminder['icon']}} fa-fw"></i> {{{$reminder['title']}}}
|
||||||
|
<span class="pull-right text-muted small">{{{$reminder['text']}}}</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
@if($index+1 != count($reminders))
|
||||||
|
<li class="divider"></li>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
</ul>
|
||||||
|
<!-- /.dropdown-alerts -->
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
<!-- /.dropdown -->
|
||||||
|
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
<i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
|
<i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
|
||||||
@ -24,6 +51,9 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<!-- /.dropdown-user -->
|
<!-- /.dropdown-user -->
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- /.dropdown -->
|
<!-- /.dropdown -->
|
||||||
</ul>
|
</ul>
|
||||||
<!-- /.navbar-top-links -->
|
<!-- /.navbar-top-links -->
|
||||||
|
@ -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 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 updates the relationship between transaction journals and recurring events when edited.
|
||||||
// TODO event that creates a LimitRepetition when a Limit is created.
|
// 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.
|
// 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.
|
// 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.
|
// 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 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.
|
// 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,
|
// (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).
|
// although this not changes the amount in the piggy bank).
|
||||||
|
Loading…
Reference in New Issue
Block a user