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 %}