Compare commits

..

48 Commits

Author SHA1 Message Date
github-actions
af13bd991e Auto commit for release 'develop' on 2024-07-01 2024-07-01 05:06:49 +02:00
James Cole
48e548eb52 Better disable thing. 2024-06-30 18:20:52 +02:00
github-actions
1a19e27f0e Auto commit for release 'develop' on 2024-06-24 2024-06-24 05:07:31 +02:00
James Cole
0cbd22426d Fix https://github.com/firefly-iii/firefly-iii/issues/8986 2024-06-20 18:29:00 +02:00
James Cole
d5e52e99e0 Fix #8981 2024-06-18 19:44:22 +02:00
github-actions
f52978e71f Auto commit for release 'v6.1.18' on 2024-06-17 2024-06-17 20:47:03 +02:00
James Cole
3a3358124d Meta data for new release. 2024-06-17 20:43:02 +02:00
github-actions
929808c633 Auto commit for release 'develop' on 2024-06-17 2024-06-17 05:07:03 +02:00
github-actions
a78df574f3 Auto commit for release 'develop' on 2024-06-16 2024-06-16 20:26:04 +02:00
James Cole
875cad16b6 Possible fix for https://github.com/firefly-iii/firefly-iii/issues/8977 2024-06-16 20:21:39 +02:00
James Cole
7bc30192ca Fix https://github.com/firefly-iii/firefly-iii/issues/8978 2024-06-16 19:27:38 +02:00
github-actions
a1a8968e98 Auto commit for release 'develop' on 2024-06-15 2024-06-15 16:16:40 +02:00
James Cole
6abb74a038 Mondays only [skip ci] 2024-06-15 14:26:59 +02:00
github-actions
2d7d05e985 Auto commit for release 'v6.1.17' on 2024-06-15 2024-06-15 13:07:23 +02:00
github-actions
d426e09474 Merge branch 'develop' 2024-06-15 11:04:29 +00:00
James Cole
72d55cb953 Revert workflow change. 2024-06-15 13:02:53 +02:00
James Cole
73ad865581 Add changelog. 2024-06-15 12:56:41 +02:00
James Cole
fefb52beb7 Weekly develop 2024-06-15 12:50:15 +02:00
James Cole
abd503543b Fix regression error in cookie queue 2024-06-15 12:33:56 +02:00
James Cole
e3eb550581 Add currency because why not. 2024-06-15 09:42:09 +02:00
James Cole
46b780758e Fix https://github.com/firefly-iii/firefly-iii/issues/8927 2024-06-15 09:38:19 +02:00
James Cole
b2c3ee9779 Fix https://github.com/firefly-iii/firefly-iii/issues/8954 2024-06-15 09:29:40 +02:00
James Cole
dca899bcee Fix https://github.com/firefly-iii/firefly-iii/issues/8893 2024-06-15 09:25:41 +02:00
James Cole
9667b8a948 Fix https://github.com/firefly-iii/firefly-iii/issues/8958 2024-06-15 09:17:41 +02:00
James Cole
661f225fe7 Add custom routes for Laravel passport. 2024-06-15 09:15:48 +02:00
github-actions
4c6fe0c8de Auto commit for release 'develop' on 2024-06-13 2024-06-13 05:08:55 +02:00
James Cole
78f457950e Merge pull request #8957 from JeroenED/unlimited-nesting-level
Remove nesting level for markdown
2024-06-11 15:17:43 +02:00
Jeroen De Meerleer
d831cc8df2 Update max nesting level for Markdown converter
Increased the max nesting level to 5 for better parsing.
2024-06-11 15:04:15 +02:00
James Cole
7056406afc Merge pull request #8951 from stevewasiura/patch-3
add icon for delete action
2024-06-11 15:03:09 +02:00
github-actions
c85cfcf3e6 Auto commit for release 'develop' on 2024-06-10 2024-06-10 05:09:13 +02:00
Jeroen De Meerleer
db06d06789 Remove unnecessary option from Markdown converter
The 'max_nesting_level' option was removed from the Markdown converter configuration in order to simplify and optimize the code.
2024-06-07 09:05:38 +02:00
github-actions
a28b990cd1 Auto commit for release 'develop' on 2024-06-06 2024-06-06 05:09:02 +02:00
Steve Wasiura
dab4bfa7a6 add icon for delete action
in workflow of reconciling account, sometimes a record needs to be deleted (i.e. in event of a duplicated transaction from an import or error) and this change adds an icon to the delete route

