Merge branch 'develop' into 5.8-dev

And fix rule creation and edit etc
This commit is contained in:
James Cole 2022-10-01 07:34:30 +02:00
commit 9bfa52f3ce
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
10 changed files with 35 additions and 18 deletions

View File

@ -45,7 +45,7 @@ class AutocompleteRequest extends FormRequest
if ('' !== $types) { if ('' !== $types) {
$array = explode(',', $types); $array = explode(',', $types);
} }
$limit = $this->integer('limit'); $limit = $this->convertInteger('limit');
$limit = 0 === $limit ? 10 : $limit; $limit = 0 === $limit ? 10 : $limit;
// remove 'initial balance' from allowed types. its internal // remove 'initial balance' from allowed types. its internal

View File

@ -261,6 +261,7 @@ class CreateController extends Controller
public function store(RuleFormRequest $request) public function store(RuleFormRequest $request)
{ {
$data = $request->getRuleData(); $data = $request->getRuleData();
$rule = $this->ruleRepos->store($data); $rule = $this->ruleRepos->store($data);
session()->flash('success', (string) trans('firefly.stored_new_rule', ['title' => $rule->title])); session()->flash('success', (string) trans('firefly.stored_new_rule', ['title' => $rule->title]));
app('preferences')->mark(); app('preferences')->mark();

View File

@ -189,7 +189,8 @@ class EditController extends Controller
public function update(RuleFormRequest $request, Rule $rule) public function update(RuleFormRequest $request, Rule $rule)
{ {
$data = $request->getRuleData(); $data = $request->getRuleData();
$this->ruleRepos->update($rule, $data);
//$this->ruleRepos->update($rule, $data);
session()->flash('success', (string) trans('firefly.updated_rule', ['title' => $rule->title])); session()->flash('success', (string) trans('firefly.updated_rule', ['title' => $rule->title]));
app('preferences')->mark(); app('preferences')->mark();

View File

@ -66,11 +66,14 @@ class RuleFormRequest extends FormRequest
if (is_array($triggerData)) { if (is_array($triggerData)) {
foreach ($triggerData as $trigger) { foreach ($triggerData as $trigger) {
$stopProcessing = $trigger['stop_processing'] ?? '0'; $stopProcessing = $trigger['stop_processing'] ?? '0';
$return[] = [ $prohibited = $trigger['prohibited'] ?? '0';
$set = [
'type' => $trigger['type'] ?? 'invalid', 'type' => $trigger['type'] ?? 'invalid',
'value' => $trigger['value'] ?? '', 'value' => $trigger['value'] ?? '',
'stop_processing' => 1 === (int) $stopProcessing, 'stop_processing' => 1 === (int) $stopProcessing,
'prohibited' => 1 === (int) $prohibited,
]; ];
$return[] = $set;
} }
} }

View File

@ -425,9 +425,13 @@ class RuleRepository implements RuleRepositoryInterface
$value = $trigger['value'] ?? ''; $value = $trigger['value'] ?? '';
$stopProcessing = $trigger['stop_processing'] ?? false; $stopProcessing = $trigger['stop_processing'] ?? false;
$active = $trigger['active'] ?? true; $active = $trigger['active'] ?? true;
$type = $trigger['type'];
if (true === $trigger['prohibited']) {
$type = sprintf('-%s', $type);
}
$triggerValues = [ $triggerValues = [
'action' => $trigger['type'], 'action' => $type,
'value' => $value, 'value' => $value,
'stop_processing' => $stopProcessing, 'stop_processing' => $stopProcessing,
'order' => $order, 'order' => $order,

View File

@ -317,14 +317,19 @@ trait RenderPartialViews
if ('user_action' !== $entry->trigger_type) { if ('user_action' !== $entry->trigger_type) {
$count = ($index + 1); $count = ($index + 1);
try { try {
$rootOperator = OperatorQuerySearch::getRootOperator($entry->trigger_type);
if(str_starts_with($rootOperator, '-')) {
$rootOperator = substr($rootOperator, 1);
}
$renderedEntries[] = view( $renderedEntries[] = view(
'rules.partials.trigger', 'rules.partials.trigger',
[ [
'oldTrigger' => OperatorQuerySearch::getRootOperator($entry->trigger_type), 'oldTrigger' => $rootOperator,
'oldValue' => $entry->trigger_value, 'oldValue' => $entry->trigger_value,
'oldChecked' => $entry->stop_processing, 'oldChecked' => $entry->stop_processing,
'count' => $count, 'oldProhibited' => str_starts_with($entry->trigger_type, '-'),
'triggers' => $triggers, 'count' => $count,
'triggers' => $triggers,
] ]
)->render(); )->render();

View File

@ -98,11 +98,12 @@ trait RuleManagement
$renderedEntries[] = view( $renderedEntries[] = view(
'rules.partials.trigger', 'rules.partials.trigger',
[ [
'oldTrigger' => OperatorQuerySearch::getRootOperator($oldTrigger['type']), 'oldTrigger' => OperatorQuerySearch::getRootOperator($oldTrigger['type']),
'oldValue' => $oldTrigger['value'], 'oldValue' => $oldTrigger['value'],
'oldChecked' => 1 === (int) ($oldTrigger['stop_processing'] ?? '0'), 'oldChecked' => 1 === (int) ($oldTrigger['stop_processing'] ?? '0'),
'count' => $index + 1, 'oldProhibited' => 1 === (int) ($oldTrigger['prohibited'] ?? '0'),
'triggers' => $triggers, 'count' => $index + 1,
'triggers' => $triggers,
] ]
)->render(); )->render();
} catch (Throwable $e) { // @phpstan-ignore-line } catch (Throwable $e) { // @phpstan-ignore-line

View File

@ -353,6 +353,7 @@ function updateTriggerInput(selectList) {
case 'has_any_tag': case 'has_any_tag':
case 'has_attachments': case 'has_attachments':
case 'source_is_cash': case 'source_is_cash':
case 'has_no_attachments':
case 'destination_is_cash': case 'destination_is_cash':
case 'account_is_cash': case 'account_is_cash':
case 'no_external_url': case 'no_external_url':

View File

@ -1077,10 +1077,10 @@ return [
'rule_trigger_not_budget_contains' => 'Neither budget contains ":trigger_value"', 'rule_trigger_not_budget_contains' => 'Neither budget contains ":trigger_value"',
'rule_trigger_not_budget_ends' => 'Neither budget ends on ":trigger_value"', 'rule_trigger_not_budget_ends' => 'Neither budget ends on ":trigger_value"',
'rule_trigger_not_budget_starts' => 'Neither budget starts with ":trigger_value"', 'rule_trigger_not_budget_starts' => 'Neither budget starts with ":trigger_value"',
'rule_trigger_not_bill_is' => 'Neither bill is ":trigger_value"', 'rule_trigger_not_bill_is' => 'Bill is not is ":trigger_value"',
'rule_trigger_not_bill_contains' => 'Neither bill contains ":trigger_value"', 'rule_trigger_not_bill_contains' => 'Bill does not contain ":trigger_value"',
'rule_trigger_not_bill_ends' => 'Neither bill ends on ":trigger_value"', 'rule_trigger_not_bill_ends' => 'Bill does not end on ":trigger_value"',
'rule_trigger_not_bill_starts' => 'Neither bill starts with ":trigger_value"', 'rule_trigger_not_bill_starts' => 'Bill does not end with ":trigger_value"',
'rule_trigger_not_external_id_is' => 'External ID is not ":trigger_value"', 'rule_trigger_not_external_id_is' => 'External ID is not ":trigger_value"',
'rule_trigger_not_external_id_contains' => 'External ID does not contain ":trigger_value"', 'rule_trigger_not_external_id_contains' => 'External ID does not contain ":trigger_value"',
'rule_trigger_not_external_id_ends' => 'External ID does not end on ":trigger_value"', 'rule_trigger_not_external_id_ends' => 'External ID does not end on ":trigger_value"',

View File

@ -69,6 +69,7 @@
<thead> <thead>
<tr> <tr>
<th colspan="2">{{ 'trigger'|_ }}</th> <th colspan="2">{{ 'trigger'|_ }}</th>
<th>{{ 'is_not_rule_trigger'|_ }}</th>
<th>{{ 'trigger_value'|_ }}</th> <th>{{ 'trigger_value'|_ }}</th>
<th>{{ 'stop_processing_other_triggers'|_ }}</th> <th>{{ 'stop_processing_other_triggers'|_ }}</th>
</tr> </tr>