mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-05-03 20:56:21 +00:00
Start work on adding a rule.
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user