More code for rules.

This commit is contained in:
James Cole
2016-01-13 18:34:56 +01:00
parent e9ee93beb7
commit 27aae279e6
9 changed files with 255 additions and 1 deletions

View File

@@ -11,8 +11,14 @@ namespace FireflyIII\Http\Controllers;
use Auth;
use FireflyIII\Http\Requests;
use FireflyIII\Http\Requests\RuleGroupFormRequest;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
use Input;
use Preferences;
use Session;
use URL;
use View;
/**
@@ -32,6 +38,54 @@ class RuleController extends Controller
View::share('mainTitleIcon', 'fa-random');
}
/**
* @return View
*/
public function createRuleGroup()
{
$subTitleIcon = 'fa-clone';
$subTitle = trans('firefly.make_new_rule_group');
// put previous url in session if not redirect from store (not "create another").
if (Session::get('rule-groups.create.fromStore') !== true) {
Session::put('rule-groups.create.url', URL::previous());
}
Session::forget('accounts.create.fromStore');
Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'create-rule-group');
return view('rules.create-rule-group', compact('subTitleIcon', 'what', 'subTitle'));
}
/**
* @param RuleGroupFormRequest $request
* @param RuleRepositoryInterface $repository
*
* @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function storeRuleGroup(RuleGroupFormRequest $request, RuleRepositoryInterface $repository)
{
$data = [
'title' => $request->input('title'),
'description' => $request->input('description'),
'user' => Auth::user()->id,
];
$ruleGroup = $repository->storeRuleGroup($data);
Session::flash('success', trans('firefly.created_new_rule_group', ['title' => $ruleGroup->title]));
Preferences::mark();
if (intval(Input::get('create_another')) === 1) {
// set value so create routine will not overwrite URL:
Session::put('rule-groups.create.fromStore', true);
return redirect(route('rules.rule-group.create'))->withInput();
}
// redirect to previous URL.
return redirect(Session::get('rule-groups.create.url'));
}
/**
* @return View
@@ -54,7 +108,8 @@ class RuleController extends Controller
/**
* @param RuleGroup $ruleGroup
*/
public function editRuleGroup(RuleGroup $ruleGroup) {
public function editRuleGroup(RuleGroup $ruleGroup)
{
}
}

View File

@@ -0,0 +1,49 @@
<?php
/**
* RuleGroupFormRequest.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 FireflyIII\Models\RuleGroup;
use Input;
/**
* Class RuleGroupFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class RuleGroupFormRequest extends Request
{
/**
* @return bool
*/
public function authorize()
{
// Only allow logged in users
return Auth::check();
}
/**
* @return array
*/
public function rules()
{
$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',
];
}
}

View File

@@ -247,6 +247,8 @@ Route::group(
Route::get('/rules/groups/edit/{ruleGroup}', ['uses' => 'RuleController@editRuleGroup', 'as' => 'rules.rule-group.edit']);
Route::get('/rules/groups/delete/{ruleGroup}', ['uses' => 'RuleController@deleteRuleGroup', 'as' => 'rules.rule-group.delete']);
Route::post('/rules/groups/store', ['uses' => 'RuleController@storeRuleGroup', 'as' => 'rules.rule-group.store']);
/**
* Search Controller