mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-29 18:20:01 +00:00
Fix filters for https://github.com/orgs/firefly-iii/discussions/9271
This commit is contained in:
@@ -84,10 +84,6 @@ class BalanceController extends Controller
|
|||||||
$queryParameters = $request->getParameters();
|
$queryParameters = $request->getParameters();
|
||||||
$accounts = $this->getAccountList($queryParameters);
|
$accounts = $this->getAccountList($queryParameters);
|
||||||
|
|
||||||
// move date to end of day
|
|
||||||
$queryParameters['start']->startOfDay();
|
|
||||||
$queryParameters['end']->endOfDay();
|
|
||||||
|
|
||||||
// prepare for currency conversion and data collection:
|
// prepare for currency conversion and data collection:
|
||||||
/** @var TransactionCurrency $default */
|
/** @var TransactionCurrency $default */
|
||||||
$default = app('amount')->getDefaultCurrency();
|
$default = app('amount')->getDefaultCurrency();
|
||||||
|
@@ -53,10 +53,10 @@ class ChartRequest extends FormRequest
|
|||||||
$queryParameters = QueryParameters::cast($this->all());
|
$queryParameters = QueryParameters::cast($this->all());
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'start' => $this->dateOrToday($queryParameters, 'start'),
|
'start' => $this->dateOrToday($queryParameters, 'start')->startOfDay(),
|
||||||
'end' => $this->dateOrToday($queryParameters, 'end'),
|
'end' => $this->dateOrToday($queryParameters, 'end')->endOfDay(),
|
||||||
'preselected' => $this->stringFromQueryParams($queryParameters, 'preselected', 'empty'),
|
'preselected' => $this->stringFromQueryParams($queryParameters, 'preselected', 'empty'),
|
||||||
'period' => $this->stringFromQueryParams($queryParameters, 'period', '1M'),
|
'period' => $this->stringFromFilterParams($queryParameters, 'period', '1M'),
|
||||||
'accounts' => $this->arrayOfStrings($queryParameters, 'accounts'),
|
'accounts' => $this->arrayOfStrings($queryParameters, 'accounts'),
|
||||||
// preselected heeft maar een paar toegestane waardes, dat moet ook goed gaan.
|
// preselected heeft maar een paar toegestane waardes, dat moet ook goed gaan.
|
||||||
// 'query' => $this->arrayOfStrings($queryParameters, 'query'),
|
// 'query' => $this->arrayOfStrings($queryParameters, 'query'),
|
||||||
@@ -80,12 +80,14 @@ class ChartRequest extends FormRequest
|
|||||||
return [
|
return [
|
||||||
'fields' => JsonApiRule::notSupported(),
|
'fields' => JsonApiRule::notSupported(),
|
||||||
'filter' => ['nullable', 'array',
|
'filter' => ['nullable', 'array',
|
||||||
new IsValidFilter(['start', 'end', 'preselected', 'accounts']),
|
new IsValidFilter(['start', 'end', 'preselected', 'accounts', 'period']),
|
||||||
new IsFilterValueIn('preselected', config('firefly.preselected_accounts')),
|
new IsFilterValueIn('preselected', config('firefly.preselected_accounts')),
|
||||||
],
|
],
|
||||||
'include' => JsonApiRule::notSupported(),
|
'include' => JsonApiRule::notSupported(),
|
||||||
'page' => JsonApiRule::notSupported(),
|
'page' => JsonApiRule::notSupported(),
|
||||||
'sort' => JsonApiRule::notSupported(),
|
'sort' => JsonApiRule::notSupported(),
|
||||||
|
//'start' => 'required|date|after:1900-01-01|before:2099-12-31',
|
||||||
|
//'end' => 'required|date|after_or_equal:start|before:2099-12-31|after:1900-01-01',
|
||||||
];
|
];
|
||||||
|
|
||||||
// return [
|
// return [
|
||||||
|
@@ -35,6 +35,7 @@ trait ParsesQueryFilters
|
|||||||
$date = today();
|
$date = today();
|
||||||
|
|
||||||
$value = $parameters->filter()?->value($field, date('Y-m-d'));
|
$value = $parameters->filter()?->value($field, date('Y-m-d'));
|
||||||
|
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
Log::error(sprintf('Multiple values for date field "%s". Using first value.', $field));
|
Log::error(sprintf('Multiple values for date field "%s". Using first value.', $field));
|
||||||
$value = $value[0];
|
$value = $value[0];
|
||||||
@@ -65,4 +66,8 @@ trait ParsesQueryFilters
|
|||||||
{
|
{
|
||||||
return (string) ($parameters->page()[$field] ?? $default);
|
return (string) ($parameters->page()[$field] ?? $default);
|
||||||
}
|
}
|
||||||
|
private function stringFromFilterParams(QueryParameters $parameters, string $field, string $default): string
|
||||||
|
{
|
||||||
|
return (string)$parameters->filter()?->value($field, $default) ?? $default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user