From c352eb0c7408afcc2cf811b75b1fc58bd7e70353 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 14 Jan 2016 12:37:49 +0100 Subject: [PATCH] First attempt at create rule form. --- app/Http/Controllers/RuleController.php | 22 ++++++- app/Http/routes.php | 7 +- resources/lang/en_US/firefly.php | 2 + resources/lang/en_US/form.php | 1 + resources/views/rules/index.twig | 20 +++++- resources/views/rules/rule/create.twig | 85 +++++++++++++++++++++++++ 6 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 resources/views/rules/rule/create.twig diff --git a/app/Http/Controllers/RuleController.php b/app/Http/Controllers/RuleController.php index 97bab1aef6..2ccd3425dd 100644 --- a/app/Http/Controllers/RuleController.php +++ b/app/Http/Controllers/RuleController.php @@ -52,13 +52,33 @@ class RuleController extends Controller if (Session::get('rules.rule-group.create.fromStore') !== true) { Session::put('rules.rule-group.create.url', URL::previous()); } - Session::forget('accounts.create.fromStore'); + Session::forget('rules.rule-group.create.fromStore'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'create-rule-group'); return view('rules.rule-group.create', compact('subTitleIcon', 'what', 'subTitle')); } + /** + * @param RuleGroup $ruleGroup + * @return View + */ + public function createRule(RuleGroup $ruleGroup) + { + $subTitleIcon = 'fa-clone'; + $subTitle = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]); + + // 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()); + } + Session::forget('rules.rule.create.fromStore'); + Session::flash('gaEventCategory', 'rules'); + Session::flash('gaEventAction', 'create-rule-group'); + + return view('rules.rule.create', compact('subTitleIcon','ruleGroup', 'subTitle')); + } + /** * @param RuleGroupFormRequest $request * @param RuleRepositoryInterface $repository diff --git a/app/Http/routes.php b/app/Http/routes.php index 75027595eb..c4b54e6cf5 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -236,7 +236,8 @@ Route::group( Route::get('/rules', ['uses' => 'RuleController@index', 'as' => 'rules.index']); // rules: - Route::get('/rules/rules/create', ['uses' => 'RuleController@createRule', 'as' => 'rules.rule.create']); + Route::get('/rules/create/{ruleGroup}', ['uses' => 'RuleController@createRule', 'as' => 'rules.rule.create']); + Route::get('/rules/rules/up/{rule}', ['uses' => 'RuleController@upRule', 'as' => 'rules.rule.up']); Route::get('/rules/rules/down/{rule}', ['uses' => 'RuleController@downRule', 'as' => 'rules.rule.down']); Route::get('/rules/rules/edit/{rule}', ['uses' => 'RuleController@editRule', 'as' => 'rules.rule.edit']); @@ -245,6 +246,10 @@ Route::group( Route::post('/rules/rules/trigger/reorder/{rule}', ['uses' => 'RuleController@reorderRuleTriggers']); Route::post('/rules/rules/action/reorder/{rule}', ['uses' => 'RuleController@reorderRuleActions']); + Route::post('/rules/store/{ruleGroup}', ['uses' => 'RuleController@storeRule', 'as' => 'rules.rule.store']); + Route::post('/rules/update/{rule}', ['uses' => 'RuleController@updateRule', 'as' => 'rules.rule.update']); + Route::post('/rules/destroy/{rule}', ['uses' => 'RuleController@destroyRule', 'as' => 'rules.rule.destroy']); + // rule groups: Route::get('/rules/groups/create', ['uses' => 'RuleController@createRuleGroup', 'as' => 'rules.rule-group.create']); diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 34c16a8eb5..20ee206ba0 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -60,6 +60,8 @@ return [ 'move_rule_group_up' => 'Move rule group up', 'move_rule_group_down' => 'Move rule group down', 'save_rules_by_moving' => 'Save these rule(s) by moving them to another rule group:', + 'make_new_rule' => 'Make new rule in rule group ":title"', + 'rule_help_stop_processing' => 'When you check this box, later rules in this group will not be executed.', // actions and triggers 'rule_trigger_user_action' => 'User action is ":trigger_value"', diff --git a/resources/lang/en_US/form.php b/resources/lang/en_US/form.php index 8b3b34f4c6..3ff3349a6b 100644 --- a/resources/lang/en_US/form.php +++ b/resources/lang/en_US/form.php @@ -67,6 +67,7 @@ return [ 'filename' => 'File name', 'mime' => 'Mime type', 'size' => 'Size', + 'stop_processing' => 'Stop processing', 'delete_account' => 'Delete account ":name"', diff --git a/resources/views/rules/index.twig b/resources/views/rules/index.twig index 777597a6e8..238a4a542b 100644 --- a/resources/views/rules/index.twig +++ b/resources/views/rules/index.twig @@ -105,16 +105,26 @@ {{ rule.title }} + {% if rule.stop_processing %} + + {% endif %} + {% if rule.description != "" %}
{{ rule.description }}
{% endif %} + {% if rule.ruleTriggers.count > 0 %} @@ -124,7 +134,11 @@ {% if rule.ruleActions.count > 0 %} {% endif %} @@ -140,7 +154,7 @@ {% endif %}


- {{ 'new_rule'|_ }} + {{ 'new_rule'|_ }}

diff --git a/resources/views/rules/rule/create.twig b/resources/views/rules/rule/create.twig new file mode 100644 index 0000000000..64534e0b71 --- /dev/null +++ b/resources/views/rules/rule/create.twig @@ -0,0 +1,85 @@ +{% extends "./layout/default.twig" %} + +{% block breadcrumbs %} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName) }} +{% endblock %} + +{% block content %} + {{ Form.open({'class' : 'form-horizontal','id' : 'store','url' : route('rules.rule.store', ruleGroup.id)}) }} + +
+
+
+
+

{{ 'mandatoryFields'|_ }}

+
+
+ {{ ExpandedForm.text('title') }} + {{ ExpandedForm.checkbox('stop_processing',1,null, {helpText: trans('firefly.rule_help_stop_processing')}) }} +
+
+
+
+ + +
+
+

{{ 'optionalFields'|_ }}

+
+
+ {{ ExpandedForm.textarea('description') }} +
+
+
+
+ + +
+
+
+
+

{{ 'rule_triggers'|_ }}

+
+
+ Here +
+
+
+
+ + +
+
+
+
+

{{ 'rule_actions'|_ }}

+
+
+ Here +
+
+
+
+ +
+
+ +
+
+

{{ 'options'|_ }}

+
+
+ {{ ExpandedForm.optionsList('create','rule-group') }} +
+ +
+ +
+ +
+ {{ Form.close|raw }} + + +{% endblock %}