mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 18:54:58 +00:00 
			
		
		
		
	This isn't really working.
This commit is contained in:
		| @@ -10,8 +10,10 @@ | |||||||
| namespace FireflyIII\Http\Controllers; | namespace FireflyIII\Http\Controllers; | ||||||
|  |  | ||||||
| use Auth; | use Auth; | ||||||
|  | use Config; | ||||||
| use ExpandedForm; | use ExpandedForm; | ||||||
| use FireflyIII\Http\Requests; | use FireflyIII\Http\Requests; | ||||||
|  | use FireflyIII\Http\Requests\RuleFormRequest; | ||||||
| use FireflyIII\Http\Requests\RuleGroupFormRequest; | use FireflyIII\Http\Requests\RuleGroupFormRequest; | ||||||
| use FireflyIII\Models\Rule; | use FireflyIII\Models\Rule; | ||||||
| use FireflyIII\Models\RuleGroup; | use FireflyIII\Models\RuleGroup; | ||||||
| @@ -64,10 +66,11 @@ class RuleController extends Controller | |||||||
|      * |      * | ||||||
|      * @return View |      * @return View | ||||||
|      */ |      */ | ||||||
|     public function storeRule(RuleGroup $ruleGroup) |     public function storeRule(RuleFormRequest $request, RuleGroup $ruleGroup) | ||||||
|     { |     { | ||||||
|         echo '<pre>'; |         echo '<pre>'; | ||||||
|         var_dump(Input::all());exit(); |         var_dump(Input::all()); | ||||||
|  |         exit(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -77,6 +80,51 @@ class RuleController extends Controller | |||||||
|      */ |      */ | ||||||
|     public function createRule(RuleGroup $ruleGroup) |     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 '<pre>'; | ||||||
|  | //            var_dump(Input::old()); | ||||||
|  | //            var_dump($oldTriggers); | ||||||
|  | //            exit; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|         $subTitleIcon = 'fa-clone'; |         $subTitleIcon = 'fa-clone'; | ||||||
|         $subTitle     = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]); |         $subTitle     = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]); | ||||||
|  |  | ||||||
| @@ -95,7 +143,7 @@ class RuleController extends Controller | |||||||
|         Session::flash('gaEventCategory', 'rules'); |         Session::flash('gaEventCategory', 'rules'); | ||||||
|         Session::flash('gaEventAction', 'create-rule-group'); |         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')); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
							
								
								
									
										55
									
								
								app/Http/Requests/RuleFormRequest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								app/Http/Requests/RuleFormRequest.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  |  * RuleFormRequest.php | ||||||
