diff --git a/app/Http/Controllers/RuleController.php b/app/Http/Controllers/RuleController.php index 0070aa6ed7..e70d5d07e5 100644 --- a/app/Http/Controllers/RuleController.php +++ b/app/Http/Controllers/RuleController.php @@ -10,8 +10,10 @@ namespace FireflyIII\Http\Controllers; use Auth; +use Config; use ExpandedForm; use FireflyIII\Http\Requests; +use FireflyIII\Http\Requests\RuleFormRequest; use FireflyIII\Http\Requests\RuleGroupFormRequest; use FireflyIII\Models\Rule; use FireflyIII\Models\RuleGroup; @@ -64,10 +66,11 @@ class RuleController extends Controller * * @return View */ - public function storeRule(RuleGroup $ruleGroup) + public function storeRule(RuleFormRequest $request, RuleGroup $ruleGroup) { echo '
'; - var_dump(Input::all());exit(); + var_dump(Input::all()); + exit(); } /** @@ -77,6 +80,51 @@ class RuleController extends Controller */ public function createRule(RuleGroup $ruleGroup) { + // count for possible present previous entered triggers/actions. + $triggerCount = 0; + $actionCount = 0; + + // collection of those triggers/actions. + $oldTriggers = []; + $oldActions = []; + + // array of valid values for triggers. + $ruleTriggers = array_keys(Config::get('firefly.rule-triggers')); + $possibleTriggers = []; + foreach ($ruleTriggers as $key) { + if ($key != 'user_action') { + $possibleTriggers[$key] = trans('firefly.rule_trigger_' . $key . '_choice'); + } + } + unset($key, $ruleTriggers); + + // has old input? + if (Input::old()) { + // process old triggers. + foreach (Input::old('rule-trigger') as $index => $entry) { + $count = ($index + 1); + $triggerCount++; + $oldTrigger = $entry; + $oldValue = Input::old('rule-trigger-value')[$index]; + $oldChecked = isset(Input::old('rule-action-value')[$index]) ? true : false; + $oldTriggers[] = view( + 'rules.partials.trigger', + [ + 'oldTrigger' => $oldTrigger, + 'oldValue' => $oldValue, + 'oldChecked' => $oldChecked, + 'triggers' => $possibleTriggers, + 'count' => $count + ] + )->render(); + } +// echo ''; +// var_dump(Input::old()); +// var_dump($oldTriggers); +// exit; + } + + $subTitleIcon = 'fa-clone'; $subTitle = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]); @@ -95,7 +143,7 @@ class RuleController extends Controller Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'create-rule-group'); - return view('rules.rule.create', compact('subTitleIcon', 'ruleGroup', 'subTitle', 'journalTriggers')); + return view('rules.rule.create', compact('subTitleIcon','oldTriggers', 'triggerCount', 'actionCount', 'ruleGroup', 'subTitle', 'journalTriggers')); } /** diff --git a/app/Http/Requests/RuleFormRequest.php b/app/Http/Requests/RuleFormRequest.php new file mode 100644 index 0000000000..181f573a8c --- /dev/null +++ b/app/Http/Requests/RuleFormRequest.php @@ -0,0 +1,55 @@ + $titleRule, + 'description' => 'between:1,5000', + 'stop_processing' => 'boolean', + 'trigger' => 'required|in:store-journal,update-journal', + 'rule-trigger.*' => 'required|in:' . join(',', $validTriggers) + ]; + } +} diff --git a/resources/views/rules/partials/action.twig b/resources/views/rules/partials/action.twig index 685bdb4304..edb4d77bf5 100644 --- a/resources/views/rules/partials/action.twig +++ b/resources/views/rules/partials/action.twig @@ -3,9 +3,14 @@+ {% if errors.has('XXX') %} + + diff --git a/resources/views/rules/partials/trigger.twig b/resources/views/rules/partials/trigger.twig index f401825ae1..d74d993ab5 100644 --- a/resources/views/rules/partials/trigger.twig +++ b/resources/views/rules/partials/trigger.twig @@ -3,19 +3,30 @@{{ errors.first('xxxx') }}
+ {% endif %} ++ {% if errors.has('rule-trigger.'~count) %} + + {{ errors.first('rule-trigger.'~count) }}
+ {% endif %} +- + diff --git a/resources/views/rules/rule/create.twig b/resources/views/rules/rule/create.twig index b52537f508..c1bee36cd2 100644 --- a/resources/views/rules/rule/create.twig +++ b/resources/views/rules/rule/create.twig @@ -41,6 +41,10 @@ + + {% if errors.has('rule-trigger.1') %} + {{ errors.first('rule-trigger.1') }} + {% endif %}{{ 'rule_triggers'|_ }}
@@ -51,6 +55,9 @@ + {% for trigger in oldTriggers %} + {{ trigger|raw }} + {% endfor %}
@@ -80,6 +87,7 @@ + @@ -93,7 +101,7 @@-+@@ -116,5 +124,9 @@ {% endblock %} {% block scripts %} + {% endblock %}