mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-08-28 17:07:21 +00:00
Auto commit for release 'v6.1.17' on 2024-06-15
This commit is contained in:
18
.ci/php-cs-fixer/composer.lock
generated
18
.ci/php-cs-fixer/composer.lock
generated
@@ -802,28 +802,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 +866,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 +874,7 @@
|
||||
"type": "open_collective"
|
||||
}
|
||||
],
|
||||
"time": "2023-11-29T12:41:06+00:00"
|
||||
"time": "2024-06-13T14:18:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "react/event-loop",
|
||||
|
@@ -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');
|
||||
Cookie::queue(Cookie::make($cookieName, 'invalid-'.time()));
|
||||
\Cookie::queue(\Cookie::make($cookieName, 'invalid-'.time()));
|
||||
}
|
||||
$usernameField = $this->username();
|
||||
|
||||
|
@@ -86,16 +86,16 @@ class ConvertController extends Controller
|
||||
}
|
||||
|
||||
/** @var TransactionGroupTransformer $transformer */
|
||||
$transformer = app(TransactionGroupTransformer::class);
|
||||
$transformer = app(TransactionGroupTransformer::class);
|
||||
|
||||
/** @var TransactionJournal $first */
|
||||
$first = $group->transactionJournals()->first();
|
||||
$sourceType = $first->transactionType;
|
||||
$first = $group->transactionJournals()->first();
|
||||
$sourceType = $first->transactionType;
|
||||
|
||||
$groupTitle = $group->title ?? $first->description;
|
||||
$groupArray = $transformer->transformObject($group);
|
||||
$subTitle = (string) trans('firefly.convert_to_' . $destinationType->type, ['description' => $groupTitle]);
|
||||
$subTitleIcon = 'fa-exchange';
|
||||
$groupTitle = $group->title ?? $first->description;
|
||||
$groupArray = $transformer->transformObject($group);
|
||||
$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:
|
||||
$validDepositSources = $this->getValidDepositSources();
|
||||
@@ -104,13 +104,13 @@ class ConvertController extends Controller
|
||||
$assets = $this->getAssetAccounts();
|
||||
|
||||
// old input variables:
|
||||
$preFilled = [
|
||||
$preFilled = [
|
||||
'source_name' => old('source_name'),
|
||||
];
|
||||
|
||||
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]));
|
||||
}
|
||||
@@ -139,21 +139,22 @@ class ConvertController extends Controller
|
||||
// make repositories
|
||||
$liabilityTypes = [AccountType::MORTGAGE, AccountType::DEBT, AccountType::CREDITCARD, AccountType::LOAN];
|
||||
$accountList = $this->accountRepository
|
||||
->getActiveAccountsByType([AccountType::REVENUE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]);
|
||||
->getActiveAccountsByType([AccountType::REVENUE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE])
|
||||
;
|
||||
$grouped = [];
|
||||
|
||||
// group accounts:
|
||||
/** @var Account $account */
|
||||
foreach ($accountList as $account) {
|
||||
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
|
||||
$name = $account->name;
|
||||
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
|
||||
$name = $account->name;
|
||||
if ('' === $role) {
|
||||
$role = 'no_account_type';
|
||||
}
|
||||
|
||||
// maybe it's a liability thing:
|
||||
if (in_array($account->accountType->type, $liabilityTypes, true)) {
|
||||
$role = 'l_' . $account->accountType->type;
|
||||
$role = 'l_'.$account->accountType->type;
|
||||
}
|
||||
if (AccountType::CASH === $account->accountType->type) {
|
||||
$role = 'cash_account';
|
||||
@@ -163,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;
|
||||
}
|
||||
|
||||
@@ -182,15 +183,15 @@ class ConvertController extends Controller
|
||||
// group accounts:
|
||||
/** @var Account $account */
|
||||
foreach ($accountList as $account) {
|
||||
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
|
||||
$name = $account->name;
|
||||
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
|
||||
$name = $account->name;
|
||||
if ('' === $role) {
|
||||
$role = 'no_account_type';
|
||||
}
|
||||
|
||||
// maybe it's a liability thing:
|
||||
if (in_array($account->accountType->type, $liabilityTypes, true)) {
|
||||
$role = 'l_' . $account->accountType->type;
|
||||
$role = 'l_'.$account->accountType->type;
|
||||
}
|
||||
if (AccountType::CASH === $account->accountType->type) {
|
||||
$role = 'cash_account';
|
||||
@@ -200,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;
|
||||
}
|
||||
|
||||
@@ -222,9 +223,9 @@ class ConvertController extends Controller
|
||||
foreach ($accountList as $account) {
|
||||
$balance = app('steam')->balance($account, today());
|
||||
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
|
||||
$role = 'l_' . $account->accountType->type;
|
||||
$key = (string) trans('firefly.opt_group_' . $role);
|
||||
$grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')';
|
||||
$role = 'l_'.$account->accountType->type;
|
||||
$key = (string) trans('firefly.opt_group_'.$role);
|
||||
$grouped[$key][$account->id] = $account->name.' ('.app('amount')->formatAnything($currency, $balance, false).')';
|
||||
}
|
||||
|
||||
return $grouped;
|
||||
@@ -243,15 +244,15 @@ class ConvertController extends Controller
|
||||
// group accounts:
|
||||
/** @var Account $account */
|
||||
foreach ($accountList as $account) {
|
||||
$balance = app('steam')->balance($account, today());
|
||||
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
|
||||
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
|
||||
$balance = app('steam')->balance($account, today());
|
||||
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
|
||||
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
|
||||
if ('' === $role) {
|
||||
$role = 'no_account_type';
|
||||
}
|
||||
|
||||
$key = (string) trans('firefly.opt_group_' . $role);
|
||||
$grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')';
|
||||
$key = (string) trans('firefly.opt_group_'.$role);
|
||||
$grouped[$key][$account->id] = $account->name.' ('.app('amount')->formatAnything($currency, $balance, false).')';
|
||||
}
|
||||
|
||||
return $grouped;
|
||||
@@ -283,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]));
|
||||
@@ -295,14 +296,14 @@ class ConvertController extends Controller
|
||||
private function convertJournal(TransactionJournal $journal, TransactionType $transactionType, array $data): TransactionJournal
|
||||
{
|
||||
/** @var AccountValidator $validator */
|
||||
$validator = app(AccountValidator::class);
|
||||
$validator = app(AccountValidator::class);
|
||||
$validator->setUser(auth()->user());
|
||||
$validator->setTransactionType($transactionType->type);
|
||||
|
||||
$sourceId = $data['source_id'][$journal->id] ?? null;
|
||||
$sourceName = $data['source_name'][$journal->id] ?? null;
|
||||
$destinationId = $data['destination_id'][$journal->id] ?? null;
|
||||
$destinationName = $data['destination_name'][$journal->id] ?? null;
|
||||
$sourceId = $data['source_id'][$journal->id] ?? null;
|
||||
$sourceName = $data['source_name'][$journal->id] ?? null;
|
||||
$destinationId = $data['destination_id'][$journal->id] ?? null;
|
||||
$destinationName = $data['destination_name'][$journal->id] ?? null;
|
||||
|
||||
// double check it's not an empty string.
|
||||
$sourceId = '' === $sourceId || null === $sourceId ? null : (int) $sourceId;
|
||||
@@ -321,7 +322,7 @@ class ConvertController extends Controller
|
||||
|
||||
// TODO typeOverrule: the account validator may have another opinion on the transaction type.
|
||||
|
||||
$update = [
|
||||
$update = [
|
||||
'source_id' => $sourceId,
|
||||
'source_name' => $sourceName,
|
||||
'destination_id' => $destinationId,
|
||||
@@ -342,9 +343,8 @@ class ConvertController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** @var JournalUpdateService $service */
|
||||
$service = app(JournalUpdateService::class);
|
||||
$service = app(JournalUpdateService::class);
|
||||
$service->setTransactionJournal($journal);
|
||||
$service->setData($update);
|
||||
$service->update();
|
||||
|
@@ -370,7 +370,7 @@ trait PeriodOverview
|
||||
$first = $this->journalRepos->firstNull();
|
||||
$start = null === $first ? new Carbon() : $first->date;
|
||||
$end = clone $theDate;
|
||||
$end = app('navigation')->endOfPeriod($end, $range);
|
||||
$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')));
|
||||
|
20
changelog.md
20
changelog.md
@@ -15,16 +15,16 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
### Fixed
|
||||
|
||||
- #8907
|
||||
- #8911
|
||||
- #8929
|
||||
- #8930
|
||||
- #8951
|
||||
- #8957
|
||||
- #8958
|
||||
- #8893
|
||||
- #8954
|
||||
- #8927
|
||||
- [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
|
||||
|
||||
|
12
composer.lock
generated
12
composer.lock
generated
@@ -11568,16 +11568,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "10.5.20",
|
||||
"version": "10.5.21",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
|
||||
"reference": "ac837816fa52078f7a5e17ed774f256a72a51af6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
|
||||
"reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ac837816fa52078f7a5e17ed774f256a72a51af6",
|
||||
"reference": "ac837816fa52078f7a5e17ed774f256a72a51af6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -11649,7 +11649,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.21"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -11665,7 +11665,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-24T06:32:35+00:00"
|
||||
"time": "2024-06-15T09:13:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
|
@@ -117,7 +117,7 @@ return [
|
||||
'expression_engine' => false,
|
||||
// see cer.php for exchange rates feature flag.
|
||||
],
|
||||
'version' => 'develop/2024-06-13',
|
||||
'version' => '6.1.17',
|
||||
'api_version' => '2.1.0',
|
||||
'db_version' => 24,
|
||||
|
||||
|
268
package-lock.json
generated
268
package-lock.json
generated
@@ -1908,9 +1908,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
|
||||
"integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
|
||||
"integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -1924,9 +1924,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
|
||||
"integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
|
||||
"integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -1940,9 +1940,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1956,9 +1956,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1972,9 +1972,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1988,9 +1988,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2004,9 +2004,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2020,9 +2020,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2036,9 +2036,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
|
||||
"integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
|
||||
"integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -2052,9 +2052,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2068,9 +2068,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
|
||||
"integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
|
||||
"integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -2084,9 +2084,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
|
||||
"integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
|
||||
"integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
@@ -2100,9 +2100,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
|
||||
"integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
|
||||
"integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
@@ -2116,9 +2116,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
|
||||
"integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
|
||||
"integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -2132,9 +2132,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
|
||||
"integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
|
||||
"integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -2148,9 +2148,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
|
||||
"integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
|
||||
"integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -2164,9 +2164,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2180,9 +2180,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2196,9 +2196,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2212,9 +2212,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2228,9 +2228,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2244,9 +2244,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
|
||||
"integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
|
||||
"integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -2260,9 +2260,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2951,39 +2951,39 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
|
||||
"integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz",
|
||||
"integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/shared": "3.4.27",
|
||||
"@babel/parser": "^7.24.7",
|
||||
"@vue/shared": "3.4.29",
|
||||
"entities": "^4.5.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
|
||||
"integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz",
|
||||
"integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/compiler-core": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
|
||||
"integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz",
|
||||
"integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/compiler-core": "3.4.27",
|
||||
"@vue/compiler-dom": "3.4.27",
|
||||
"@vue/compiler-ssr": "3.4.27",
|
||||
"@vue/shared": "3.4.27",
|
||||
"@babel/parser": "^7.24.7",
|
||||
"@vue/compiler-core": "3.4.29",
|
||||
"@vue/compiler-dom": "3.4.29",
|
||||
"@vue/compiler-ssr": "3.4.29",
|
||||
"@vue/shared": "3.4.29",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.10",
|
||||
"postcss": "^8.4.38",
|
||||
@@ -2991,13 +2991,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
|
||||
"integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz",
|
||||
"integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/compiler-dom": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/component-compiler-utils": {
|
||||
@@ -3072,9 +3072,9 @@
|
||||
"integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz",
|
||||
"integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz",
|
||||
"integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@webassemblyjs/ast": {
|
||||
@@ -3291,9 +3291,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.11.3",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
||||
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
|
||||
"version": "8.12.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
|
||||
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
@@ -4028,9 +4028,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001632",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz",
|
||||
"integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==",
|
||||
"version": "1.0.30001634",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz",
|
||||
"integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -5103,9 +5103,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.801",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.801.tgz",
|
||||
"integrity": "sha512-PnlUz15ii38MZMD2/CEsAzyee8tv9vFntX5nhtd2/4tv4HqY7C5q2faUAjmkXS/UFpVooJ/5H6kayRKYWoGMXQ==",
|
||||
"version": "1.4.803",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz",
|
||||
"integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/elliptic": {
|
||||
@@ -5227,9 +5227,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
|
||||
"integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
|
||||
"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
@@ -5239,29 +5239,29 @@
|
||||
"node": ">=12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.20.2",
|
||||
"@esbuild/android-arm": "0.20.2",
|
||||
"@esbuild/android-arm64": "0.20.2",
|
||||
"@esbuild/android-x64": "0.20.2",
|
||||
"@esbuild/darwin-arm64": "0.20.2",
|
||||
"@esbuild/darwin-x64": "0.20.2",
|
||||
"@esbuild/freebsd-arm64": "0.20.2",
|
||||
"@esbuild/freebsd-x64": "0.20.2",
|
||||
"@esbuild/linux-arm": "0.20.2",
|
||||
"@esbuild/linux-arm64": "0.20.2",
|
||||
"@esbuild/linux-ia32": "0.20.2",
|
||||
"@esbuild/linux-loong64": "0.20.2",
|
||||
"@esbuild/linux-mips64el": "0.20.2",
|
||||
"@esbuild/linux-ppc64": "0.20.2",
|
||||
"@esbuild/linux-riscv64": "0.20.2",
|
||||
"@esbuild/linux-s390x": "0.20.2",
|
||||
"@esbuild/linux-x64": "0.20.2",
|
||||
"@esbuild/netbsd-x64": "0.20.2",
|
||||
"@esbuild/openbsd-x64": "0.20.2",
|
||||
"@esbuild/sunos-x64": "0.20.2",
|
||||
"@esbuild/win32-arm64": "0.20.2",
|
||||
"@esbuild/win32-ia32": "0.20.2",
|
||||
"@esbuild/win32-x64": "0.20.2"
|
||||
"@esbuild/aix-ppc64": "0.21.5",
|
||||
"@esbuild/android-arm": "0.21.5",
|
||||
"@esbuild/android-arm64": "0.21.5",
|
||||
"@esbuild/android-x64": "0.21.5",
|
||||
"@esbuild/darwin-arm64": "0.21.5",
|
||||
"@esbuild/darwin-x64": "0.21.5",
|
||||
"@esbuild/freebsd-arm64": "0.21.5",
|
||||
"@esbuild/freebsd-x64": "0.21.5",
|
||||
"@esbuild/linux-arm": "0.21.5",
|
||||
"@esbuild/linux-arm64": "0.21.5",
|
||||
"@esbuild/linux-ia32": "0.21.5",
|
||||
"@esbuild/linux-loong64": "0.21.5",
|
||||
"@esbuild/linux-mips64el": "0.21.5",
|
||||
"@esbuild/linux-ppc64": "0.21.5",
|
||||
"@esbuild/linux-riscv64": "0.21.5",
|
||||
"@esbuild/linux-s390x": "0.21.5",
|
||||
"@esbuild/linux-x64": "0.21.5",
|
||||
"@esbuild/netbsd-x64": "0.21.5",
|
||||
"@esbuild/openbsd-x64": "0.21.5",
|
||||
"@esbuild/sunos-x64": "0.21.5",
|
||||
"@esbuild/win32-arm64": "0.21.5",
|
||||
"@esbuild/win32-ia32": "0.21.5",
|
||||
"@esbuild/win32-x64": "0.21.5"
|
||||
}
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
@@ -10088,12 +10088,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.2.13",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz",
|
||||
"integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==",
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz",
|
||||
"integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.20.1",
|
||||
"esbuild": "^0.21.3",
|
||||
"postcss": "^8.4.38",
|
||||
"rollup": "^4.13.0"
|
||||
},
|
||||
|
@@ -617,7 +617,7 @@ Route::group(
|
||||
Route::get('{recurrence}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']);
|
||||
|
||||
// controller does not exist:
|
||||
//Route::post('trigger', ['uses' => 'RecurrenceController@trigger', 'as' => 'trigger']);
|
||||
// Route::post('trigger', ['uses' => 'RecurrenceController@trigger', 'as' => 'trigger']);
|
||||
}
|
||||
);
|
||||
|
||||
|
376
routes/web.php
376
routes/web.php
@@ -25,36 +25,36 @@ 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 () {
|
||||
// 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 () {
|
||||
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(
|
||||
[
|
||||
'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(
|
||||
@@ -79,7 +79,7 @@ Route::group(
|
||||
Route::group(
|
||||
['middleware' => 'binders-only', 'namespace' => 'FireflyIII\Http\Controllers\System'],
|
||||
static function (): void {
|
||||
Route::get('offline', static fn() => view('errors.offline'));
|
||||
Route::get('offline', static fn () => view('errors.offline'));
|
||||
Route::get('health', ['uses' => 'HealthcheckController@check', 'as' => 'healthcheck']);
|
||||
}
|
||||
);
|
||||
@@ -182,27 +182,32 @@ Route::group(
|
||||
// show
|
||||
Route::get('show/{account}/all', ['uses' => 'Account\ShowController@showAll', 'as' => 'show.all']);
|
||||
Route::get('show/{account}/{start_date?}/{end_date?}', ['uses' => 'Account\ShowController@show', 'as' => 'show'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// reconcile routes:
|
||||
Route::get('reconcile/{account}/index/{start_date?}/{end_date?}', ['uses' => 'Account\ReconcileController@reconcile', 'as' => 'reconcile'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::post('reconcile/{account}/submit/{start_date?}/{end_date?}', ['uses' => 'Account\ReconcileController@submit', 'as' => 'reconcile.submit'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// reconcile JSON routes
|
||||
Route::get('reconcile/{account}/overview/{start_date?}/{end_date?}', ['uses' => 'Json\ReconcileController@overview', 'as' => 'reconcile.overview'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'reconcile/{account}/transactions/{start_date?}/{end_date?}',
|
||||
['uses' => 'Json\ReconcileController@transactions', 'as' => 'reconcile.transactions']
|
||||
)
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -279,16 +284,18 @@ Route::group(
|
||||
Route::get('show/{budget}/{budgetLimit}', ['uses' => 'Budget\ShowController@showByBudgetLimit', 'as' => 'show.limit']);
|
||||
Route::get('list/no-budget/all', ['uses' => 'Budget\ShowController@noBudgetAll', 'as' => 'no-budget-all']);
|
||||
Route::get('list/no-budget/{start_date?}/{end_date?}', ['uses' => 'Budget\ShowController@noBudget', 'as' => 'no-budget'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// reorder budgets
|
||||
Route::post('reorder', ['uses' => 'Budget\IndexController@reorder', 'as' => 'reorder']);
|
||||
|
||||
// index
|
||||
Route::get('{start_date?}/{end_date?}', ['uses' => 'Budget\IndexController@index', 'as' => 'index'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -297,8 +304,9 @@ Route::group(
|
||||
['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers', 'prefix' => 'budget-limits', 'as' => 'budget-limits.'],
|
||||
static function (): void {
|
||||
Route::get('create/{budget}/{start_date}/{end_date}', ['uses' => 'Budget\BudgetLimitController@create', 'as' => 'create'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::post('store', ['uses' => 'Budget\BudgetLimitController@store', 'as' => 'store']);
|
||||
|
||||
Route::post('delete/{budgetLimit}', ['uses' => 'Budget\BudgetLimitController@delete', 'as' => 'delete']);
|
||||
@@ -329,14 +337,16 @@ Route::group(
|
||||
// show category:
|
||||
Route::get('show/{category}/all', ['uses' => 'Category\ShowController@showAll', 'as' => 'show.all']);
|
||||
Route::get('show/{category}/{start_date?}/{end_date?}', ['uses' => 'Category\ShowController@show', 'as' => 'show'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// no category controller:
|
||||
Route::get('list/no-category/all', ['uses' => 'Category\NoCategoryController@showAll', 'as' => 'no-category.all']);
|
||||
Route::get('list/no-category/{start_date?}/{end_date?}', ['uses' => 'Category\NoCategoryController@show', 'as' => 'no-category'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -363,25 +373,30 @@ Route::group(
|
||||
Route::get('expense', ['uses' => 'AccountController@expenseAccounts', 'as' => 'expense']);
|
||||
Route::get('revenue', ['uses' => 'AccountController@revenueAccounts', 'as' => 'revenue']);
|
||||
Route::get('report/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@report', 'as' => 'report'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('period/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@period', 'as' => 'period'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('income-category/{account}/all/all', ['uses' => 'AccountController@incomeCategoryAll', 'as' => 'income-category-all']);
|
||||
Route::get('expense-category/{account}/all/all', ['uses' => 'AccountController@expenseCategoryAll', 'as' => 'expense-category-all']);
|
||||
Route::get('expense-budget/{account}/all/all', ['uses' => 'AccountController@expenseBudgetAll', 'as' => 'expense-budget-all']);
|
||||
|
||||
Route::get('income-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@incomeCategory', 'as' => 'income-category'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expense-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseCategory', 'as' => 'expense-category'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expense-budget/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseBudget', 'as' => 'expense-budget'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -400,11 +415,13 @@ Route::group(
|
||||
static function (): void {
|
||||
Route::get('frontpage', ['uses' => 'BudgetController@frontpage', 'as' => 'frontpage']);
|
||||
Route::get('period/0/{currency}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@periodNoBudget', 'as' => 'period.no-budget'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('period/{budget}/{currency}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('budget/{budget}/{budgetLimit}', ['uses' => 'BudgetController@budgetLimit', 'as' => 'budget-limit']);
|
||||
Route::get('budget/{budget}', ['uses' => 'BudgetController@budget', 'as' => 'budget']);
|
||||
|
||||
@@ -418,23 +435,27 @@ Route::group(
|
||||
'category/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source-account/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@sourceAccountExpense', 'as' => 'source-account-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'destination-account/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@destinationAccountExpense', 'as' => 'destination-account-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('operations/{accountList}/{budget}/{start_date}/{end_date}', ['uses' => 'BudgetReportController@mainChart', 'as' => 'main']);
|
||||
}
|
||||
);
|
||||
@@ -451,51 +472,61 @@ Route::group(
|
||||
'report-period/0/{accountList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@reportPeriodNoCategory', 'as' => 'period.no-category']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('report-period/{category}/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@reportPeriod', 'as' => 'period'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'category/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/income/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@categoryIncome', 'as' => 'category-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@sourceExpense', 'as' => 'source-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/income/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@sourceIncome', 'as' => 'source-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@destinationExpense', 'as' => 'dest-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/income/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@destinationIncome', 'as' => 'dest-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('operations/{accountList}/{category}/{start_date}/{end_date}', ['uses' => 'CategoryReportController@mainChart', 'as' => 'main'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -504,52 +535,62 @@ Route::group(
|
||||
['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers\Chart', 'prefix' => 'chart/tag', 'as' => 'chart.tag.'],
|
||||
static function (): void {
|
||||
Route::get('tag/expense/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagReportController@tagExpense', 'as' => 'tag-expense'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('tag/income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagReportController@tagIncome', 'as' => 'tag-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/income/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@categoryIncome', 'as' => 'category-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@sourceExpense', 'as' => 'source-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/income/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@sourceIncome', 'as' => 'source-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@destinationExpense', 'as' => 'dest-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/income/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@destinationIncome', 'as' => 'dest-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('operations/{accountList}/{tag}/{start_date}/{end_date}', ['uses' => 'TagReportController@mainChart', 'as' => 'main'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -560,34 +601,40 @@ Route::group(
|
||||
Route::get('main/{accountList}/{account}/{start_date}/{end_date}', ['uses' => 'DoubleReportController@mainChart', 'as' => 'main'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'category/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/income/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@categoryIncome', 'as' => 'category-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'tag/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@tagExpense', 'as' => 'tag-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'tag/income/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@tagIncome', 'as' => 'tag-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -606,11 +653,13 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'ReportController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('net-worth/{accountList}/{start_date}/{end_date}/', ['uses' => 'ReportController@netWorth', 'as' => 'net-worth'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -621,18 +670,22 @@ Route::group(
|
||||
Route::get('categories/{objectType}/{start_date}/{end_date}', ['uses' => 'TransactionController@categories', 'as' => 'categories'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('budgets/{start_date}/{end_date}', ['uses' => 'TransactionController@budgets', 'as' => 'budgets'])->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'destinationAccounts/{objectType}/{start_date}/{end_date}',
|
||||
['uses' => 'TransactionController@destinationAccounts', 'as' => 'destinationAccounts']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('sourceAccounts/{objectType}/{start_date}/{end_date}', ['uses' => 'TransactionController@sourceAccounts', 'as' => 'sourceAccounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -690,7 +743,8 @@ Route::group(
|
||||
'budget/total-budgeted/{currency}/{start_date}/{end_date}',
|
||||
['uses' => 'Json\BudgetController@getBudgetInformation', 'as' => 'budget.total-budgeted']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
// boxes
|
||||
Route::get('box/balance', ['uses' => 'Json\BoxController@balance', 'as' => 'box.balance']);
|
||||
Route::get('box/available', ['uses' => 'Json\BoxController@available', 'as' => 'box.available']);
|
||||
@@ -704,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']);
|
||||
@@ -830,7 +884,8 @@ Route::group(
|
||||
Route::get('general/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@general', 'as' => 'general'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -841,7 +896,8 @@ Route::group(
|
||||
Route::get('overview/{accountList}/{start_date}/{end_date}', ['uses' => 'BillController@overview', 'as' => 'overview'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -853,32 +909,38 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'ops-asset/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleController@operationsPerAsset', 'as' => 'ops-asset']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'top-expenses/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleController@topExpenses', 'as' => 'top-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'avg-expenses/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleController@avgExpenses', 'as' => 'avg-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-income/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@topIncome', 'as' => 'top-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-income/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@avgIncome', 'as' => 'avg-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -894,15 +956,18 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('income/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@income', 'as' => 'income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expenses/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@expenses', 'as' => 'expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -919,49 +984,59 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('income/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@income', 'as' => 'income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expenses/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@expenses', 'as' => 'expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('accounts/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@accounts', 'as' => 'accounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('categories/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@categories', 'as' => 'categories'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'account-per-category/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@accountPerCategory', 'as' => 'account-per-category']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'top-expenses/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@topExpenses', 'as' => 'top-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'avg-expenses/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@avgExpenses', 'as' => 'avg-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-income/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@topIncome', 'as' => 'top-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-income/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@avgIncome', 'as' => 'avg-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -977,34 +1052,41 @@ Route::group(
|
||||
Route::get('accounts/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@accounts', 'as' => 'accounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('tags/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@tags', 'as' => 'tags'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'account-per-tag/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagController@accountPerTag', 'as' => 'account-per-tag']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-expenses/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@topExpenses', 'as' => 'top-expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-expenses/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@avgExpenses', 'as' => 'avg-expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@topIncome', 'as' => 'top-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@avgIncome', 'as' => 'avg-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1015,7 +1097,8 @@ Route::group(
|
||||
Route::get('general/{accountList}/{start_date}/{end_date}', ['uses' => 'BalanceController@general', 'as' => 'general'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1026,34 +1109,41 @@ Route::group(
|
||||
Route::get('general/{accountList}/{start_date}/{end_date}/', ['uses' => 'BudgetController@general', 'as' => 'general'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
// TODO is route still used?
|
||||
Route::get('period/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period'])->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('accounts/{accountList}/{budgetList}/{start_date}/{end_date}', ['uses' => 'BudgetController@accounts', 'as' => 'accounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('budgets/{accountList}/{budgetList}/{start_date}/{end_date}', ['uses' => 'BudgetController@budgets', 'as' => 'budgets'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'account-per-budget/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetController@accountPerBudget', 'as' => 'account-per-budget']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'top-expenses/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetController@topExpenses', 'as' => 'top-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'avg-expenses/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetController@avgExpenses', 'as' => 'avg-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1126,7 +1216,8 @@ Route::group(
|
||||
|
||||
Route::get('show/{tagOrId}/all', ['uses' => 'TagController@showAll', 'as' => 'show.all']);
|
||||
Route::get('show/{tagOrId}/{start_date?}/{end_date?}', ['uses' => 'TagController@show', 'as' => 'show'])->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('edit/{tag}', ['uses' => 'TagController@edit', 'as' => 'edit']);
|
||||
Route::get('delete/{tag}', ['uses' => 'TagController@delete', 'as' => 'delete']);
|
||||
@@ -1151,7 +1242,8 @@ Route::group(
|
||||
Route::get('{objectType}/{start_date?}/{end_date?}', ['uses' => 'Transaction\IndexController@index', 'as' => 'index'])->where(
|
||||
['objectType' => 'withdrawal|deposit|transfers|transfer|all']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// create group:
|
||||
Route::get('create/{objectType}', ['uses' => 'Transaction\CreateController@create', 'as' => 'create']);
|
||||
@@ -1295,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']);
|
||||
|
Reference in New Issue
Block a user