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
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Reminder $reminder
|
||||
*/
|
||||
public function show(Reminder $reminder)
|
||||
{
|
||||
var_dump($reminder);
|
||||
}
|
||||
}
|
@ -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());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
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');
|
||||
}
|
||||
|
||||
/**
|
||||
* @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 \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
public function reminders()
|
||||
{
|
||||
return $this->hasMany('Reminder');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
|
@ -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']);
|
||||
|
||||
|
@ -12,6 +12,33 @@
|
||||
<!-- /.navbar-header -->
|
||||
|
||||
<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">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
<i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
|
||||
@ -24,6 +51,9 @@
|
||||
</ul>
|
||||
<!-- /.dropdown-user -->
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<!-- /.dropdown -->
|
||||
</ul>
|
||||
<!-- /.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 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).
|
||||
|
Loading…
Reference in New Issue
Block a user