Compare commits

..

22 Commits

Author SHA1 Message Date
James Cole
a8fffc25c0 Merge pull request #11241 from firefly-iii/dependabot/composer/develop/bacon/bacon-qr-code-3.0.2
Bump bacon/bacon-qr-code from 3.0.1 to 3.0.2
2025-11-17 06:48:36 +01:00
mergify[bot]
d0dab136b1 Merge branch 'develop' into dependabot/composer/develop/bacon/bacon-qr-code-3.0.2 2025-11-17 05:47:38 +00:00
James Cole
91184489da Merge pull request #11242 from firefly-iii/dependabot/npm_and_yarn/develop/alpinejs-3.15.2
Bump alpinejs from 3.15.1 to 3.15.2
2025-11-17 06:46:55 +01:00
mergify[bot]
e4e6cc71c3 Merge branch 'develop' into dependabot/composer/develop/bacon/bacon-qr-code-3.0.2 2025-11-17 03:30:51 +00:00
mergify[bot]
33d637e618 Merge branch 'develop' into dependabot/npm_and_yarn/develop/alpinejs-3.15.2 2025-11-17 03:30:49 +00:00
github-actions[bot]
42eb4410f8 Merge pull request #11243 from firefly-iii/release-1763350179
🤖 Automatically merge the PR into the develop branch.
2025-11-17 04:29:45 +01:00
JC5
5f6b345c79 🤖 Auto commit for release 'develop' on 2025-11-17 2025-11-17 04:29:39 +01:00
dependabot[bot]
30b48a479c Bump alpinejs from 3.15.1 to 3.15.2
Bumps [alpinejs](https://github.com/alpinejs/alpine/tree/HEAD/packages/alpinejs) from 3.15.1 to 3.15.2.
- [Release notes](https://github.com/alpinejs/alpine/releases)
- [Commits](https://github.com/alpinejs/alpine/commits/v3.15.2/packages/alpinejs)

---
updated-dependencies:
- dependency-name: alpinejs
  dependency-version: 3.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:01:12 +00:00
dependabot[bot]
55d23af802 Bump bacon/bacon-qr-code from 3.0.1 to 3.0.2
Bumps [bacon/bacon-qr-code](https://github.com/Bacon/BaconQrCode) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/Bacon/BaconQrCode/releases)
- [Changelog](https://github.com/Bacon/BaconQrCode/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Bacon/BaconQrCode/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: bacon/bacon-qr-code
  dependency-version: 3.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:00:53 +00:00
James Cole
34bfeba63a Fix #11211 2025-11-13 20:32:02 +01:00
github-actions[bot]
761c20b670 Merge pull request #11234 from firefly-iii/release-1763009724
🤖 Automatically merge the PR into the develop branch.
2025-11-13 05:55:30 +01:00
JC5
d756977ee0 🤖 Auto commit for release 'develop' on 2025-11-13 2025-11-13 05:55:24 +01:00
github-actions[bot]
40fe0d9c57 Merge pull request #11233 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-11-13 05:42:18 +01:00
github-actions[bot]
09b3fa1a52 Merge pull request #11232 from firefly-iii/release-1763008922
🤖 Automatically merge the PR into the develop branch.
2025-11-13 05:42:11 +01:00
JC5
bab767a447 🤖 Auto commit for release 'v6.4.8' on 2025-11-13 2025-11-13 05:42:02 +01:00
James Cole
341ab69939 Merge branch 'main' into develop 2025-11-13 05:37:15 +01:00
James Cole
479b90d9fc Expand changelog. 2025-11-13 05:36:59 +01:00
James Cole
91889332b4 Merge pull request #11231 from firefly-iii/dependabot/composer/composer-da8c4f16ae 2025-11-13 05:09:28 +01:00
dependabot[bot]
22b623c561 Bump symfony/http-foundation in the composer group across 1 directory
Bumps the composer group with 1 update in the / directory: [symfony/http-foundation](https://github.com/symfony/http-foundation).


Updates `symfony/http-foundation` from 7.3.6 to 7.3.7
- [Release notes](https://github.com/symfony/http-foundation/releases)
- [Changelog](https://github.com/symfony/http-foundation/blob/7.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-foundation/compare/v7.3.6...v7.3.7)

---
updated-dependencies:
- dependency-name: symfony/http-foundation
  dependency-version: 7.3.7
  dependency-type: indirect
  dependency-group: composer
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-12 23:42:25 +00:00
github-actions[bot]
75932a9671 Merge pull request #11229 from firefly-iii/release-1762967310
🤖 Automatically merge the PR into the develop branch.
2025-11-12 18:08:37 +01:00
JC5
3ec528812b 🤖 Auto commit for release 'develop' on 2025-11-12 2025-11-12 18:08:30 +01:00
James Cole
78de800777 Fix #11228 2025-11-12 18:02:24 +01:00
11 changed files with 134 additions and 110 deletions

View File

@@ -2675,5 +2675,5 @@
"prefer-lowest": false, "prefer-lowest": false,
"platform": {}, "platform": {},
"platform-dev": {}, "platform-dev": {},
"plugin-api-version": "2.6.0" "plugin-api-version": "2.9.0"
} }

View File

@@ -23,15 +23,16 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Generic; namespace FireflyIII\Api\V1\Requests\Generic;
use Override;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest; use FireflyIII\Api\V1\Requests\ApiRequest;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Rules\Account\IsValidAccountTypeList; use FireflyIII\Rules\Account\IsValidAccountTypeList;
use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList; use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList;
use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\AccountFilter;
use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Support\Http\Api\TransactionFilter;
use Illuminate\Contracts\Validation\Validator;
use Override;
use RuntimeException; use RuntimeException;
class ObjectTypeApiRequest extends ApiRequest class ObjectTypeApiRequest extends ApiRequest
@@ -88,7 +89,11 @@ class ObjectTypeApiRequest extends ApiRequest
// no break // no break
case Account::class: case Account::class:
$this->attributes->set('types', $this->mapAccountTypes($type)); $types = $this->mapAccountTypes($type);
// remove system account types because autocomplete doesn't need them.
$types = array_values(array_diff($types, [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::RECONCILIATION->value, AccountTypeEnum::LIABILITY_CREDIT->value]));
$this->attributes->set('types', $types);
break; break;

View File

@@ -48,7 +48,7 @@ class IsValidAccountTypeList implements ValidationRule
$keys = array_keys($this->types); $keys = array_keys($this->types);
foreach ($values as $entry) { foreach ($values as $entry) {
if (!in_array($entry, $keys, true)) { if (!in_array($entry, $keys, true)) {
$fail('validation.invalid_account_list')->translate(); $fail('validation.invalid_account_list')->translate(['value' => $entry]);
} }
} }
} }

View File

@@ -33,7 +33,7 @@ trait AccountFilter
{ {
protected array $types protected array $types
= [ = [
'all' => [ 'all' => [
AccountTypeEnum::DEFAULT->value, AccountTypeEnum::DEFAULT->value,
AccountTypeEnum::CASH->value, AccountTypeEnum::CASH->value,
AccountTypeEnum::ASSET->value, AccountTypeEnum::ASSET->value,
@@ -47,7 +47,7 @@ trait AccountFilter
AccountTypeEnum::DEBT->value, AccountTypeEnum::DEBT->value,
AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::MORTGAGE->value,
], ],
'normal' => [ 'normal' => [
AccountTypeEnum::ASSET->value, AccountTypeEnum::ASSET->value,
AccountTypeEnum::EXPENSE->value, AccountTypeEnum::EXPENSE->value,
AccountTypeEnum::REVENUE->value, AccountTypeEnum::REVENUE->value,
@@ -55,41 +55,42 @@ trait AccountFilter
AccountTypeEnum::DEBT->value, AccountTypeEnum::DEBT->value,
AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::MORTGAGE->value,
], ],
'asset' => [AccountTypeEnum::DEFAULT->value, AccountTypeEnum::ASSET->value], 'asset' => [AccountTypeEnum::DEFAULT->value, AccountTypeEnum::ASSET->value],
'cash' => [AccountTypeEnum::CASH->value], 'cash' => [AccountTypeEnum::CASH->value],
'expense' => [AccountTypeEnum::EXPENSE->value, AccountTypeEnum::BENEFICIARY->value], 'expense' => [AccountTypeEnum::EXPENSE->value, AccountTypeEnum::BENEFICIARY->value],
'revenue' => [AccountTypeEnum::REVENUE->value], 'revenue' => [AccountTypeEnum::REVENUE->value],
'special' => [AccountTypeEnum::CASH->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value], 'special' => [AccountTypeEnum::CASH->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value],
'hidden' => [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value], 'hidden' => [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value],
'liability' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value], 'liability' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value],
'liabilities' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value], 'liabilities' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value],
AccountTypeEnum::DEFAULT->value => [AccountTypeEnum::DEFAULT->value], AccountTypeEnum::DEFAULT->value => [AccountTypeEnum::DEFAULT->value],
AccountTypeEnum::CASH->value => [AccountTypeEnum::CASH->value], AccountTypeEnum::CASH->value => [AccountTypeEnum::CASH->value],
AccountTypeEnum::ASSET->value => [AccountTypeEnum::ASSET->value], AccountTypeEnum::ASSET->value => [AccountTypeEnum::ASSET->value],
AccountTypeEnum::EXPENSE->value => [AccountTypeEnum::EXPENSE->value], AccountTypeEnum::EXPENSE->value => [AccountTypeEnum::EXPENSE->value],
AccountTypeEnum::REVENUE->value => [AccountTypeEnum::REVENUE->value], AccountTypeEnum::REVENUE->value => [AccountTypeEnum::REVENUE->value],
AccountTypeEnum::INITIAL_BALANCE->value => [AccountTypeEnum::INITIAL_BALANCE->value], AccountTypeEnum::INITIAL_BALANCE->value => [AccountTypeEnum::INITIAL_BALANCE->value],
AccountTypeEnum::BENEFICIARY->value => [AccountTypeEnum::BENEFICIARY->value], AccountTypeEnum::BENEFICIARY->value => [AccountTypeEnum::BENEFICIARY->value],
AccountTypeEnum::IMPORT->value => [AccountTypeEnum::IMPORT->value], AccountTypeEnum::IMPORT->value => [AccountTypeEnum::IMPORT->value],
AccountTypeEnum::RECONCILIATION->value => [AccountTypeEnum::RECONCILIATION->value], AccountTypeEnum::RECONCILIATION->value => [AccountTypeEnum::RECONCILIATION->value],
AccountTypeEnum::LOAN->value => [AccountTypeEnum::LOAN->value], AccountTypeEnum::LOAN->value => [AccountTypeEnum::LOAN->value],
AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value], AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value],
AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value], AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value],
AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value], AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value],
'default account' => [AccountTypeEnum::DEFAULT->value], AccountTypeEnum::LIABILITY_CREDIT->value => [AccountTypeEnum::LIABILITY_CREDIT->value],
'cash account' => [AccountTypeEnum::CASH->value], 'default account' => [AccountTypeEnum::DEFAULT->value],
'asset account' => [AccountTypeEnum::ASSET->value], 'cash account' => [AccountTypeEnum::CASH->value],
'expense account' => [AccountTypeEnum::EXPENSE->value], 'asset account' => [AccountTypeEnum::ASSET->value],
'revenue account' => [AccountTypeEnum::REVENUE->value], 'expense account' => [AccountTypeEnum::EXPENSE->value],
'initial balance account' => [AccountTypeEnum::INITIAL_BALANCE->value], 'revenue account' => [AccountTypeEnum::REVENUE->value],
'reconciliation' => [AccountTypeEnum::RECONCILIATION->value], 'initial balance account' => [AccountTypeEnum::INITIAL_BALANCE->value],
'loan' => [AccountTypeEnum::LOAN->value], 'reconciliation' => [AccountTypeEnum::RECONCILIATION->value],
'mortgage' => [AccountTypeEnum::MORTGAGE->value], 'loan' => [AccountTypeEnum::LOAN->value],
'debt' => [AccountTypeEnum::DEBT->value], 'mortgage' => [AccountTypeEnum::MORTGAGE->value],
'credit card' => [AccountTypeEnum::CREDITCARD->value], 'debt' => [AccountTypeEnum::DEBT->value],
'credit-card' => [AccountTypeEnum::CREDITCARD->value], 'credit card' => [AccountTypeEnum::CREDITCARD->value],
'creditcard' => [AccountTypeEnum::CREDITCARD->value], 'credit-card' => [AccountTypeEnum::CREDITCARD->value],
'cc' => [AccountTypeEnum::CREDITCARD->value], 'creditcard' => [AccountTypeEnum::CREDITCARD->value],
'cc' => [AccountTypeEnum::CREDITCARD->value],
]; ];
/** /**
@@ -104,6 +105,7 @@ trait AccountFilter
$return = array_merge($return, $this->types[$part]); $return = array_merge($return, $this->types[$part]);
} }
} }
if (0 === count($return)) { if (0 === count($return)) {
$return = $this->types['normal']; $return = $this->types['normal'];
} }

View File

@@ -3,13 +3,25 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
## 6.4.9 - 2025-11-xx
### Fixed
- [Discussion 11211](https://github.com/orgs/firefly-iii/discussions/11211) (question about Transaction journal ID) started by @zhiiwg
## 6.4.8 - 2025-11-14
### Fixed
- [Issue 11228](https://github.com/firefly-iii/firefly-iii/issues/11228) (Autocomplete fails when the requested account type list includes hidden account types) reported by @jgmm81
## 6.4.7 ## 6.4.7
### Fixed ### Fixed
- [Issue 11206](https://github.com/firefly-iii/firefly-iii/issues/11206) (New transition shows additional option in input) reported by @zhiiwg - [Issue 11206](https://github.com/firefly-iii/firefly-iii/issues/11206) (New transaction shows additional option in input) reported by @zhiiwg
## 6.4.6 - 2025-11-09 ## 6.4.6 - 2025-11-13
### Fixed ### Fixed

93
composer.lock generated
View File

@@ -8,16 +8,16 @@
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
"version": "v3.0.1", "version": "v3.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Bacon/BaconQrCode.git", "url": "https://github.com/Bacon/BaconQrCode.git",
"reference": "f9cc1f52b5a463062251d666761178dbdb6b544f" "reference": "fe259c55425b8178f77fb6d1f84ba2473e21ed55"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f", "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/fe259c55425b8178f77fb6d1f84ba2473e21ed55",
"reference": "f9cc1f52b5a463062251d666761178dbdb6b544f", "reference": "fe259c55425b8178f77fb6d1f84ba2473e21ed55",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -27,8 +27,9 @@
}, },
"require-dev": { "require-dev": {
"phly/keep-a-changelog": "^2.12", "phly/keep-a-changelog": "^2.12",
"phpunit/phpunit": "^10.5.11 || 11.0.4", "phpunit/phpunit": "^10.5.11 || ^11.0.4",
"spatie/phpunit-snapshot-assertions": "^5.1.5", "spatie/phpunit-snapshot-assertions": "^5.1.5",
"spatie/pixelmatch-php": "^1.2.0",
"squizlabs/php_codesniffer": "^3.9" "squizlabs/php_codesniffer": "^3.9"
}, },
"suggest": { "suggest": {
@@ -56,9 +57,9 @@
"homepage": "https://github.com/Bacon/BaconQrCode", "homepage": "https://github.com/Bacon/BaconQrCode",
"support": { "support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues", "issues": "https://github.com/Bacon/BaconQrCode/issues",
"source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1" "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.2"
}, },
"time": "2024-10-01T13:55:55+00:00" "time": "2025-11-16T22:59:48+00:00"
}, },
{ {
"name": "beberlei/assert", "name": "beberlei/assert",
@@ -1937,16 +1938,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v12.37.0", "version": "v12.38.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "3c3c4ad30f5b528b164a7c09aa4ad03118c4c125" "reference": "7f3012af6059f5f64a12930701cd8caed6cf7c17"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/3c3c4ad30f5b528b164a7c09aa4ad03118c4c125", "url": "https://api.github.com/repos/laravel/framework/zipball/7f3012af6059f5f64a12930701cd8caed6cf7c17",
"reference": "3c3c4ad30f5b528b164a7c09aa4ad03118c4c125", "reference": "7f3012af6059f5f64a12930701cd8caed6cf7c17",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2064,7 +2065,7 @@
"phpstan/phpstan": "^2.0", "phpstan/phpstan": "^2.0",
"phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1",
"predis/predis": "^2.3|^3.0", "predis/predis": "^2.3|^3.0",
"resend/resend-php": "^0.10.0", "resend/resend-php": "^0.10.0|^1.0",
"symfony/cache": "^7.2.0", "symfony/cache": "^7.2.0",
"symfony/http-client": "^7.2.0", "symfony/http-client": "^7.2.0",
"symfony/psr-http-message-bridge": "^7.2.0", "symfony/psr-http-message-bridge": "^7.2.0",
@@ -2098,7 +2099,7 @@
"predis/predis": "Required to use the predis connector (^2.3|^3.0).", "predis/predis": "Required to use the predis connector (^2.3|^3.0).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
"resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).",
"symfony/cache": "Required to PSR-6 cache bridge (^7.2).", "symfony/cache": "Required to PSR-6 cache bridge (^7.2).",
"symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).",
"symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).",
@@ -2152,7 +2153,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2025-11-04T15:39:33+00:00" "time": "2025-11-13T02:12:47+00:00"
}, },
{ {
"name": "laravel/passport", "name": "laravel/passport",
@@ -7697,16 +7698,16 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v7.3.6", "version": "v7.3.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c" "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/6379e490d6ecfc5c4224ff3a754b90495ecd135c", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4",
"reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c", "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7756,7 +7757,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.3.6" "source": "https://github.com/symfony/http-foundation/tree/v7.3.7"
}, },
"funding": [ "funding": [
{ {
@@ -7776,20 +7777,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-11-06T11:05:57+00:00" "time": "2025-11-08T16:41:12+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v7.3.6", "version": "v7.3.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "f9a34dc0196677250e3609c2fac9de9e1551a262" "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9a34dc0196677250e3609c2fac9de9e1551a262", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/10b8e9b748ea95fa4539c208e2487c435d3c87ce",
"reference": "f9a34dc0196677250e3609c2fac9de9e1551a262", "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7874,7 +7875,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.3.6" "source": "https://github.com/symfony/http-kernel/tree/v7.3.7"
}, },
"funding": [ "funding": [
{ {
@@ -7894,7 +7895,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-11-06T20:58:12+00:00" "time": "2025-11-12T11:38:40+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
@@ -12011,16 +12012,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "12.4.2", "version": "12.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "a94ea4d26d865875803b23aaf78c3c2c670ea2ea" "reference": "d8f644d8d9bb904867f7a0aeb1bd306e0d966949"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a94ea4d26d865875803b23aaf78c3c2c670ea2ea", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d8f644d8d9bb904867f7a0aeb1bd306e0d966949",
"reference": "a94ea4d26d865875803b23aaf78c3c2c670ea2ea", "reference": "d8f644d8d9bb904867f7a0aeb1bd306e0d966949",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -12088,7 +12089,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.2" "source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.3"
}, },
"funding": [ "funding": [
{ {
@@ -12112,25 +12113,25 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-10-30T08:41:39+00:00" "time": "2025-11-13T07:20:26+00:00"
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
"version": "2.2.7", "version": "2.2.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rectorphp/rector.git", "url": "https://github.com/rectorphp/rector.git",
"reference": "022038537838bc8a4e526af86c2d6e38eaeff7ef" "reference": "303aa811649ccd1d32e51e62d5c85949d01b5f1b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/022038537838bc8a4e526af86c2d6e38eaeff7ef", "url": "https://api.github.com/repos/rectorphp/rector/zipball/303aa811649ccd1d32e51e62d5c85949d01b5f1b",
"reference": "022038537838bc8a4e526af86c2d6e38eaeff7ef", "reference": "303aa811649ccd1d32e51e62d5c85949d01b5f1b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4|^8.0", "php": "^7.4|^8.0",
"phpstan/phpstan": "^2.1.26" "phpstan/phpstan": "^2.1.32"
}, },
"conflict": { "conflict": {
"rector/rector-doctrine": "*", "rector/rector-doctrine": "*",
@@ -12164,7 +12165,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rectorphp/rector/issues", "issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.2.7" "source": "https://github.com/rectorphp/rector/tree/2.2.8"
}, },
"funding": [ "funding": [
{ {
@@ -12172,7 +12173,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-10-29T15:46:12+00:00" "time": "2025-11-12T18:38:00+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@@ -13183,16 +13184,16 @@
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
"version": "1.2.3", "version": "1.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/theseer/tokenizer.git", "url": "https://github.com/theseer/tokenizer.git",
"reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" "reference": "d74205c497bfbca49f34d4bc4c19c17e22db4ebb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "url": "https://api.github.com/repos/theseer/tokenizer/zipball/d74205c497bfbca49f34d4bc4c19c17e22db4ebb",
"reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "reference": "d74205c497bfbca49f34d4bc4c19c17e22db4ebb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13221,7 +13222,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": { "support": {
"issues": "https://github.com/theseer/tokenizer/issues", "issues": "https://github.com/theseer/tokenizer/issues",
"source": "https://github.com/theseer/tokenizer/tree/1.2.3" "source": "https://github.com/theseer/tokenizer/tree/1.3.0"
}, },
"funding": [ "funding": [
{ {
@@ -13229,7 +13230,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-03-03T12:36:25+00:00" "time": "2025-11-13T13:44:09+00:00"
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
@@ -13314,5 +13315,5 @@
"ext-xmlwriter": "*" "ext-xmlwriter": "*"
}, },
"platform-dev": {}, "platform-dev": {},
"plugin-api-version": "2.6.0" "plugin-api-version": "2.9.0"
} }

View File

@@ -78,8 +78,8 @@ return [
'running_balance_column' => env('USE_RUNNING_BALANCE', false), 'running_balance_column' => env('USE_RUNNING_BALANCE', false),
// see cer.php for exchange rates feature flag. // see cer.php for exchange rates feature flag.
], ],
'version' => '6.4.7', 'version' => 'develop/2025-11-17',
'build_time' => 1762922901, 'build_time' => 1763350067,
'api_version' => '2.1.0', // field is no longer used. 'api_version' => '2.1.0', // field is no longer used.
'db_version' => 28, // field is no longer used. 'db_version' => 28, // field is no longer used.

32
package-lock.json generated
View File

@@ -3776,9 +3776,9 @@
} }
}, },
"node_modules/alpinejs": { "node_modules/alpinejs": {
"version": "3.15.1", "version": "3.15.2",
"resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.1.tgz", "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.2.tgz",
"integrity": "sha512-HLO1TtiE92VajFHtLLPK8BWaK1YepV/uj31UrfoGnQ00lyFOJZ+oVY3F0DghPAwvg8sLU79pmjGQSytERa2gEg==", "integrity": "sha512-2kYF2aG+DTFkE6p0rHG5XmN4VEb6sO9b02aOdU4+i8QN6rL0DbRZQiypDE1gBcGO65yDcqMz5KKYUYgMUxgNkw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "~3.1.1" "@vue/reactivity": "~3.1.1"
@@ -4075,9 +4075,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/baseline-browser-mapping": { "node_modules/baseline-browser-mapping": {
"version": "2.8.26", "version": "2.8.28",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.26.tgz", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz",
"integrity": "sha512-73lC1ugzwoaWCLJ1LvOgrR5xsMLTqSKIEoMHVtL9E/HNk0PXtTM76ZIm84856/SF7Nv8mPZxKoBsgpm0tR1u1Q==", "integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
@@ -4521,9 +4521,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001754", "version": "1.0.30001755",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz",
"integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", "integrity": "sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -5365,9 +5365,9 @@
} }
}, },
"node_modules/csstype": { "node_modules/csstype": {
"version": "3.1.3", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.2.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "integrity": "sha512-D80T+tiqkd/8B0xNlbstWDG4x6aqVfO52+OlSUNIdkTvmNw0uQpJLeos2J/2XvpyidAFuTPmpad+tUxLndwj6g==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@@ -5736,9 +5736,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.5.250", "version": "1.5.254",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.250.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.254.tgz",
"integrity": "sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw==", "integrity": "sha512-DcUsWpVhv9svsKRxnSCZ86SjD+sp32SGidNB37KpqXJncp1mfUgKbHvBomE89WJDbfVKw1mdv5+ikrvd43r+Bg==",
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
@@ -12507,7 +12507,7 @@
"@fortawesome/fontawesome-free": "^7", "@fortawesome/fontawesome-free": "^7",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"admin-lte": "^4.0.0-rc4", "admin-lte": "^4.0.0-rc4",
"alpinejs": "^3.13.7", "alpinejs": "^3.15.2",
"bootstrap": "^5", "bootstrap": "^5",
"bootstrap5-autocomplete": "^1", "bootstrap5-autocomplete": "^1",
"bootstrap5-tags": "^1", "bootstrap5-tags": "^1",

View File

@@ -19,7 +19,7 @@
"@fortawesome/fontawesome-free": "^7", "@fortawesome/fontawesome-free": "^7",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"admin-lte": "^4.0.0-rc4", "admin-lte": "^4.0.0-rc4",
"alpinejs": "^3.13.7", "alpinejs": "^3.15.2",
"bootstrap": "^5", "bootstrap": "^5",
"bootstrap5-autocomplete": "^1", "bootstrap5-autocomplete": "^1",
"bootstrap5-tags": "^1", "bootstrap5-tags": "^1",

View File

@@ -24,7 +24,7 @@
declare(strict_types=1); declare(strict_types=1);
return [ return [
'invalid_account_list' => 'Invalid account type list', 'invalid_account_list' => 'Invalid account type list entry ":value"',
'invalid_transaction_type_list' => 'Invalid transaction type list', 'invalid_transaction_type_list' => 'Invalid transaction type list',
'limit_exists' => 'There is already a budget limit (amount) for this budget and currency in the given period.', 'limit_exists' => 'There is already a budget limit (amount) for this budget and currency in the given period.',
'invalid_sort_instruction' => 'The sort instruction is invalid for an object of type ":object".', 'invalid_sort_instruction' => 'The sort instruction is invalid for an object of type ":object".',

View File

@@ -62,6 +62,10 @@
<div class="box-body no-padding"> <div class="box-body no-padding">
<table class="table table-hover"> <table class="table table-hover">
<tbody> <tbody>
<tr>
<td style="width:40%;">{{ trans('list.id') }}</td>
<td>#{{ transactionGroup.id }}</td>
</tr>
<tr> <tr>
<td style="width:40%;">{{ trans('list.type') }}</td> <td style="width:40%;">{{ trans('list.type') }}</td>
<td>{{ first.transaction_type_type|_ }}</td> <td>{{ first.transaction_type_type|_ }}</td>