Start work on adding a rule.

This commit is contained in:
James Cole
2016-01-14 16:41:15 +01:00
parent e02657a7c7
commit 5b1d9e1a0d
11 changed files with 733 additions and 464 deletions

View File

@@ -2,13 +2,17 @@
use Amount;
use Carbon\Carbon;
use Config;
use FireflyIII\Helpers\Report\ReportQueryInterface;
use FireflyIII\Models\RuleAction;
use FireflyIII\Models\RuleTrigger;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface as CRI;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\Support\CacheProperties;
use Input;
use Preferences;
use Response;
use Session;
@@ -38,6 +42,49 @@ class JsonController extends Controller
return Response::json('true');
}
/**
* @param RuleTrigger|null $trigger
*
* @return \Illuminate\Http\JsonResponse
*/
public function trigger(RuleTrigger $trigger = null)
{
$count = intval(Input::get('count')) > 0 ? intval(Input::get('count')) : 1;
$keys = array_keys(Config::get('firefly.rule-triggers'));
$triggers = [];
foreach ($keys as $key) {
if ($key != 'user_action') {
$triggers[$key] = trans('firefly.rule_trigger_' . $key . '_choice');
}
}
$view = view('rules.partials.trigger', compact('triggers', 'trigger', 'count'))->render();
return Response::json(['html' => $view]);
}
/**
* @param RuleAction|null $action
*
* @return \Illuminate\Http\JsonResponse
*/
public function action(RuleAction $action = null)
{
$count = intval(Input::get('count')) > 0 ? intval(Input::get('count')) : 1;
$keys = array_keys(Config::get('firefly.rule-actions'));
$actions = [];
foreach ($keys as $key) {
$actions[$key] = trans('firefly.rule_action_' . $key . '_choice');
}
$view = view('rules.partials.action', compact('actions', 'action', 'count'))->render();
return Response::json(['html' => $view]);
}
/**
*
*/

View File

@@ -61,6 +61,18 @@ class RuleController extends Controller
/**
* @param RuleGroup $ruleGroup
*
* @return View
*/
public function storeRule(RuleGroup $ruleGroup)
{
echo '<pre>';
var_dump(Input::all());exit();
}
/**
* @param RuleGroup $ruleGroup
*
* @return View
*/
public function createRule(RuleGroup $ruleGroup)
@@ -68,6 +80,13 @@ class RuleController extends Controller
$subTitleIcon = 'fa-clone';
$subTitle = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]);
// mandatory field: rule triggers on update-journal or store-journal.
$journalTriggers = [
'store-journal' => trans('firefly.rule_trigger_store_journal'),
'update-journal' => trans('firefly.rule_trigger_update_journal')
];
// put previous url in session if not redirect from store (not "create another").
if (Session::get('rules.rule.create.fromStore') !== true) {
Session::put('rules.rule.create.url', URL::previous());
@@ -76,7 +95,7 @@ class RuleController extends Controller
Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'create-rule-group');
return view('rules.rule.create', compact('subTitleIcon','ruleGroup', 'subTitle'));
return view('rules.rule.create', compact('subTitleIcon', 'ruleGroup', 'subTitle', 'journalTriggers'));
}
/**
@@ -208,6 +227,7 @@ class RuleController extends Controller
/**
* @param RuleRepositoryInterface $repository
* @param Rule $rule
*
* @return \Illuminate\Http\JsonResponse
*/
public function reorderRuleTriggers(RuleRepositoryInterface $repository, Rule $rule)
@@ -224,6 +244,7 @@ class RuleController extends Controller
/**
* @param RuleRepositoryInterface $repository
* @param Rule $rule
*
* @return \Illuminate\Http\JsonResponse
*/
public function reorderRuleActions(RuleRepositoryInterface $repository, Rule $rule)
@@ -268,6 +289,7 @@ class RuleController extends Controller
/**
* @param RuleRepositoryInterface $repository
* @param Rule $rule
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function upRule(RuleRepositoryInterface $repository, Rule $rule)
@@ -281,6 +303,7 @@ class RuleController extends Controller
/**
* @param RuleRepositoryInterface $repository
* @param Rule $rule
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function downRule(RuleRepositoryInterface $repository, Rule $rule)
@@ -294,6 +317,7 @@ class RuleController extends Controller
/**
* @param RuleRepositoryInterface $repository
* @param RuleGroup $ruleGroup
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function upRuleGroup(RuleRepositoryInterface $repository, RuleGroup $ruleGroup)
@@ -307,6 +331,7 @@ class RuleController extends Controller
/**
* @param RuleRepositoryInterface $repository
* @param RuleGroup $ruleGroup
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function downRuleGroup(RuleRepositoryInterface $repository, RuleGroup $ruleGroup)

View File

@@ -186,6 +186,9 @@ Route::group(
Route::get('/json/box/bills-paid', ['uses' => 'JsonController@boxBillsPaid', 'as' => 'json.box.unpaid']);
Route::get('/json/transaction-journals/{what}', 'JsonController@transactionJournals');
Route::get('/json/trigger/{RuleTrigger?}', ['uses' => 'JsonController@trigger', 'as' => 'json.trigger']);
Route::get('/json/action/{RuleAction?}', ['uses' => 'JsonController@action', 'as' => 'json.action']);
/**
* New user Controller
*/