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) {
$array = explode(',', $types);
}
$limit = $this->integer('limit');
$limit = $this->convertInteger('limit');
$limit = 0 === $limit ? 10 : $limit;
// remove 'initial balance' from allowed types. its internal

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -353,6 +353,7 @@ function updateTriggerInput(selectList) {
case 'has_any_tag':
case 'has_attachments':
case 'source_is_cash':
case 'has_no_attachments':
case 'destination_is_cash':
case 'account_is_cash':
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_ends' => 'Neither budget ends on ":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_contains' => 'Neither bill contains ":trigger_value"',
'rule_trigger_not_bill_ends' => 'Neither bill ends on ":trigger_value"',
'rule_trigger_not_bill_starts' => 'Neither bill starts with ":trigger_value"',
'rule_trigger_not_bill_is' => 'Bill is not is ":trigger_value"',
'rule_trigger_not_bill_contains' => 'Bill does not contain ":trigger_value"',
'rule_trigger_not_bill_ends' => 'Bill does not end on ":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_contains' => 'External ID does not contain ":trigger_value"',
'rule_trigger_not_external_id_ends' => 'External ID does not end on ":trigger_value"',

View File

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