Expanded reminders.

This commit is contained in:
James Cole
2015-03-07 09:21:06 +01:00
parent a60671d4c1
commit 93996ada96
13 changed files with 304 additions and 214 deletions

View File

@@ -2,10 +2,18 @@
use Auth;
use Carbon\Carbon;
use FireflyIII\Helpers\Reminders\ReminderHelperInterface;
use FireflyIII\Http\Requests;
use FireflyIII\Models\Reminder;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use Redirect;
use URL;
/**
* Class ReminderController
*
* @package FireflyIII\Http\Controllers
*/
class ReminderController extends Controller
{
@@ -13,17 +21,20 @@ class ReminderController extends Controller
/**
*
*/
public function index(PiggyBankRepositoryInterface $repository)
public function index(ReminderHelperInterface $helper)
{
$reminders = Auth::user()->reminders()->get();
$reminders->each(function(Reminder $reminder) use ($helper) {
$reminder->description = $helper->getReminderText($reminder);
});
$today = new Carbon;
// active reminders:
$active = $reminders->filter(
function (Reminder $reminder) use ($today, $repository) {
function (Reminder $reminder) use ($today) {
if ($reminder->notnow === false && $reminder->active === true && $reminder->startdate <= $today && $reminder->enddate >= $today) {
$reminder->description = $repository->getReminderText($reminder);
return $reminder;
}
}
@@ -71,5 +82,16 @@ class ReminderController extends Controller
}
/**
* @param Reminder $reminder
*/
public function dismiss(Reminder $reminder)
{
$reminder->notnow = true;
$reminder->save();
return Redirect::to(URL::previous());
}
}

View File

@@ -49,20 +49,20 @@ class Reminders
// do reminders stuff.
$piggyBanks = $this->auth->user()->piggyBanks()->where('remind_me', 1)->get();
$today = new Carbon;
/** @var \FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface $repository */
$repository = App::make('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface');
/** @var \FireflyIII\Helpers\Reminders\ReminderHelperInterface $helper */
$helper = App::make('FireflyIII\Helpers\Reminders\ReminderHelperInterface');
/** @var PiggyBank $piggyBank */
foreach ($piggyBanks as $piggyBank) {
$ranges = $repository->getReminderRanges($piggyBank);
$ranges = $helper->getReminderRanges($piggyBank);
foreach ($ranges as $range) {
if ($today < $range['end'] && $today > $range['start']) {
// create a reminder here!
$repository->createReminder($piggyBank, $range['start'], $range['end']);
$helper->createReminder($piggyBank, $range['start'], $range['end']);
// stop looping, we're done.
break;
}
// stop looping, we're done.
}
}
@@ -71,8 +71,8 @@ class Reminders
// get and list active reminders:
$reminders = $this->auth->user()->reminders()->today()->get();
$reminders->each(
function (Reminder $reminder) use ($repository) {
$reminder->description = $repository->getReminderText($reminder);
function (Reminder $reminder) use ($helper) {
$reminder->description = $helper->getReminderText($reminder);
}
);
View::share('reminders', $reminders);

View File

@@ -305,8 +305,10 @@ Route::group(
* Reminder Controller
*/
Route::get('/reminders', ['uses' => 'ReminderController@index', 'as' => 'reminders.index']);
Route::get('/reminder/dismiss/{reminder}', ['uses' => 'ReminderController@dismiss', 'as' => 'reminders.dismiss']);
Route::get('/reminder/{reminder}', ['uses' => 'ReminderController@show', 'as' => 'reminders.show']);
/**
* Repeated Expenses Controller
*/