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') %}
+
+ {{ errors.first('xxxx') }}
+ {% endif %}
+
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 @@
+ {% 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 @@
{{ 'rule_triggers'|_ }}
+
+ {% if errors.has('rule-trigger.1') %}
+ {{ errors.first('rule-trigger.1') }}
+ {% endif %}
@@ -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 %}