Signed-off-by: Steve Wasiura <steve@waztech.com>
2024-06-03 22:09:22 -04:00
James Cole
6575236f2b Merge pull request #8949 from firefly-iii/dependabot/github_actions/crowdin/github-action-2
Bump crowdin/github-action from 1 to 2
2024-06-03 07:34:04 +02:00
dependabot[bot]
ad582c8806 Bump crowdin/github-action from 1 to 2
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1 to 2.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](https://github.com/crowdin/github-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 03:59:42 +00:00
github-actions
452e9cb953 Auto commit for release 'develop' on 2024-06-03 2024-06-03 05:09:54 +02:00
James Cole
a64f137b39 Fix missing locales files. 2024-06-02 07:29:41 +02:00
James Cole
c067d6aab0 Catch division by zero 2024-06-01 05:36:21 +02:00
github-actions
119b9920a6 Auto commit for release 'develop' on 2024-05-30 2024-05-30 05:48:54 +02:00
James Cole
99ed54fce8 Revert steps 2024-05-30 05:45:04 +02:00
James Cole
2ea57cdd38 Merge pull request #8930 from stevewasiura/patch-2
icon title chgd from Deposit to Transfer
2024-05-29 18:00:47 +02:00
James Cole
bb94bdfdaf Merge pull request #8929 from stevewasiura/patch-1
icon title chgd from Deposit to Transfer
2024-05-29 17:59:49 +02:00
Steve Wasiura
4de8398cc2 icon title chgd from Deposit to Transfer
Signed-off-by: Steve Wasiura <steve@waztech.com>
2024-05-29 09:20:39 -04:00
Steve Wasiura
e6e8cd5d8a icon title chgd from Deposit to Transfer
Signed-off-by: Steve Wasiura <steve@waztech.com>
2024-05-29 09:15:53 -04:00
James Cole
0b200309ba Catch empty strings 2024-05-28 05:53:17 +02:00
github-actions
a184548912 Auto commit for release 'develop' on 2024-05-27 2024-05-27 05:08:44 +02:00
James Cole
c987191212 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Console/Commands/Upgrade/CorrectAccountBalance.php
2024-05-26 15:37:20 +02:00
James Cole
7009b444d9 Skip creation using if statement. 2024-05-26 15:36:30 +02:00
74 changed files with 1961 additions and 1232 deletions

View File

@@ -72,16 +72,16 @@
},
{
"name": "composer/pcre",
"version": "3.1.3",
"version": "3.1.4",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
"reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8"
"reference": "04229f163664973f68f38f6f73d917799168ef24"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8",
"reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8",
"url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24",
"reference": "04229f163664973f68f38f6f73d917799168ef24",
"shasum": ""
},
"require": {
@@ -123,7 +123,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.1.3"
"source": "https://github.com/composer/pcre/tree/3.1.4"
},
"funding": [
{
@@ -139,7 +139,7 @@
"type": "tidelift"
}
],
"time": "2024-03-19T10:26:25+00:00"
"time": "2024-05-27T13:40:54+00:00"
},
{
"name": "composer/semver",
@@ -398,16 +398,16 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v3.57.2",
"version": "v3.59.3",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "22f7f3145606df92b02fb1bd22c30abfce956d3c"
"reference": "30ba9ecc2b0e5205e578fe29973c15653d9bfd29"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/22f7f3145606df92b02fb1bd22c30abfce956d3c",
"reference": "22f7f3145606df92b02fb1bd22c30abfce956d3c",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/30ba9ecc2b0e5205e578fe29973c15653d9bfd29",
"reference": "30ba9ecc2b0e5205e578fe29973c15653d9bfd29",
"shasum": ""
},
"require": {
@@ -437,16 +437,16 @@
"symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
"facile-it/paraunit": "^1.3 || ^2.0",
"infection/infection": "^0.27.11",
"facile-it/paraunit": "^1.3 || ^2.3",
"infection/infection": "^0.29.5",
"justinrainbow/json-schema": "^5.2",
"keradus/cli-executor": "^2.1",
"mikey179/vfsstream": "^1.6.11",
"php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
"phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5",
"phpunit/phpunit": "^9.6.19 || ^10.5.21 || ^11.2",
"symfony/var-dumper": "^5.4 || ^6.0 || ^7.0",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
@@ -461,7 +461,10 @@
"autoload": {
"psr-4": {
"PhpCsFixer\\": "src/"
}
},
"exclude-from-classmap": [
"src/Fixer/Internal/*"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -486,7 +489,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.57.2"
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.59.3"
},
"funding": [
{
@@ -494,7 +497,7 @@
"type": "github"
}
],
"time": "2024-05-20T20:41:57+00:00"
"time": "2024-06-16T14:17:03+00:00"
},
{
"name": "psr/container",
@@ -802,28 +805,28 @@
},
{
"name": "react/dns",
"version": "v1.12.0",
"version": "v1.13.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/dns.git",
"reference": "c134600642fa615b46b41237ef243daa65bb64ec"
"reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec",
"reference": "c134600642fa615b46b41237ef243daa65bb64ec",
"url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
"reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.2",
"react/promise": "^3.0 || ^2.7 || ^1.2.1"
"react/promise": "^3.2 || ^2.7 || ^1.2.1"
},
"require-dev": {
"phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
"react/async": "^4 || ^3 || ^2",
"react/promise-timer": "^1.9"
"react/async": "^4.3 || ^3 || ^2",
"react/promise-timer": "^1.11"
},
"type": "library",
"autoload": {
@@ -866,7 +869,7 @@
],
"support": {
"issues": "https://github.com/reactphp/dns/issues",
"source": "https://github.com/reactphp/dns/tree/v1.12.0"
"source": "https://github.com/reactphp/dns/tree/v1.13.0"
},
"funding": [
{
@@ -874,7 +877,7 @@
"type": "open_collective"
}
],
"time": "2023-11-29T12:41:06+00:00"
"time": "2024-06-13T14:18:03+00:00"
},
{
"name": "react/event-loop",
@@ -1103,16 +1106,16 @@
},
{
"name": "react/stream",
"version": "v1.3.0",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/stream.git",
"reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66"
"reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66",
"reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66",
"url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
"reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
"shasum": ""
},
"require": {
@@ -1122,7 +1125,7 @@
},
"require-dev": {
"clue/stream-filter": "~1.2",
"phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
"phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
},
"type": "library",
"autoload": {
@@ -1169,7 +1172,7 @@
],
"support": {
"issues": "https://github.com/reactphp/stream/issues",
"source": "https://github.com/reactphp/stream/tree/v1.3.0"
"source": "https://github.com/reactphp/stream/tree/v1.4.0"
},
"funding": [
{
@@ -1177,7 +1180,7 @@
"type": "open_collective"
}
],
"time": "2023-06-16T10:52:11+00:00"
"time": "2024-06-11T12:45:25+00:00"
},
{
"name": "sebastian/diff",
@@ -1248,16 +1251,16 @@
},
{
"name": "symfony/console",
"version": "v7.0.7",
"version": "v7.1.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "c981e0e9380ce9f146416bde3150c79197ce9986"
"reference": "0aa29ca177f432ab68533432db0de059f39c92ae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986",
"reference": "c981e0e9380ce9f146416bde3150c79197ce9986",
"url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae",
"reference": "0aa29ca177f432ab68533432db0de059f39c92ae",
"shasum": ""
},
"require": {
@@ -1321,7 +1324,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.0.7"
"source": "https://github.com/symfony/console/tree/v7.1.2"
},
"funding": [
{
@@ -1337,7 +1340,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-06-28T10:03:55+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -1408,16 +1411,16 @@
},
{
"name": "symfony/event-dispatcher",
"version": "v7.0.7",
"version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "db2a7fab994d67d92356bb39c367db115d9d30f9"
"reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9",
"reference": "db2a7fab994d67d92356bb39c367db115d9d30f9",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
"reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
"shasum": ""
},
"require": {
@@ -1468,7 +1471,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v7.0.7"
"source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1"
},
"funding": [
{
@@ -1484,7 +1487,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -1564,22 +1567,24 @@
},
{
"name": "symfony/filesystem",
"version": "v7.0.7",
"version": "v7.1.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5"
"reference": "92a91985250c251de9b947a14bb2c9390b1a562c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5",
"reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c",
"reference": "92a91985250c251de9b947a14bb2c9390b1a562c",
"shasum": ""
},
"require": {
"php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
"require-dev": {
"symfony/process": "^6.4|^7.0"
},
"type": "library",
@@ -1608,7 +1613,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v7.0.7"
"source": "https://github.com/symfony/filesystem/tree/v7.1.2"
},
"funding": [
{
@@ -1624,20 +1629,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-06-28T10:03:55+00:00"
},
{
"name": "symfony/finder",
"version": "v7.0.7",
"version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "4d58f0f4fe95a30d7b538d71197135483560b97c"
"reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c",
"reference": "4d58f0f4fe95a30d7b538d71197135483560b97c",
"url": "https://api.github.com/repos/symfony/finder/zipball/fbb0ba67688b780efbc886c1a0a0948dcf7205d6",
"reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6",
"shasum": ""
},
"require": {
@@ -1672,7 +1677,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v7.0.7"
"source": "https://github.com/symfony/finder/tree/v7.1.1"
},
"funding": [
{
@@ -1688,20 +1693,20 @@
"type": "tidelift"
}
],
"time": "2024-04-28T11:44:19+00:00"
"time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/options-resolver",
"version": "v7.0.7",
"version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
"reference": "23cc173858776ad451e31f053b1c9f47840b2cfa"
"reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/23cc173858776ad451e31f053b1c9f47840b2cfa",
"reference": "23cc173858776ad451e31f053b1c9f47840b2cfa",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/47aa818121ed3950acd2b58d1d37d08a94f9bf55",
"reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55",
"shasum": ""
},
"require": {
@@ -1739,7 +1744,7 @@
"options"
],
"support": {
"source": "https://github.com/symfony/options-resolver/tree/v7.0.7"
"source": "https://github.com/symfony/options-resolver/tree/v7.1.1"
},
"funding": [
{
@@ -1755,20 +1760,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.29.0",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
"reference": "0424dff1c58f028c451efff2045f5d92410bd540"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
"reference": "0424dff1c58f028c451efff2045f5d92410bd540",
"shasum": ""
},
"require": {
@@ -1818,7 +1823,7 @@
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
},
"funding": [
{
@@ -1834,20 +1839,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
"version": "v1.29.0",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
"shasum": ""
},
"require": {
@@ -1896,7 +1901,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
},
"funding": [
{
@@ -1912,20 +1917,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.29.0",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
"shasum": ""
},
"require": {
@@ -1977,7 +1982,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
},
"funding": [
{
@@ -1993,20 +1998,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.29.0",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"shasum": ""
},
"require": {
@@ -2057,7 +2062,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
},
"funding": [
{
@@ -2073,20 +2078,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/polyfill-php80",
"version": "v1.29.0",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
"shasum": ""
},
"require": {
@@ -2137,7 +2142,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
},
"funding": [
{
@@ -2153,20 +2158,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-php81",
"version": "v1.29.0",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
"reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
"reference": "3fb075789fb91f9ad9af537c4012d523085bd5af"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
"reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af",
"reference": "3fb075789fb91f9ad9af537c4012d523085bd5af",
"shasum": ""
},
"require": {
@@ -2213,7 +2218,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0"
},
"funding": [
{
@@ -2229,20 +2234,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/process",
"version": "v7.0.7",
"version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "3839e56b94dd1dbd13235d27504e66baf23faba0"
"reference": "febf90124323a093c7ee06fdb30e765ca3c20028"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0",
"reference": "3839e56b94dd1dbd13235d27504e66baf23faba0",
"url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028",
"reference": "febf90124323a093c7ee06fdb30e765ca3c20028",
"shasum": ""
},
"require": {
@@ -2274,7 +2279,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.0.7"
"source": "https://github.com/symfony/process/tree/v7.1.1"
},
"funding": [
{
@@ -2290,7 +2295,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/service-contracts",
@@ -2377,16 +2382,16 @@
},
{
"name": "symfony/stopwatch",
"version": "v7.0.7",
"version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
"reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84"
"reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/41a7a24aa1dc82adf46a06bc292d1923acfe6b84",
"reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d",
"reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d",
"shasum": ""
},
"require": {
@@ -2419,7 +2424,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/stopwatch/tree/v7.0.7"
"source": "https://github.com/symfony/stopwatch/tree/v7.1.1"
},
"funding": [
{
@@ -2435,20 +2440,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/string",
"version": "v7.0.7",
"version": "v7.1.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63"
"reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
"reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
"url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8",
"reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8",
"shasum": ""
},
"require": {
@@ -2462,6 +2467,7 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
"symfony/emoji": "^7.1",
"symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
@@ -2505,7 +2511,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.0.7"
"source": "https://github.com/symfony/string/tree/v7.1.2"
},
"funding": [
{
@@ -2521,7 +2527,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
"time": "2024-06-28T09:27:18+00:00"
}
],
"packages-dev": [],

View File

@@ -8,7 +8,7 @@ on:
required: true
default: 'develop'
schedule:
- cron: '0 3 * * MON,THU'
- cron: '0 3 * * MON'
jobs:
build:
@@ -39,7 +39,7 @@ jobs:
php-version: '8.3'
extensions: mbstring, intl, zip, bcmath
- name: crowdin action
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
upload_sources: true
download_translations: true
@@ -125,9 +125,9 @@ jobs:
- name: Build JS
run: |
npm install
npm update
npm run prod --workspace=v1
npm run build --workspace=v2
npm update
- name: Run CI
run: |
rm -rf vendor composer.lock

View File

@@ -4,6 +4,7 @@ Over time, many people have contributed to Firefly III. Their efforts are not al
Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution.
## 2024
- Steve Wasiura
- imlonghao
- Rahman Yusuf
- Michael Thomas

View File

@@ -58,7 +58,7 @@ class StoreRequest extends FormRequest
$models = config('firefly.valid_attachment_models');
$models = array_map(
static function (string $className) {
return str_replace('FireflyIII\\Models\\', '', $className);
return str_replace('FireflyIII\Models\\', '', $className);
},
$models
);

View File

@@ -60,7 +60,7 @@ class UpdateRequest extends FormRequest
$models = config('firefly.valid_attachment_models');
$models = array_map(
static function (string $className) {
return str_replace('FireflyIII\\Models\\', '', $className);
return str_replace('FireflyIII\Models\\', '', $className);
},
$models
);

View File

@@ -115,7 +115,7 @@ class UpdateGroupInformation extends Command
return;
}
if (0 !== $result) {
$this->friendlyPositive(sprintf('User #%d: Moved %d %s objects to the correct group.', $user->id, $result, str_replace('FireflyIII\\Models\\', '', $className)));
$this->friendlyPositive(sprintf('User #%d: Moved %d %s objects to the correct group.', $user->id, $result, str_replace('FireflyIII\Models\\', '', $className)));
}
}
}

View File

@@ -111,7 +111,7 @@ class ForceDecimalSize extends Command
{
// switch stuff based on database connection:
$this->operator = 'REGEXP';
$this->regularExpression = '\'\\\\.[\\\\d]{%d}[1-9]+\'';
$this->regularExpression = '\'\\\.[\\\d]{%d}[1-9]+\'';
$this->cast = 'CHAR';
if ('pgsql' === config('database.default')) {
$this->operator = 'SIMILAR TO';
@@ -119,7 +119,7 @@ class ForceDecimalSize extends Command
$this->cast = 'TEXT';
}
if ('sqlite' === config('database.default')) {
$this->regularExpression = '"\\.[\d]{%d}[1-9]+"';
$this->regularExpression = '"\.[\d]{%d}[1-9]+"';
}
}
@@ -307,7 +307,7 @@ class ForceDecimalSize extends Command
/** @var string $field */
foreach ($fields as $field) {
$value = $item->{$field};
if (null === $value) {
if (null === $value || '' === $value) {
continue;
}
// fix $field by rounding it down correctly.

View File

@@ -33,9 +33,8 @@ use Illuminate\Console\Command;
class CorrectAccountBalance extends Command
{
use ShowsFriendlyMessages;
public const string CONFIG_NAME = '620_correct_balances';
public const string CONFIG_NAME = '610_correct_balances';
protected $description = 'Recalculate all account balance amounts';
protected $signature = 'firefly-iii:correct-account-balance {--F|force : Force the execution of this command.}';
public function handle(): int

View File

@@ -43,7 +43,7 @@ class AttachmentFactory
public function create(array $data): ?Attachment
{
// append if necessary.
$model = !str_contains($data['attachable_type'], 'FireflyIII') ? sprintf('FireflyIII\\Models\\%s', $data['attachable_type'])
$model = !str_contains($data['attachable_type'], 'FireflyIII') ? sprintf('FireflyIII\Models\%s', $data['attachable_type'])
: $data['attachable_type'];
// get journal instead of transaction.

View File

@@ -717,7 +717,7 @@ trait MetaCollection
$this->joinMetaDataTables();
$this->query->where('journal_meta.name', '=', 'internal_reference');
$this->query->where('journal_meta.data', 'LIKE', sprintf('%%%s%%', $internalReference));
$this->query->where('journal_meta.data', '=', $internalReference);
return $this;
}

View File

@@ -121,7 +121,7 @@ class LoginController extends Controller
// Copied directly from AuthenticatesUsers, but with logging added:
// If the login attempt was unsuccessful we will increment the number of attempts
// to login and redirect the user back to the login form. Of course, when this
// to log in and redirect the user back to the login form. Of course, when this
// user surpasses their maximum number of attempts they will get locked out.
$this->incrementLoginAttempts($request);
Log::channel('audit')->warning(sprintf('Login failed. Attempt for user "%s" failed.', $request->get($this->username())));
@@ -233,7 +233,7 @@ class LoginController extends Controller
$storeInCookie = config('google2fa.store_in_cookie', false);
if (false !== $storeInCookie) {
$cookieName = config('google2fa.cookie_name', 'google2fa_token');
request()->cookies->set($cookieName, 'invalid');
\Cookie::queue(\Cookie::make($cookieName, 'invalid-'.time()));
}
$usernameField = $this->username();

View File

@@ -185,7 +185,7 @@ class BudgetLimitController extends Controller
$array['amount_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $limit['amount']);
$array['days_left'] = (string)$this->activeDaysLeft($start, $end);
// left per day:
$array['left_per_day'] = bcdiv(bcadd($array['spent'], $array['amount']), $array['days_left']);
$array['left_per_day'] = 0 === bccomp('0', $array['days_left']) ? bcadd($array['spent'], $array['amount']) : bcdiv(bcadd($array['spent'], $array['amount']), $array['days_left']);
// left per day formatted.
$array['left_per_day_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $array['left_per_day']);

View File

@@ -120,7 +120,7 @@ class PreferencesController extends Controller
// list of locales also has "equal" which makes it equal to whatever the language is.
try {
$locales = json_decode((string)file_get_contents(resource_path(sprintf('lang/%s/locales.json', $language))), true, 512, JSON_THROW_ON_ERROR);
$locales = json_decode((string)file_get_contents(resource_path(sprintf('locales/%s/locales.json', $language))), true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
app('log')->error($e->getMessage());
$locales = [];

View File

@@ -23,7 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Transaction;
use Exception;
use FireflyIII\Events\UpdatedTransactionGroup;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller;
@@ -65,7 +64,7 @@ class ConvertController extends Controller
$this->middleware(
function ($request, $next) {
$this->accountRepository = app(AccountRepositoryInterface::class);
app('view')->share('title', (string)trans('firefly.transactions'));
app('view')->share('title', (string) trans('firefly.transactions'));
app('view')->share('mainTitleIcon', 'fa-exchange');
return $next($request);
@@ -95,7 +94,7 @@ class ConvertController extends Controller
$groupTitle = $group->title ?? $first->description;
$groupArray = $transformer->transformObject($group);
$subTitle = (string)trans('firefly.convert_to_'.$destinationType->type, ['description' => $groupTitle]);
$subTitle = (string) trans('firefly.convert_to_'.$destinationType->type, ['description' => $groupTitle]);
$subTitleIcon = 'fa-exchange';
// get a list of asset accounts and liabilities and stuff, in various combinations:
@@ -111,7 +110,7 @@ class ConvertController extends Controller
if ($sourceType->type === $destinationType->type) { // cannot convert to its own type.
app('log')->debug('This is already a transaction of the expected type..');
session()->flash('info', (string)trans('firefly.convert_is_already_type_'.$destinationType->type));
session()->flash('info', (string) trans('firefly.convert_is_already_type_'.$destinationType->type));
return redirect(route('transactions.show', [$group->id]));
}
@@ -147,7 +146,7 @@ class ConvertController extends Controller
// group accounts:
/** @var Account $account */
foreach ($accountList as $account) {
$role = (string)$this->accountRepository->getMetaValue($account, 'account_role');
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$name = $account->name;
if ('' === $role) {
$role = 'no_account_type';
@@ -165,7 +164,7 @@ class ConvertController extends Controller
$role = 'revenue_account';
}
$key = (string)trans('firefly.opt_group_'.$role);
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $name;
}
@@ -184,7 +183,7 @@ class ConvertController extends Controller
// group accounts:
/** @var Account $account */
foreach ($accountList as $account) {
$role = (string)$this->accountRepository->getMetaValue($account, 'account_role');
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$name = $account->name;
if ('' === $role) {
$role = 'no_account_type';
@@ -202,7 +201,7 @@ class ConvertController extends Controller
$role = 'expense_account';
}
$key = (string)trans('firefly.opt_group_'.$role);
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $name;
}
@@ -225,7 +224,7 @@ class ConvertController extends Controller
$balance = app('steam')->balance($account, today());
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
$role = 'l_'.$account->accountType->type;
$key = (string)trans('firefly.opt_group_'.$role);
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $account->name.' ('.app('amount')->formatAnything($currency, $balance, false).')';
}
@@ -247,12 +246,12 @@ class ConvertController extends Controller
foreach ($accountList as $account) {
$balance = app('steam')->balance($account, today());
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
$role = (string)$this->accountRepository->getMetaValue($account, 'account_role');
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
if ('' === $role) {
$role = 'no_account_type';
}
$key = (string)trans('firefly.opt_group_'.$role);
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $account->name.' ('.app('amount')->formatAnything($currency, $balance, false).')';
}
@@ -285,7 +284,7 @@ class ConvertController extends Controller
// correct transfers:
$group->refresh();
session()->flash('success', (string)trans('firefly.converted_to_'.$destinationType->type));
session()->flash('success', (string) trans('firefly.converted_to_'.$destinationType->type));
event(new UpdatedTransactionGroup($group, true, true));
return redirect(route('transactions.show', [$group->id]));
@@ -306,11 +305,11 @@ class ConvertController extends Controller
$destinationId = $data['destination_id'][$journal->id] ?? null;
$destinationName = $data['destination_name'][$journal->id] ?? null;
// double check its not an empty string.
$sourceId = '' === $sourceId || null === $sourceId ? null : (int)$sourceId;
$sourceName = '' === $sourceName ? null : (string)$sourceName;
$destinationId = '' === $destinationId || null === $destinationId ? null : (int)$destinationId;
$destinationName = '' === $destinationName ? null : (string)$destinationName;
// double check it's not an empty string.
$sourceId = '' === $sourceId || null === $sourceId ? null : (int) $sourceId;
$sourceName = '' === $sourceName ? null : (string) $sourceName;
$destinationId = '' === $destinationId || null === $destinationId ? null : (int) $destinationId;
$destinationName = '' === $destinationName ? null : (string) $destinationName;
$validSource = $validator->validateSource(['id' => $sourceId, 'name' => $sourceName]);
$validDestination = $validator->validateDestination(['id' => $destinationId, 'name' => $destinationName]);
@@ -331,6 +330,19 @@ class ConvertController extends Controller
'type' => $transactionType->type,
];
// also set the currency to the currency of the source account, in case you're converting a deposit into a transfer.
if (TransactionType::TRANSFER === $transactionType->type && TransactionType::DEPOSIT === $journal->transactionType->type) {
$source = $this->accountRepository->find((int) $sourceId);
$sourceCurrency = $this->accountRepository->getAccountCurrency($source);
$dest = $this->accountRepository->find((int) $destinationId);
$destCurrency = $this->accountRepository->getAccountCurrency($dest);
if (null !== $sourceCurrency && null !== $destCurrency && $sourceCurrency->code !== $destCurrency->code) {
$update['currency_id'] = $sourceCurrency->id;
$update['foreign_currency_id'] = $destCurrency->id;
$update['foreign_amount'] = '1'; // not the best solution but at this point the amount is hard to get.
}
}
/** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class);
$service->setTransactionJournal($journal);

View File

@@ -28,4 +28,9 @@ use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
/**
* Class VerifyCsrfToken.
*/
class VerifyCsrfToken extends Middleware {}
class VerifyCsrfToken extends Middleware
{
protected $except = [
'oauth/token',
];
}

View File

@@ -28,6 +28,7 @@ use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
use Laravel\Passport\Passport;
/**
* Class AppServiceProvider
@@ -87,6 +88,7 @@ class AppServiceProvider extends ServiceProvider
*/
public function register(): void
{
Passport::ignoreRoutes();
// Passport::ignoreMigrations();
// Sanctum::ignoreMigrations();
}

View File

@@ -146,7 +146,7 @@ class AttachmentRepository implements AttachmentRepositoryInterface
// should be validated already:
if (array_key_exists('attachable_type', $data) && array_key_exists('attachable_id', $data)) {
$attachment->attachable_id = (int)$data['attachable_id'];
$attachment->attachable_type = sprintf('FireflyIII\\Models\\%s', $data['attachable_type']);
$attachment->attachable_type = sprintf('FireflyIII\Models\%s', $data['attachable_type']);
}
$attachment->save();

View File

@@ -150,7 +150,6 @@ class RuleRepository implements RuleRepositoryInterface
$params[] = sprintf('%s:true', OperatorQuerySearch::getRootOperator($trigger->trigger_type));
}
if (true === $needsContext) {
var_dump('x');
$params[] = sprintf('%s:"%s"', OperatorQuerySearch::getRootOperator($trigger->trigger_type), $trigger->trigger_value);
}
}

View File

@@ -216,7 +216,6 @@ class CreditRecalculateService
app('log')->debug(sprintf('Destination amount "%s" is now "%s"', $dest->amount, app('steam')->negative($dest->amount)));
$source->amount = app('steam')->positive($source->amount);
$dest->amount = app('steam')->negative($source->amount);
var_dump($source->foreign_amount);
if (null !== $source->foreign_amount && '' !== $source->foreign_amount) {
$source->foreign_amount = app('steam')->positive($source->foreign_amount);
app('log')->debug(sprintf('Source foreign amount "%s" is now "%s"', $source->foreign_amount, app('steam')->positive($source->foreign_amount)));

View File

@@ -48,6 +48,9 @@ class ExchangeRateConverter
*/
public function convert(TransactionCurrency $from, TransactionCurrency $to, Carbon $date, string $amount): string
{
if (false === config('cer.enabled')) {
return $amount;
}
Log::debug('convert()');
$rate = $this->getCurrencyRate($from, $to, $date);
@@ -59,6 +62,9 @@ class ExchangeRateConverter
*/
public function getCurrencyRate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): string
{
if (false === config('cer.enabled')) {
return '1';
}
Log::debug('getCurrencyRate()');
$rate = $this->getRate($from, $to, $date);
@@ -233,6 +239,9 @@ class ExchangeRateConverter
*/
public function prepare(TransactionCurrency $from, TransactionCurrency $to, Carbon $start, Carbon $end): void
{
if (false === config('cer.enabled')) {
return;
}
Log::debug('prepare()');
$start->startOfDay();
$end->endOfDay();
@@ -305,6 +314,9 @@ class ExchangeRateConverter
public function summarize(): void
{
if (false === config('cer.enabled')) {
return;
}
Log::debug(sprintf('ExchangeRateConverter ran %d queries.', $this->queryCount));
}
}

View File

@@ -171,6 +171,8 @@ trait AugumentData
/** @var BudgetLimitRepositoryInterface $blRepository */
$blRepository = app(BudgetLimitRepositoryInterface::class);
$end->endOfMonth();
// properties for cache
$cache = new CacheProperties();
$cache->addProperty($start);

View File

@@ -370,6 +370,7 @@ trait PeriodOverview
$first = $this->journalRepos->firstNull();
$start = null === $first ? new Carbon() : $first->date;
$end = clone $theDate;
$end = app('navigation')->endOfPeriod($end, $range);
app('log')->debug(sprintf('Start for getNoCategoryPeriodOverview() is %s', $start->format('Y-m-d')));
app('log')->debug(sprintf('End for getNoCategoryPeriodOverview() is %s', $end->format('Y-m-d')));

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Support\Models;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountBalance;
use FireflyIII\Models\Transaction;
@@ -117,16 +118,34 @@ class AccountBalanceCalculator
$foreignCurrency = (int) $row->foreign_currency_id;
$sumAmount = (string) $row->sum_amount;
$sumForeignAmount = (string) $row->sum_foreign_amount;
$sumAmount = '' === $sumAmount ? '0' : $sumAmount;
$sumForeignAmount = '' === $sumForeignAmount ? '0' : $sumForeignAmount;
// first create for normal currency:
$entry = $this->getAccountBalanceByAccount($account, $transactionCurrency);
$entry->balance = bcadd((string) $entry->balance, $sumAmount);
try {
$entry->balance = bcadd((string) $entry->balance, $sumAmount);
} catch (\ValueError $e) {
$message = sprintf('[a] Could not add "%s" to "%s": %s', $entry->balance, $sumAmount, $e->getMessage());
Log::error($message);
throw new FireflyException($message, 0, $e);
}
$entry->save();
// then do foreign amount, if present:
if ($foreignCurrency > 0) {
$entry = $this->getAccountBalanceByAccount($account, $foreignCurrency);
$entry->balance = bcadd((string) $entry->balance, $sumForeignAmount);
$entry = $this->getAccountBalanceByAccount($account, $foreignCurrency);
try {
$entry->balance = bcadd((string) $entry->balance, $sumForeignAmount);
} catch (\ValueError $e) {
$message = sprintf('[b] Could not add "%s" to "%s": %s', $entry->balance, $sumForeignAmount, $e->getMessage());
Log::error($message);
throw new FireflyException($message, 0, $e);
}
$entry->save();
}
}

View File

@@ -186,7 +186,7 @@ class General extends AbstractExtension
$converter = new GithubFlavoredMarkdownConverter(
[
'allow_unsafe_links' => false,
'max_nesting_level' => 3,
'max_nesting_level' => 5,
'html_input' => 'escape',
]
);

View File

@@ -53,7 +53,7 @@ class AttachmentTransformer extends AbstractTransformer
'created_at' => $attachment->created_at->toAtomString(),
'updated_at' => $attachment->updated_at->toAtomString(),
'attachable_id' => (string)$attachment->attachable_id,
'attachable_type' => str_replace('FireflyIII\\Models\\', '', $attachment->attachable_type),
'attachable_type' => str_replace('FireflyIII\Models\\', '', $attachment->attachable_type),
'md5' => $attachment->md5,
'filename' => $attachment->filename,
'download_url' => route('api.v1.attachments.download', [$attachment->id]),

View File

@@ -106,7 +106,13 @@ trait GroupValidation
'source_id', 'source_name', 'source_number', 'source_iban',
'destination_id', 'destination_name', 'destination_number', 'destination_iban',
];
// stop protesting when reconciliation is set to FALSE.
foreach ($data['transactions'] as $index => $row) {
if (false === ($row['reconciled'] ?? false)) {
continue;
}
foreach ($forbidden as $key) {
if (array_key_exists($key, $row)) {
$validator->errors()->add(

View File

@@ -3,6 +3,50 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## 6.1.18 - 2024-06-19
### Fixed
- [Issue 8978](https://github.com/firefly-iii/firefly-iii/issues/8978) (Error! Internal Firefly III Exception: bcadd(): Argument #2 ($num2) is not well-formed) reported by @el-rhazi
- [Issue 8977](https://github.com/firefly-iii/firefly-iii/issues/8977) (Data Importer: "500 Server Error" with Firefly III v6.1.17) reported by @qtdzz
### Security
- [CVE-2024-37893](https://www.cve.org/CVERecord?id=CVE-2024-37893)
## 6.1.17 - 2024-06-16
### Added
- New routine that calculates account balances, first start could take a while.
### Removed
- Removed auto-generated language files.
### Fixed
- [Issue 8907](https://github.com/firefly-iii/firefly-iii/issues/8907) (Error when adding initial balance: bcadd(): Argument #2 ($num2) must be of type string, int given) reported by @wnklmnn
- [Issue 8911](https://github.com/firefly-iii/firefly-iii/issues/8911) (Docker container startup very slow) reported by @daften
- [PR 8929](https://github.com/firefly-iii/firefly-iii/pull/8929) (icon title chgd from Deposit to Transfer) reported by @stevewasiura
- [PR 8930](https://github.com/firefly-iii/firefly-iii/pull/8930) (icon title chgd from Deposit to Transfer) reported by @stevewasiura
- [PR 8951](https://github.com/firefly-iii/firefly-iii/pull/8951) (add icon for delete action) reported by @stevewasiura
- [PR 8957](https://github.com/firefly-iii/firefly-iii/pull/8957) (Remove nesting level for markdown) reported by @JeroenED
- [Issue 8958](https://github.com/firefly-iii/firefly-iii/issues/8958) (Weird line appears above the UI when clicking on matching transactions for a rule) reported by @avee87
- [Issue 8893](https://github.com/firefly-iii/firefly-iii/issues/8893) (API: `reconciled: false` does not have precedence) reported by @dreautall
- [Issue 8954](https://github.com/firefly-iii/firefly-iii/issues/8954) (Wrong calculation of transaction without category) reported by @anarion80
- [Issue 8927](https://github.com/firefly-iii/firefly-iii/issues/8927) (Converting deposit to transfer can set incorrect transaction currency) reported by @avee87
- Various issues in release train.
- There is a confirmation again before you delete data using the page in your profile
### Security
- Two (undisclosed) MFA bypass errors, reported by @Skelmis. Disclosure will follow in a few weeks.
### API
- Expand v2 chart API
## 6.1.16 - 2024-05-20
### Added

737
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -117,7 +117,7 @@ return [
'expression_engine' => false,
// see cer.php for exchange rates feature flag.
],
'version' => 'develop/2024-05-25',
'version' => 'develop/2024-07-01',
'api_version' => '2.1.0',
'db_version' => 24,

View File

@@ -49,10 +49,12 @@ class AccountTypeSeeder extends Seeder
AccountType::LIABILITY_CREDIT,
];
foreach ($types as $type) {
try {
AccountType::create(['type' => $type]);
} catch (\PDOException $e) {
// @ignoreException
if (null === AccountType::where('type', $type)->first()) {
try {
AccountType::create(['type' => $type]);
} catch (\PDOException $e) {
// @ignoreException
}
}
}
}

View File

@@ -36,7 +36,7 @@ class ConfigSeeder extends Seeder
*/
public function run(): void
{
$entry = Configuration::where('name', 'db_version')->first();
$entry = Configuration::where('name', 'db_version')->first();
if (null === $entry) {
Configuration::create(
[
@@ -44,11 +44,11 @@ class ConfigSeeder extends Seeder
'data' => 1,
]
);
return;
}
if (null !== $entry) {
$version = (int)config('firefly.db_version');
$entry->data = $version;
$entry->save();
}
$version = (int) config('firefly.db_version');
$entry->data = $version;
$entry->save();
}
}

View File

@@ -60,10 +60,12 @@ class LinkTypeSeeder extends Seeder
],
];
foreach ($types as $type) {
try {
LinkType::create($type);
} catch (\PDOException $e) {
// @ignoreException
if (null === LinkType::where('name', $type['name'])->first()) {
try {
LinkType::create($type);
} catch (\PDOException $e) {
// @ignoreException
}
}
}
}

View File

@@ -46,10 +46,12 @@ class PermissionSeeder extends Seeder
],
];
foreach ($roles as $role) {
try {
Role::create($role);
} catch (\PDOException $e) {
// @ignoreException
if (null === Role::where('name', $role['name'])->first()) {
try {
Role::create($role);
} catch (\PDOException $e) {
// @ignoreException
}
}
}
}

View File

@@ -42,6 +42,7 @@ class TransactionCurrencySeeder extends Seeder
$currencies[] = ['code' => 'PLN', 'name' => 'Polish złoty', 'symbol' => 'zł', 'decimal_places' => 2];
$currencies[] = ['code' => 'TRY', 'name' => 'Turkish lira', 'symbol' => '₺', 'decimal_places' => 2];
$currencies[] = ['code' => 'DKK', 'name' => 'Dansk krone', 'symbol' => 'kr.', 'decimal_places' => 2];
$currencies[] = ['code' => 'RON', 'name' => 'Romanian leu', 'symbol' => 'lei', 'decimal_places' => 2];
// american currencies
$currencies[] = ['code' => 'USD', 'name' => 'US Dollar', 'symbol' => '$', 'decimal_places' => 2];
@@ -71,10 +72,12 @@ class TransactionCurrencySeeder extends Seeder
$currencies[] = ['code' => 'HRK', 'name' => 'Croatian kuna', 'symbol' => 'kn', 'decimal_places' => 2];
foreach ($currencies as $currency) {
try {
TransactionCurrency::create($currency);
} catch (\PDOException $e) {
// @ignoreException
if (null === TransactionCurrency::where('code', $currency['code'])->first()) {
try {
TransactionCurrency::create($currency);
} catch (\PDOException $e) {
// @ignoreException
}
}
}
}

View File

@@ -44,10 +44,12 @@ class TransactionTypeSeeder extends Seeder
];
foreach ($types as $type) {
try {
TransactionType::create(['type' => $type]);
} catch (\PDOException $e) {
// @ignoreException
if (null === TransactionType::where('type', $type)->first()) {
try {
TransactionType::create(['type' => $type]);
} catch (\PDOException $e) {
// @ignoreException
}
}
}
}

View File

@@ -45,10 +45,12 @@ class UserRoleSeeder extends Seeder
/** @var string $role */
foreach ($roles as $role) {
try {
UserRole::create(['title' => $role]);
} catch (\PDOException $e) {
// @ignoreException
if (null === UserRole::where('title', $role)->first()) {
try {
UserRole::create(['title' => $role]);
} catch (\PDOException $e) {
// @ignoreException
}
}
}
}

1428
package-lock.json generated

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,444 @@
{
"af_NA": "Afrikaans (Namibia)",
"af_ZA": "Afrikaans (South Africa)",
"ak_GH": "Akan (Ghana)",
"sq_AL": "Albanian (Albania)",
"sq_XK": "Albanian (Kosovo)",
"sq_MK": "Albanian (Macedonia)",
"am_ET": "Amharic (Ethiopia)",
"ar_DZ": "Arabic (Algeria)",
"ar_BH": "Arabic (Bahrain)",
"ar_TD": "Arabic (Chad)",
"ar_KM": "Arabic (Comoros)",
"ar_DJ": "Arabic (Djibouti)",
"ar_EG": "Arabic (Egypt)",
"ar_ER": "Arabic (Eritrea)",
"ar_IQ": "Arabic (Iraq)",
"ar_IL": "Arabic (Israel)",
"ar_JO": "Arabic (Jordan)",
"ar_KW": "Arabic (Kuwait)",
"ar_LB": "Arabic (Lebanon)",
"ar_LY": "Arabic (Libya)",
"ar_MR": "Arabic (Mauritania)",
"ar_MA": "Arabic (Morocco)",
"ar_OM": "Arabic (Oman)",
"ar_PS": "Arabic (Palestinian Territories)",
"ar_QA": "Arabic (Qatar)",
"ar_SA": "Arabic (Saudi Arabia)",
"ar_SO": "Arabic (Somalia)",
"ar_SS": "Arabic (South Sudan)",
"ar_SD": "Arabic (Sudan)",
"ar_SY": "Arabic (Syria)",
"ar_TN": "Arabic (Tunisia)",
"ar_AE": "Arabic (United Arab Emirates)",
"ar_EH": "Arabic (Western Sahara)",
"ar_YE": "Arabic (Yemen)",
"hy_AM": "Armenian (Armenia)",
"as_IN": "Assamese (India)",
"az_AZ": "Azerbaijani (Azerbaijan)",
"az_Cyrl_AZ": "Azerbaijani (Cyrillic, Azerbaijan)",
"az_Cyrl": "Azerbaijani (Cyrillic)",
"az_Latn_AZ": "Azerbaijani (Latin, Azerbaijan)",
"az_Latn": "Azerbaijani (Latin)",
"bm_Latn_ML": "Bambara (Latin, Mali)",
"bm_Latn": "Bambara (Latin)",
"eu_ES": "Basque (Spain)",
"be_BY": "Belarusian (Belarus)",
"bn_BD": "Bengali (Bangladesh)",
"bn_IN": "Bengali (India)",
"bs_BA": "Bosnian (Bosnia & Herzegovina)",
"bs_Cyrl_BA": "Bosnian (Cyrillic, Bosnia & Herzegovina)",
"bs_Cyrl": "Bosnian (Cyrillic)",
"bs_Latn_BA": "Bosnian (Latin, Bosnia & Herzegovina)",
"bs_Latn": "Bosnian (Latin)",
"br_FR": "Breton (France)",
"bg_BG": "Bulgarian (Bulgaria)",
"my_MM": "Burmese (Myanmar (Burma))",
"ca_AD": "Catalan (Andorra)",
"ca_FR": "Catalan (France)",
"ca_IT": "Catalan (Italy)",
"ca_ES": "Catalan (Spain)",
"zh_CN": "Chinese (China)",
"zh_HK": "Chinese (Hong Kong SAR China)",
"zh_MO": "Chinese (Macau SAR China)",
"zh_Hans_CN": "Chinese (Simplified, China)",
"zh_Hans_HK": "Chinese (Simplified, Hong Kong SAR China)",
"zh_Hans_MO": "Chinese (Simplified, Macau SAR China)",
"zh_Hans_SG": "Chinese (Simplified, Singapore)",
"zh_Hans": "Chinese (Simplified)",
"zh_SG": "Chinese (Singapore)",
"zh_TW": "Chinese (Taiwan)",
"zh_Hant_HK": "Chinese (Traditional, Hong Kong SAR China)",
"zh_Hant_MO": "Chinese (Traditional, Macau SAR China)",
"zh_Hant_TW": "Chinese (Traditional, Taiwan)",
"zh_Hant": "Chinese (Traditional)",
"kw_GB": "Cornish (United Kingdom)",
"hr_BA": "Croatian (Bosnia & Herzegovina)",
"hr_HR": "Croatian (Croatia)",
"cs_CZ": "Czech (Czech Republic)",
"da_DK": "Danish (Denmark)",
"da_GL": "Danish (Greenland)",
"nl_AW": "Dutch (Aruba)",
"nl_BE": "Dutch (Belgium)",
"nl_BQ": "Dutch (Caribbean Netherlands)",
"nl_CW": "Dutch (Cura\u00e7ao)",
"nl_NL": "Dutch (Netherlands)",
"nl_SX": "Dutch (Sint Maarten)",
"nl_SR": "Dutch (Suriname)",
"dz_BT": "Dzongkha (Bhutan)",
"en_AS": "English (American Samoa)",
"en_AI": "English (Anguilla)",
"en_AG": "English (Antigua & Barbuda)",
"en_AU": "English (Australia)",
"en_BS": "English (Bahamas)",
"en_BB": "English (Barbados)",
"en_BE": "English (Belgium)",
"en_BZ": "English (Belize)",
"en_BM": "English (Bermuda)",
"en_BW": "English (Botswana)",
"en_IO": "English (British Indian Ocean Territory)",
"en_VG": "English (British Virgin Islands)",
"en_CM": "English (Cameroon)",
"en_CA": "English (Canada)",
"en_KY": "English (Cayman Islands)",
"en_CX": "English (Christmas Island)",
"en_CC": "English (Cocos (Keeling) Islands)",
"en_CK": "English (Cook Islands)",
"en_DG": "English (Diego Garcia)",
"en_DM": "English (Dominica)",
"en_ER": "English (Eritrea)",
"en_FK": "English (Falkland Islands)",
"en_FJ": "English (Fiji)",
"en_GM": "English (Gambia)",
"en_GH": "English (Ghana)",
"en_GI": "English (Gibraltar)",
"en_GD": "English (Grenada)",
"en_GU": "English (Guam)",
"en_GG": "English (Guernsey)",
"en_GY": "English (Guyana)",
"en_HK": "English (Hong Kong SAR China)",
"en_IN": "English (India)",
"en_IE": "English (Ireland)",
"en_IM": "English (Isle of Man)",
"en_JM": "English (Jamaica)",
"en_JE": "English (Jersey)",
"en_KE": "English (Kenya)",
"en_KI": "English (Kiribati)",
"en_LS": "English (Lesotho)",
"en_LR": "English (Liberia)",
"en_MO": "English (Macau SAR China)",
"en_MG": "English (Madagascar)",
"en_MW": "English (Malawi)",
"en_MY": "English (Malaysia)",
"en_MT": "English (Malta)",
"en_MH": "English (Marshall Islands)",
"en_MU": "English (Mauritius)",
"en_FM": "English (Micronesia)",
"en_MS": "English (Montserrat)",
"en_NA": "English (Namibia)",
"en_NR": "English (Nauru)",
"en_NZ": "English (New Zealand)",
"en_NG": "English (Nigeria)",
"en_NU": "English (Niue)",
"en_NF": "English (Norfolk Island)",
"en_MP": "English (Northern Mariana Islands)",
"en_PK": "English (Pakistan)",
"en_PW": "English (Palau)",
"en_PG": "English (Papua New Guinea)",
"en_PH": "English (Philippines)",
"en_PN": "English (Pitcairn Islands)",
"en_PR": "English (Puerto Rico)",
"en_RW": "English (Rwanda)",
"en_WS": "English (Samoa)",
"en_SC": "English (Seychelles)",
"en_SL": "English (Sierra Leone)",
"en_SG": "English (Singapore)",
"en_SX": "English (Sint Maarten)",
"en_SB": "English (Solomon Islands)",
"en_ZA": "English (South Africa)",
"en_SS": "English (South Sudan)",
"en_SH": "English (St. Helena)",
"en_KN": "English (St. Kitts & Nevis)",
"en_LC": "English (St. Lucia)",
"en_VC": "English (St. Vincent & Grenadines)",
"en_SD": "English (Sudan)",
"en_SZ": "English (Swaziland)",
"en_TZ": "English (Tanzania)",
"en_TK": "English (Tokelau)",
"en_TO": "English (Tonga)",
"en_TT": "English (Trinidad & Tobago)",
"en_TC": "English (Turks & Caicos Islands)",
"en_TV": "English (Tuvalu)",
"en_UM": "English (U.S. Outlying Islands)",
"en_VI": "English (U.S. Virgin Islands)",
"en_UG": "English (Uganda)",
"en_GB": "English (United Kingdom)",
"en_US": "English (United States)",
"en_VU": "English (Vanuatu)",
"en_ZM": "English (Zambia)",
"en_ZW": "English (Zimbabwe)",
"et_EE": "Estonian (Estonia)",
"ee_GH": "Ewe (Ghana)",
"ee_TG": "Ewe (Togo)",
"fo_FO": "Faroese (Faroe Islands)",
"fi_FI": "Finnish (Finland)",
"fr_DZ": "French (Algeria)",
"fr_BE": "French (Belgium)",
"fr_BJ": "French (Benin)",
"fr_BF": "French (Burkina Faso)",
"fr_BI": "French (Burundi)",
"fr_CM": "French (Cameroon)",
"fr_CA": "French (Canada)",
"fr_CF": "French (Central African Republic)",
"fr_TD": "French (Chad)",
"fr_KM": "French (Comoros)",
"fr_CG": "French (Congo - Brazzaville)",
"fr_CD": "French (Congo - Kinshasa)",
"fr_CI": "French (C\u00f4te d\u2019Ivoire)",
"fr_DJ": "French (Djibouti)",
"fr_GQ": "French (Equatorial Guinea)",
"fr_FR": "French (France)",
"fr_GF": "French (French Guiana)",
"fr_PF": "French (French Polynesia)",
"fr_GA": "French (Gabon)",
"fr_GP": "French (Guadeloupe)",
"fr_GN": "French (Guinea)",
"fr_HT": "French (Haiti)",
"fr_LU": "French (Luxembourg)",
"fr_MG": "French (Madagascar)",
"fr_ML": "French (Mali)",
"fr_MQ": "French (Martinique)",
"fr_MR": "French (Mauritania)",
"fr_MU": "French (Mauritius)",
"fr_YT": "French (Mayotte)",
"fr_MC": "French (Monaco)",
"fr_MA": "French (Morocco)",
"fr_NC": "French (New Caledonia)",
"fr_NE": "French (Niger)",
"fr_RE": "French (R\u00e9union)",
"fr_RW": "French (Rwanda)",
"fr_SN": "French (Senegal)",
"fr_SC": "French (Seychelles)",
"fr_BL": "French (St. Barth\u00e9lemy)",
"fr_MF": "French (St. Martin)",
"fr_PM": "French (St. Pierre & Miquelon)",
"fr_CH": "French (Switzerland)",
"fr_SY": "French (Syria)",
"fr_TG": "French (Togo)",
"fr_TN": "French (Tunisia)",
"fr_VU": "French (Vanuatu)",
"fr_WF": "French (Wallis & Futuna)",
"ff_CM": "Fulah (Cameroon)",
"ff_GN": "Fulah (Guinea)",
"ff_MR": "Fulah (Mauritania)",
"ff_SN": "Fulah (Senegal)",
"gl_ES": "Galician (Spain)",
"lg_UG": "Ganda (Uganda)",
"ka_GE": "Georgian (Georgia)",
"de_AT": "German (Austria)",
"de_BE": "German (Belgium)",
"de_DE": "German (Germany)",
"de_LI": "German (Liechtenstein)",
"de_LU": "German (Luxembourg)",
"de_CH": "German (Switzerland)",
"el_CY": "Greek (Cyprus)",
"el_GR": "Greek (Greece)",
"gu_IN": "Gujarati (India)",
"ha_GH": "Hausa (Ghana)",
"ha_Latn_GH": "Hausa (Latin, Ghana)",
"ha_Latn_NE": "Hausa (Latin, Niger)",
"ha_Latn_NG": "Hausa (Latin, Nigeria)",
"ha_Latn": "Hausa (Latin)",
"ha_NE": "Hausa (Niger)",
"ha_NG": "Hausa (Nigeria)",
"he_IL": "Hebrew (Israel)",
"hi_IN": "Hindi (India)",
"hu_HU": "Hungarian (Hungary)",
"is_IS": "Icelandic (Iceland)",
"ig_NG": "Igbo (Nigeria)",
"id_ID": "Indonesian (Indonesia)",
"ga_IE": "Irish (Ireland)",
"it_IT": "Italian (Italy)",
"it_SM": "Italian (San Marino)",
"it_CH": "Italian (Switzerland)",
"ja_JP": "Japanese (Japan)",
"kl_GL": "Kalaallisut (Greenland)",
"kn_IN": "Kannada (India)",
"ks_Arab_IN": "Kashmiri (Arabic, India)",
"ks_Arab": "Kashmiri (Arabic)",
"ks_IN": "Kashmiri (India)",
"kk_Cyrl_KZ": "Kazakh (Cyrillic, Kazakhstan)",
"kk_Cyrl": "Kazakh (Cyrillic)",
"kk_KZ": "Kazakh (Kazakhstan)",
"km_KH": "Khmer (Cambodia)",
"ki_KE": "Kikuyu (Kenya)",
"rw_RW": "Kinyarwanda (Rwanda)",
"ko_KP": "Korean (North Korea)",
"ko_KR": "Korean (South Korea)",
"ky_Cyrl_KG": "Kyrgyz (Cyrillic, Kyrgyzstan)",
"ky_Cyrl": "Kyrgyz (Cyrillic)",
"ky_KG": "Kyrgyz (Kyrgyzstan)",
"lo_LA": "Lao (Laos)",
"lv_LV": "Latvian (Latvia)",
"ln_AO": "Lingala (Angola)",
"ln_CF": "Lingala (Central African Republic)",
"ln_CG": "Lingala (Congo - Brazzaville)",
"ln_CD": "Lingala (Congo - Kinshasa)",
"lt_LT": "Lithuanian (Lithuania)",
"lu_CD": "Luba-Katanga (Congo - Kinshasa)",
"lb_LU": "Luxembourgish (Luxembourg)",
"mk_MK": "Macedonian (Macedonia)",
"mg_MG": "Malagasy (Madagascar)",
"ms_BN": "Malay (Brunei)",
"ms_Latn_BN": "Malay (Latin, Brunei)",
"ms_Latn_MY": "Malay (Latin, Malaysia)",
"ms_Latn_SG": "Malay (Latin, Singapore)",
"ms_Latn": "Malay (Latin)",
"ms_MY": "Malay (Malaysia)",
"ms_SG": "Malay (Singapore)",
"ml_IN": "Malayalam (India)",
"mt_MT": "Maltese (Malta)",
"gv_IM": "Manx (Isle of Man)",
"mr_IN": "Marathi (India)",
"mn_Cyrl_MN": "Mongolian (Cyrillic, Mongolia)",
"mn_Cyrl": "Mongolian (Cyrillic)",
"mn_MN": "Mongolian (Mongolia)",
"ne_IN": "Nepali (India)",
"ne_NP": "Nepali (Nepal)",
"nd_ZW": "North Ndebele (Zimbabwe)",
"se_FI": "Northern Sami (Finland)",
"se_NO": "Northern Sami (Norway)",
"se_SE": "Northern Sami (Sweden)",
"no_NO": "Norwegian (Norway)",
"nb_NO": "Norwegian Bokm\u00e5l (Norway)",
"nb_SJ": "Norwegian Bokm\u00e5l (Svalbard & Jan Mayen)",
"nn_NO": "Norwegian Nynorsk (Norway)",
"or_IN": "Oriya (India)",
"om_ET": "Oromo (Ethiopia)",
"om_KE": "Oromo (Kenya)",
"os_GE": "Ossetic (Georgia)",
"os_RU": "Ossetic (Russia)",
"ps_AF": "Pashto (Afghanistan)",
"fa_AF": "Persian (Afghanistan)",
"fa_IR": "Persian (Iran)",
"pl_PL": "Polish (Poland)",
"pt_AO": "Portuguese (Angola)",
"pt_BR": "Portuguese (Brazil)",
"pt_CV": "Portuguese (Cape Verde)",
"pt_GW": "Portuguese (Guinea-Bissau)",
"pt_MO": "Portuguese (Macau SAR China)",
"pt_MZ": "Portuguese (Mozambique)",
"pt_PT": "Portuguese (Portugal)",
"pt_ST": "Portuguese (S\u00e3o Tom\u00e9 & Pr\u00edncipe)",
"pt_TL": "Portuguese (Timor-Leste)",
"pa_Arab_PK": "Punjabi (Arabic, Pakistan)",
"pa_Arab": "Punjabi (Arabic)",
"pa_Guru_IN": "Punjabi (Gurmukhi, India)",
"pa_Guru": "Punjabi (Gurmukhi)",
"pa_IN": "Punjabi (India)",
"pa_PK": "Punjabi (Pakistan)",
"qu_BO": "Quechua (Bolivia)",
"qu_EC": "Quechua (Ecuador)",
"qu_PE": "Quechua (Peru)",
"ro_MD": "Romanian (Moldova)",
"ro_RO": "Romanian (Romania)",
"rm_CH": "Romansh (Switzerland)",
"rn_BI": "Rundi (Burundi)",
"ru_BY": "Russian (Belarus)",
"ru_KZ": "Russian (Kazakhstan)",
"ru_KG": "Russian (Kyrgyzstan)",
"ru_MD": "Russian (Moldova)",
"ru_RU": "Russian (Russia)",
"ru_UA": "Russian (Ukraine)",
"sg_CF": "Sango (Central African Republic)",
"gd_GB": "Scottish Gaelic (United Kingdom)",
"sr_BA": "Serbian (Bosnia & Herzegovina)",
"sr_Cyrl_BA": "Serbian (Cyrillic, Bosnia & Herzegovina)",
"sr_Cyrl_XK": "Serbian (Cyrillic, Kosovo)",
"sr_Cyrl_ME": "Serbian (Cyrillic, Montenegro)",
"sr_Cyrl_RS": "Serbian (Cyrillic, Serbia)",
"sr_Cyrl": "Serbian (Cyrillic)",
"sr_XK": "Serbian (Kosovo)",
"sr_Latn_BA": "Serbian (Latin, Bosnia & Herzegovina)",
"sr_Latn_XK": "Serbian (Latin, Kosovo)",
"sr_Latn_ME": "Serbian (Latin, Montenegro)",
"sr_Latn_RS": "Serbian (Latin, Serbia)",
"sr_Latn": "Serbian (Latin)",
"sr_ME": "Serbian (Montenegro)",
"sr_RS": "Serbian (Serbia)",
"sh_BA": "Serbo-Croatian (Bosnia & Herzegovina)",
"sn_ZW": "Shona (Zimbabwe)",
"ii_CN": "Sichuan Yi (China)",
"si_LK": "Sinhala (Sri Lanka)",
"sk_SK": "Slovak (Slovakia)",
"sl_SI": "Slovenian (Slovenia)",
"so_DJ": "Somali (Djibouti)",
"so_ET": "Somali (Ethiopia)",
"so_KE": "Somali (Kenya)",
"so_SO": "Somali (Somalia)",
"es_AR": "Spanish (Argentina)",
"es_BO": "Spanish (Bolivia)",
"es_IC": "Spanish (Canary Islands)",
"es_EA": "Spanish (Ceuta & Melilla)",
"es_CL": "Spanish (Chile)",
"es_CO": "Spanish (Colombia)",
"es_CR": "Spanish (Costa Rica)",
"es_CU": "Spanish (Cuba)",
"es_DO": "Spanish (Dominican Republic)",
"es_EC": "Spanish (Ecuador)",
"es_SV": "Spanish (El Salvador)",
"es_GQ": "Spanish (Equatorial Guinea)",
"es_GT": "Spanish (Guatemala)",
"es_HN": "Spanish (Honduras)",
"es_MX": "Spanish (Mexico)",
"es_NI": "Spanish (Nicaragua)",
"es_PA": "Spanish (Panama)",
"es_PY": "Spanish (Paraguay)",
"es_PE": "Spanish (Peru)",
"es_PH": "Spanish (Philippines)",
"es_PR": "Spanish (Puerto Rico)",
"es_ES": "Spanish (Spain)",
"es_US": "Spanish (United States)",
"es_UY": "Spanish (Uruguay)",
"es_VE": "Spanish (Venezuela)",
"sw_KE": "Swahili (Kenya)",
"sw_TZ": "Swahili (Tanzania)",
"sw_UG": "Swahili (Uganda)",
"sv_AX": "Swedish (\u00c5land Islands)",
"sv_FI": "Swedish (Finland)",
"sv_SE": "Swedish (Sweden)",
"tl_PH": "Tagalog (Philippines)",
"ta_IN": "Tamil (India)",
"ta_MY": "Tamil (Malaysia)",
"ta_SG": "Tamil (Singapore)",
"ta_LK": "Tamil (Sri Lanka)",
"te_IN": "Telugu (India)",
"th_TH": "Thai (Thailand)",
"bo_CN": "Tibetan (China)",
"bo_IN": "Tibetan (India)",
"ti_ER": "Tigrinya (Eritrea)",
"ti_ET": "Tigrinya (Ethiopia)",
"to_TO": "Tongan (Tonga)",
"tr_CY": "Turkish (Cyprus)",
"tr_TR": "Turkish (Turkey)",
"uk_UA": "Ukrainian (Ukraine)",
"ur_IN": "Urdu (India)",
"ur_PK": "Urdu (Pakistan)",
"ug_Arab_CN": "Uyghur (Arabic, China)",
"ug_Arab": "Uyghur (Arabic)",
"ug_CN": "Uyghur (China)",
"uz_AF": "Uzbek (Afghanistan)",
"uz_Arab_AF": "Uzbek (Arabic, Afghanistan)",
"uz_Arab": "Uzbek (Arabic)",
"uz_Cyrl_UZ": "Uzbek (Cyrillic, Uzbekistan)",
"uz_Cyrl": "Uzbek (Cyrillic)",
"uz_Latn_UZ": "Uzbek (Latin, Uzbekistan)",
"uz_Latn": "Uzbek (Latin)",
"uz_UZ": "Uzbek (Uzbekistan)",
"vi_VN": "Vietnamese (Vietnam)",
"cy_GB": "Welsh (United Kingdom)",
"fy_NL": "Western Frisian (Netherlands)",
"yo_BJ": "Yoruba (Benin)",
"yo_NG": "Yoruba (Nigeria)",
"zu_ZA": "Zulu (South Africa)"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -63,6 +63,8 @@
<div class="btn-group btn-group-xs">
<a href="{{ route('transactions.edit', [journal.transaction_group_id]) }}" class="btn btn-xs btn-default"><span
class="fa fa-fw fa-pencil"></span></a>
<a href="{{ route('transactions.delete', [journal.transaction_group_id]) }}" class="btn btn-danger"><span
class="fa fa-trash"></span></a>
</div>
</td>
@@ -78,7 +80,7 @@
{% endif %}
{% if journal.transaction_type_type == 'Transfer' %}
<span class="fa fa-exchange fa-fw" title="{{ trans('firefly.Deposit') }}"></span>
<span class="fa fa-exchange fa-fw" title="{{ trans('firefly.Transfer') }}"></span>
{% endif %}
{% if journal.transaction_type_type == 'Reconciliation' %}

View File

@@ -47,7 +47,7 @@
{% endif %}
{% if transaction.transaction_type_type == 'Transfer' %}
<span class="fa fa-exchange fa-fw" title="{{ trans('firefly.Deposit') }}"></span>
<span class="fa fa-exchange fa-fw" title="{{ trans('firefly.Transfer') }}"></span>
{% endif %}
{% if transaction.transaction_type_type == 'Reconciliation' %}

View File

@@ -615,7 +615,9 @@ Route::group(
Route::delete('{recurrence}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']);
Route::get('{recurrence}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']);
Route::post('trigger', ['uses' => 'RecurrenceController@trigger', 'as' => 'trigger']);
// controller does not exist:
// Route::post('trigger', ['uses' => 'RecurrenceController@trigger', 'as' => 'trigger']);
}
);

View File

@@ -25,6 +25,38 @@ if (!defined('DATEFORMAT')) {
define('DATEFORMAT', '(19|20)[0-9]{2}-?[0-9]{2}-?[0-9]{2}');
}
// laravel passport routes
Route::group(
[
'as' => 'passport.',
'prefix' => config('passport.path', 'oauth'),
'namespace' => '\Laravel\Passport\Http\Controllers',
],
function (): void {
// routes with no extra middleware
Route::post('/token', ['uses' => 'AccessTokenController@issueToken', 'as' => 'token', 'middleware' => 'throttle']);
Route::get('/authorize', ['uses' => 'AuthorizationController@authorize', 'as' => 'authorizations.authorize', 'middleware' => 'user-full-auth']);
// the rest
$guard = config('passport.guard', null);
Route::middleware(['web', $guard ? 'auth:'.$guard : 'auth'])->group(function (): void {
Route::post('/token/refresh', ['uses' => 'TransientTokenController@refresh', 'as' => 'token.refresh']);
Route::post('/authorize', ['uses' => 'ApproveAuthorizationController@approve', 'as' => 'authorizations.approve']);
Route::delete('/authorize', ['uses' => 'DenyAuthorizationController@deny', 'as' => 'authorizations.deny']);
Route::get('/tokens', ['uses' => 'AuthorizedAccessTokenController@forUser', 'as' => 'tokens.index']);
Route::delete('/tokens/{token_id}', ['uses' => 'AuthorizedAccessTokenController@destroy', 'as' => 'tokens.destroy']);
Route::get('/clients', ['uses' => 'ClientController@forUser', 'as' => 'clients.index']);
Route::post('/clients', ['uses' => 'ClientController@store', 'as' => 'clients.store']);
Route::put('/clients/{client_id}', ['uses' => 'ClientController@update', 'as' => 'clients.update']);
Route::delete('/clients/{client_id}', ['uses' => 'ClientController@destroy', 'as' => 'clients.destroy']);
Route::get('/scopes', ['uses' => 'ScopeController@all', 'as' => 'scopes.index']);
Route::get('/personal-access-tokens', ['uses' => 'PersonalAccessTokenController@forUser', 'as' => 'personal.tokens.index']);
Route::post('/personal-access-tokens', ['uses' => 'PersonalAccessTokenController@store', 'as' => 'personal.tokens.store']);
Route::delete('/personal-access-tokens/{token_id}', ['uses' => 'PersonalAccessTokenController@destroy', 'as' => 'personal.tokens.destroy']);
});
}
);
Route::group(
[
'namespace' => 'FireflyIII\Http\Controllers\System',
@@ -726,7 +758,7 @@ Route::group(
Route::get('frontpage/piggy-banks', ['uses' => 'Json\FrontpageController@piggyBanks', 'as' => 'fp.piggy-banks']);
// currency conversion:
Route::get('rate/{fromCurrencyCode}/{toCurrencyCode}/{date}', ['uses' => 'Json\ExchangeController@getRate', 'as' => 'rate']);
// Route::get('rate/{fromCurrencyCode}/{toCurrencyCode}/{date}', ['uses' => 'Json\ExchangeController@getRate', 'as' => 'rate']);
// intro things:
Route::post('intro/finished/{route}/{specificPage?}', ['uses' => 'Json\IntroController@postFinished', 'as' => 'intro.finished']);
@@ -1355,7 +1387,7 @@ Route::group(
Route::get('', ['uses' => 'UserGroup\IndexController@index', 'as' => 'index']);
Route::get('create', ['uses' => 'UserGroup\CreateController@create', 'as' => 'create']);
Route::get('edit/{userGroup}', ['uses' => 'UserGroup\EditController@edit', 'as' => 'edit']);
Route::get('show/{userGroup}', ['uses' => 'UserGroup\ShowController@show', 'as' => 'show']);
// Route::get('show/{userGroup}', ['uses' => 'UserGroup\ShowController@show', 'as' => 'show']);
// Route::post('rescan/{bill}', ['uses' => 'Bill\ShowController@rescan', 'as' => 'rescan']);
// Route::get('delete/{bill}', ['uses' => 'Bill\DeleteController@delete', 'as' => 'delete']);