|  |  * Copyright (C) 2016 Sander Dorigo | ||||||
|  |  * | ||||||
|  |  * This software may be modified and distributed under the terms | ||||||
|  |  * of the MIT license.  See the LICENSE file for details. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | namespace FireflyIII\Http\Requests; | ||||||
|  |  | ||||||
|  | use Auth; | ||||||
|  | use Config; | ||||||
|  | use FireflyIII\Models\RuleGroup; | ||||||
|  | use Input; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class RuleFormRequest | ||||||
|  |  * | ||||||
|  |  * @codeCoverageIgnore | ||||||
|  |  * @package FireflyIII\Http\Requests | ||||||
|  |  */ | ||||||
|  | class RuleFormRequest extends Request | ||||||
|  | { | ||||||
|  |     /** | ||||||
|  |      * @return bool | ||||||
|  |      */ | ||||||
|  |     public function authorize() | ||||||
|  |     { | ||||||
|  |         // Only allow logged in users | ||||||
|  |         return Auth::check(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @return array | ||||||
|  |      */ | ||||||
|  |     public function rules() | ||||||
|  |     { | ||||||
|  |  | ||||||
|  |         $validTriggers = array_keys(Config::get('firefly.rule-triggers')); | ||||||
|  |  | ||||||
|  |         $titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title'; | ||||||
|  |         if (RuleGroup::find(Input::get('id'))) { | ||||||
|  |             $titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title,' . intval(Input::get('id')); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return [ | ||||||
|  |             'title'           => $titleRule, | ||||||
|  |             'description'     => 'between:1,5000', | ||||||
|  |             'stop_processing' => 'boolean', | ||||||
|  |             'trigger'         => 'required|in:store-journal,update-journal', | ||||||
|  |             'rule-trigger.*'  => 'required|in:' . join(',', $validTriggers) | ||||||
|  |         ]; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -3,9 +3,14 @@ | |||||||
|         <a href="#" class="btn btn-danger btn-sm remove-action"><i class="fa fa-trash"></i></a> |         <a href="#" class="btn btn-danger btn-sm remove-action"><i class="fa fa-trash"></i></a> | ||||||
|     </td> |     </td> | ||||||
|     <td style="width:30%;"> |     <td style="width:30%;"> | ||||||
|  |         {% if errors.has('XXX') %} | ||||||
|  |             <span class="form-control-feedback"><i class="fa fa-fw fa-remove"></i></span> | ||||||
|  |             <p class="text-danger">{{ errors.first('xxxx') }}</p> | ||||||
|  |         {% endif %} | ||||||
|  |  | ||||||
|         <select name="rule-action[{{ count }}]" class="form-control"> |         <select name="rule-action[{{ count }}]" class="form-control"> | ||||||
|             {% for key,name in actions %} |             {% for key,name in actions %} | ||||||
|                 <option name="{{ key }}" label="{{ name }}">{{ name }}</option> |                 <option value="{{ key }}" label="{{ name }}">{{ name }}</option> | ||||||
|             {% endfor %} |             {% endfor %} | ||||||
|         </select> |         </select> | ||||||
|     </td> |     </td> | ||||||
|   | |||||||
| @@ -3,19 +3,30 @@ | |||||||
|         <a href="#" class="btn btn-danger btn-sm remove-trigger"><i class="fa fa-trash"></i></a> |         <a href="#" class="btn btn-danger btn-sm remove-trigger"><i class="fa fa-trash"></i></a> | ||||||
|     </td> |     </td> | ||||||
|     <td style="width:30%;"> |     <td style="width:30%;"> | ||||||
|  |         {% if errors.has('rule-trigger.'~count) %} | ||||||
|  |             <span class="form-control-feedback"><i class="fa fa-fw fa-remove"></i></span> | ||||||
|  |             <p class="text-danger">{{ errors.first('rule-trigger.'~count) }}</p> | ||||||
|  |         {% endif %} | ||||||
|  |  | ||||||
|         <select name="rule-trigger[{{ count }}]" class="form-control"> |         <select name="rule-trigger[{{ count }}]" class="form-control"> | ||||||
|             {% for key,name in triggers %} |             {% for key,name in triggers %} | ||||||
|                 <option name="{{ key }}" label="{{ name }}">{{ name }}</option> |                 <option value="{{ key }}" label="{{ name }}" | ||||||
|  |                         {% if key == oldTrigger %} | ||||||
|  |                             selected | ||||||
|  |                         {% endif %} | ||||||
|  |                 >{{ name }}</option> | ||||||
|             {% endfor %} |             {% endfor %} | ||||||
|         </select> |         </select> | ||||||
|     </td> |     </td> | ||||||
|     <td> |     <td> | ||||||
|         <input type="text" name="rule-trigger-value[{{ count }}]" class="form-control"> |         <input type="text" value="{{ oldValue }}" name="rule-trigger-value[{{ count }}]" class="form-control"> | ||||||
|     </td> |     </td> | ||||||
|     <td style="width:20%;"> |     <td style="width:20%;"> | ||||||
|         <div class="checkbox"> |         <div class="checkbox"> | ||||||
|             <label> |             <label> | ||||||
|                 <input type="checkbox" name="rule-trigger-stop[{{ count }}]" value="1"/> |                 <input type="checkbox" name="rule-trigger-stop[{{ count }}]" value="1" | ||||||
|  |                        {% if oldChecked %}checked{% endif %} | ||||||
|  |                 /> | ||||||
|             </label> |             </label> | ||||||
|         </div> |         </div> | ||||||
|     </td> |     </td> | ||||||
|   | |||||||
| @@ -41,6 +41,10 @@ | |||||||
|                 <div class="box-header with-border"> |                 <div class="box-header with-border"> | ||||||
|                     <h3 class="box-title">{{ 'rule_triggers'|_ }}</h3> |                     <h3 class="box-title">{{ 'rule_triggers'|_ }}</h3> | ||||||
|                 </div> |                 </div> | ||||||
|  |                 <!-- display any error --> | ||||||
|  |                 {% if errors.has('rule-trigger.1') %} | ||||||
|  |                     {{ errors.first('rule-trigger.1') }} | ||||||
|  |                 {% endif %} | ||||||
|                 <div class="box-body rule-trigger-box"> |                 <div class="box-body rule-trigger-box"> | ||||||
|                     <table class="table table-condensed table-bordered table-striped"> |                     <table class="table table-condensed table-bordered table-striped"> | ||||||
|                         <thead> |                         <thead> | ||||||
| @@ -51,6 +55,9 @@ | |||||||
|                         </tr> |                         </tr> | ||||||
|                         </thead> |                         </thead> | ||||||
|                         <tbody class="rule-trigger-tbody"> |                         <tbody class="rule-trigger-tbody"> | ||||||
|  |                         {% for trigger in oldTriggers %} | ||||||
|  |                             {{ trigger|raw }} | ||||||
|  |                         {% endfor %} | ||||||
|                         </tbody> |                         </tbody> | ||||||
|  |  | ||||||
|                     </table> |                     </table> | ||||||
| @@ -80,6 +87,7 @@ | |||||||
|                         </tr> |                         </tr> | ||||||
|                         </thead> |                         </thead> | ||||||
|                         <tbody class="rule-action-tbody"> |                         <tbody class="rule-action-tbody"> | ||||||
|  |  | ||||||
|                         </tbody> |                         </tbody> | ||||||
|  |  | ||||||
|                     </table> |                     </table> | ||||||
| @@ -93,7 +101,7 @@ | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|     <div class="row"> |     <div class="row"> | ||||||
|         <div class="col-lg-6 col-lg-offset-6 col-md-offset-6 col-md-6 col-sm-12"> |         <div class="col-lg-12 col-md-12 col-sm-12"> | ||||||
|             <!-- panel for options --> |             <!-- panel for options --> | ||||||
|             <div class="box"> |             <div class="box"> | ||||||
|                 <div class="box-header with-border"> |                 <div class="box-header with-border"> | ||||||
| @@ -116,5 +124,9 @@ | |||||||
| {% endblock %} | {% endblock %} | ||||||
| {% block scripts %} | {% block scripts %} | ||||||
|     <script type="text/javascript" src="js/rules/create-edit.js"></script> |     <script type="text/javascript" src="js/rules/create-edit.js"></script> | ||||||
|  |     <script type="text/javascript"> | ||||||
|  |         var triggerCount = {{ triggerCount }}; | ||||||
|  |         var actionCount = {{ actionCount }}; | ||||||
|  |     </script> | ||||||
|     <script type="text/javascript" src="js/rules/edit.js"></script> |     <script type="text/javascript" src="js/rules/edit.js"></script> | ||||||
| {% endblock %} | {% endblock %} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user