From 07388dd58a70a6f9556e426aad377a5860f27dc3 Mon Sep 17 00:00:00 2001
From: James Cole
Date: Thu, 20 Nov 2014 07:51:01 +0100
Subject: [PATCH] Ability to dismiss reminders, added some logic to pre fill
transaction form.
---
app/controllers/ReminderController.php | 52 +++++++++++++++++--------
app/routes.php | 2 +
app/views/reminders/show.blade.php | 6 +--
app/views/transactions/create.blade.php | 2 +-
4 files changed, 41 insertions(+), 21 deletions(-)
diff --git a/app/controllers/ReminderController.php b/app/controllers/ReminderController.php
index f289497e6c..e7862f289a 100644
--- a/app/controllers/ReminderController.php
+++ b/app/controllers/ReminderController.php
@@ -1,4 +1,5 @@
title;
- // $model = null; // related model.
- //
- // if(isset($reminder->data->model) && isset($reminder->data->type)) {
- // switch($reminder->data->type) {
- // case 'Test':
- // break;
- // case 'Piggybank':
- // break;
- // default:
- // throw new FireflyException('Cannot handle model of type '.$reminder->data->model);
- // break;
- // }
- // } else {
- //
- // }
- //
+
$amount = null;
+ $actionURL = '#';
if (get_class($reminder->remindersable) == 'Piggybank') {
/** @var \FireflyIII\Shared\Toolkit\Reminders $toolkit */
$reminderKit = App::make('FireflyIII\Shared\Toolkit\Reminders');
@@ -45,4 +31,36 @@ class ReminderController extends BaseController
return View::make('reminders.show', compact('reminder', 'amount'));
}
+
+ public function act(Reminder $reminder) {
+ /** @var \FireflyIII\Shared\Toolkit\Reminders $toolkit */
+ $reminderKit = App::make('FireflyIII\Shared\Toolkit\Reminders');
+
+ switch(get_class($reminder->remindersable)) {
+ default:
+ throw new FireflyException('Cannot act on reminder for ' . get_class($reminder->remindersable));
+ break;
+ break;
+ case 'Piggybank':
+ $amount = $reminderKit->amountForReminder($reminder);
+ $prefilled = [
+ 'amount' => round($amount,2),
+ 'description' => 'Money for ' . $reminder->remindersable->name,
+ 'piggybank_id' => $reminder->remindersable_id,
+ 'account_to_id' => $reminder->remindersable->account_id
+ ];
+ Session::flash('prefilled',$prefilled);
+ return Redirect::route('transactions.create','transfer');
+ break;
+
+ }
+ }
+
+ public function dismiss(Reminder $reminder) {
+ $reminder->active = 0;
+ $reminder->save();
+ Session::flash('success','Reminder dismissed');
+ return Redirect::route('index');
+ }
+
}
\ No newline at end of file
diff --git a/app/routes.php b/app/routes.php
index 0f39c30440..3d113ae59c 100644
--- a/app/routes.php
+++ b/app/routes.php
@@ -203,6 +203,8 @@ Route::group(
// reminder controller
Route::get('/reminders/{reminder}',['uses' => 'ReminderController@show','as' => 'reminders.show']);
+ Route::get('/reminders/{reminder}/dismiss',['uses' => 'ReminderController@dismiss','as' => 'reminders.dismiss']);
+ Route::get('/reminders/{reminder}/act',['uses' => 'ReminderController@act','as' => 'reminders.act']);
// search controller:
Route::get('/search', ['uses' => 'SearchController@index', 'as' => 'search']);
diff --git a/app/views/reminders/show.blade.php b/app/views/reminders/show.blade.php
index 26c2b27b25..30e8f544e7 100644
--- a/app/views/reminders/show.blade.php
+++ b/app/views/reminders/show.blade.php
@@ -19,9 +19,9 @@
- I want to do this
- I already did this
- Not this time
+ I want to do this
+ I already did this
+ Not this time
diff --git a/app/views/transactions/create.blade.php b/app/views/transactions/create.blade.php
index 456ec7a40f..eed40fd5c2 100644
--- a/app/views/transactions/create.blade.php
+++ b/app/views/transactions/create.blade.php
@@ -69,7 +69,7 @@
@if($what == 'transfer' && count($piggies) > 0)
- {{Form::ffSelect('piggybank_id',$piggies,0)}}
+ {{Form::ffSelect('piggybank_id',$piggies)}}
@endif