mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-26 21:43:53 +00:00
Compare commits
30 Commits
develop-20
...
develop-20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04d1e8fd59 | ||
|
|
9d2f57e40a | ||
|
|
ae366341cc | ||
|
|
3766128cb8 | ||
|
|
950c60d55c | ||
|
|
4b2807de48 | ||
|
|
649736cb31 | ||
|
|
6a121a8a78 | ||
|
|
f69b9ac9da | ||
|
|
23d70a2fac | ||
|
|
d178ff9de0 | ||
|
|
3ecad3457f | ||
|
|
fa6c621968 | ||
|
|
df863b6cff | ||
|
|
9316ff3e51 | ||
|
|
bfd91f8ee6 | ||
|
|
13e5d25cfe | ||
|
|
b13030420b | ||
|
|
44d1e8181c | ||
|
|
63b34c1853 | ||
|
|
facd0144cb | ||
|
|
115e3435af | ||
|
|
d44cd50768 | ||
|
|
1afcaea4c6 | ||
|
|
2bd1b37717 | ||
|
|
2d37177316 | ||
|
|
abb25e2015 | ||
|
|
d08d075e30 | ||
|
|
04fb6a953e | ||
|
|
5dce0bec8e |
52
.ci/php-cs-fixer/composer.lock
generated
52
.ci/php-cs-fixer/composer.lock
generated
@@ -406,16 +406,16 @@
|
||||
},
|
||||
{
|
||||
"name": "friendsofphp/php-cs-fixer",
|
||||
"version": "v3.66.0",
|
||||
"version": "v3.68.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
|
||||
"reference": "5f5f2a142ff36b93c41885bca29cc5f861c013e6"
|
||||
"reference": "b9db2b2ea3cdba7201067acee46f984ef2397cff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/5f5f2a142ff36b93c41885bca29cc5f861c013e6",
|
||||
"reference": "5f5f2a142ff36b93c41885bca29cc5f861c013e6",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/b9db2b2ea3cdba7201067acee46f984ef2397cff",
|
||||
"reference": "b9db2b2ea3cdba7201067acee46f984ef2397cff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -432,17 +432,17 @@
|
||||
"react/promise": "^2.0 || ^3.0",
|
||||
"react/socket": "^1.0",
|
||||
"react/stream": "^1.0",
|
||||
"sebastian/diff": "^4.0 || ^5.0 || ^6.0",
|
||||
"symfony/console": "^5.4 || ^6.0 || ^7.0",
|
||||
"symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
|
||||
"symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
|
||||
"symfony/finder": "^5.4 || ^6.0 || ^7.0",
|
||||
"symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
|
||||
"symfony/polyfill-mbstring": "^1.28",
|
||||
"symfony/polyfill-php80": "^1.28",
|
||||
"symfony/polyfill-php81": "^1.28",
|
||||
"symfony/process": "^5.4 || ^6.0 || ^7.0 <7.2",
|
||||
"symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
|
||||
"sebastian/diff": "^4.0 || ^5.1 || ^6.0",
|
||||
"symfony/console": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/filesystem": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/finder": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/options-resolver": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/polyfill-mbstring": "^1.31",
|
||||
"symfony/polyfill-php80": "^1.31",
|
||||
"symfony/polyfill-php81": "^1.31",
|
||||
"symfony/process": "^5.4 || ^6.4 || ^7.2",
|
||||
"symfony/stopwatch": "^5.4 || ^6.4 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"facile-it/paraunit": "^1.3.1 || ^2.4",
|
||||
@@ -454,9 +454,9 @@
|
||||
"php-cs-fixer/accessible-object": "^1.1",
|
||||
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5",
|
||||
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5",
|
||||
"phpunit/phpunit": "^9.6.21 || ^10.5.38 || ^11.4.3",
|
||||
"symfony/var-dumper": "^5.4.47 || ^6.4.15 || ^7.1.8",
|
||||
"symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.1.6"
|
||||
"phpunit/phpunit": "^9.6.22 || ^10.5.40 || ^11.5.2",
|
||||
"symfony/var-dumper": "^5.4.48 || ^6.4.15 || ^7.2.0",
|
||||
"symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.2.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-dom": "For handling output formats in XML",
|
||||
@@ -497,7 +497,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.66.0"
|
||||
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.68.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -505,7 +505,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-29T13:46:23+00:00"
|
||||
"time": "2025-01-17T09:20:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
@@ -2242,16 +2242,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v7.1.8",
|
||||
"version": "v7.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892"
|
||||
"reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/42783370fda6e538771f7c7a36e9fa2ee3a84892",
|
||||
"reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
|
||||
"reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2283,7 +2283,7 @@
|
||||
"description": "Executes commands in sub-processes",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/process/tree/v7.1.8"
|
||||
"source": "https://github.com/symfony/process/tree/v7.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2299,7 +2299,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-06T14:23:19+00:00"
|
||||
"time": "2024-11-06T14:24:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
|
||||
53
.github/mergify.yml
vendored
53
.github/mergify.yml
vendored
@@ -8,56 +8,3 @@ pull_request_rules:
|
||||
close:
|
||||
message: Please do not open PR's on the `main` branch, but on the `develop`
|
||||
branch only. Thank you!
|
||||
- name: No translations
|
||||
conditions:
|
||||
- -author~=^dependabot(|-preview)\[bot\]$
|
||||
- base=develop
|
||||
- or:
|
||||
- files~=^resources/lang/bg_BG
|
||||
- files~=^resources/lang/ca_ES
|
||||
- files~=^resources/lang/cs_CZ
|
||||
- files~=^resources/lang/da_DK
|
||||
- files~=^resources/lang/de_DE
|
||||
- files~=^resources/lang/el_GR
|
||||
- files~=^resources/lang/en_GB
|
||||
- files~=^resources/lang/es_ES
|
||||
- files~=^resources/lang/et_EE
|
||||
- files~=^resources/lang/fa_IR
|
||||
- files~=^resources/lang/fi_FI
|
||||
- files~=^resources/lang/fr_FR
|
||||
- files~=^resources/lang/he_IL
|
||||
- files~=^resources/lang/hu_HU
|
||||
- files~=^resources/lang/id_ID
|
||||
- files~=^resources/lang/is_IS
|
||||
- files~=^resources/lang/it_IT
|
||||
- files~=^resources/lang/ja_JP
|
||||
- files~=^resources/lang/ko_KR
|
||||
- files~=^resources/lang/lt_LT
|
||||
- files~=^resources/lang/nb_NO
|
||||
- files~=^resources/lang/nl_NL
|
||||
- files~=^resources/lang/pl_PL
|
||||
- files~=^resources/lang/pt_BR
|
||||
- files~=^resources/lang/pt_PT
|
||||
- files~=^resources/lang/ro_RO
|
||||
- files~=^resources/lang/ru_RU
|
||||
- files~=^resources/lang/si_LK
|
||||
- files~=^resources/lang/sk_SK
|
||||
- files~=^resources/lang/sl_SI
|
||||
- files~=^resources/lang/sr_CS
|
||||
- files~=^resources/lang/sv_SE
|
||||
- files~=^resources/lang/th_TH
|
||||
- files~=^resources/lang/tlh_AA
|
||||
- files~=^resources/lang/tr_TR
|
||||
- files~=^resources/lang/uk_UA
|
||||
- files~=^resources/lang/vi_VN
|
||||
- files~=^resources/lang/zh_CN
|
||||
- files~=^resources/lang/zh_TW
|
||||
actions:
|
||||
comment:
|
||||
message: >
|
||||
Please do not submit translated strings in your PR. If you need new
|
||||
sentences to be translated, add them to the `en_US` language strings.
|
||||
New or changed translations for other languages can be submitted at
|
||||
https://crowdin.com/project/firefly-iii
|
||||
|
||||
Thank you!
|
||||
|
||||
9
.github/workflows/release.yml
vendored
9
.github/workflows/release.yml
vendored
@@ -58,15 +58,6 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
CROWDIN_PROJECT_NR: ${{ secrets.CROWDIN_PROJECT_NR }}
|
||||
CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }}
|
||||
- name: Cleanup translations
|
||||
id: cleanup-transactions
|
||||
uses: JC5/firefly-iii-dev@main
|
||||
with:
|
||||
action: 'ff3:crowdin-warning'
|
||||
output: ''
|
||||
env:
|
||||
FIREFLY_III_ROOT: /github/workspace
|
||||
GH_TOKEN: ''
|
||||
- name: Cleanup changelog
|
||||
id: cleanup-changelog
|
||||
uses: JC5/firefly-iii-dev@main
|
||||
|
||||
@@ -30,12 +30,19 @@ use FireflyIII\Models\Preference;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use FireflyIII\Support\Facades\Steam;
|
||||
use FireflyIII\Transformers\V2\AbstractTransformer;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Support\Collection;
|
||||
use League\Fractal\Manager;
|
||||
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
||||
use League\Fractal\Resource\Collection as FractalCollection;
|
||||
use League\Fractal\Resource\Item;
|
||||
use League\Fractal\Serializer\JsonApiSerializer;
|
||||
use Symfony\Component\HttpFoundation\Exception\BadRequestException;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
@@ -223,4 +230,45 @@ abstract class Controller extends BaseController
|
||||
|
||||
return $manager;
|
||||
}
|
||||
|
||||
final protected function jsonApiList(string $key, LengthAwarePaginator $paginator, AbstractTransformer $transformer): array
|
||||
{
|
||||
$manager = new Manager();
|
||||
$baseUrl = sprintf('%s/api/v1/', request()->getSchemeAndHttpHost());
|
||||
|
||||
// TODO add stuff to path?
|
||||
|
||||
$manager->setSerializer(new JsonApiSerializer($baseUrl));
|
||||
|
||||
$objects = $paginator->getCollection();
|
||||
|
||||
// the transformer, at this point, needs to collect information that ALL items in the collection
|
||||
// require, like meta-data and stuff like that, and save it for later.
|
||||
$objects = $transformer->collectMetaData($objects);
|
||||
$paginator->setCollection($objects);
|
||||
|
||||
$resource = new FractalCollection($objects, $transformer, $key);
|
||||
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
|
||||
|
||||
return $manager->createData($resource)->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a JSON API object and returns it.
|
||||
*
|
||||
* @param array<int, mixed>|Model $object
|
||||
*/
|
||||
final protected function jsonApiObject(string $key, array|Model $object, AbstractTransformer $transformer): array
|
||||
{
|
||||
// create some objects:
|
||||
$manager = new Manager();
|
||||
$baseUrl = sprintf('%s/api/v1', request()->getSchemeAndHttpHost());
|
||||
$manager->setSerializer(new JsonApiSerializer($baseUrl));
|
||||
|
||||
$transformer->collectMetaData(new Collection([$object]));
|
||||
|
||||
$resource = new Item($object, $transformer, $key);
|
||||
|
||||
return $manager->createData($resource)->toArray();
|
||||
}
|
||||
}
|
||||
|
||||
71
app/Api/V1/Controllers/Models/UserGroup/IndexController.php
Normal file
71
app/Api/V1/Controllers/Models/UserGroup/IndexController.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* IndexController.php
|
||||
* Copyright (c) 2024 james@firefly-iii.org.
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Api\V1\Controllers\Models\UserGroup;
|
||||
|
||||
use FireflyIII\Api\V1\Controllers\Controller;
|
||||
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
||||
use FireflyIII\Repositories\UserGroup\UserGroupRepositoryInterface;
|
||||
use FireflyIII\Transformers\UserGroupTransformer;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
public const string RESOURCE_KEY = 'user_groups';
|
||||
|
||||
private UserGroupRepositoryInterface $repository;
|
||||
|
||||
/**
|
||||
* AccountController constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->middleware(
|
||||
function ($request, $next) {
|
||||
$this->repository = app(UserGroupRepositoryInterface::class);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function index(DateRequest $request): JsonResponse
|
||||
{
|
||||
$administrations = $this->repository->get();
|
||||
$pageSize = $this->parameters->get('limit');
|
||||
$count = $administrations->count();
|
||||
$administrations = $administrations->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
||||
$paginator = new LengthAwarePaginator($administrations, $count, $pageSize, $this->parameters->get('page'));
|
||||
$transformer = new UserGroupTransformer();
|
||||
|
||||
$transformer->setParameters($this->parameters); // give params to transformer
|
||||
|
||||
return response()
|
||||
->json($this->jsonApiList(self::RESOURCE_KEY, $paginator, $transformer))
|
||||
->header('Content-Type', self::CONTENT_TYPE)
|
||||
;
|
||||
}
|
||||
}
|
||||
64
app/Api/V1/Controllers/Models/UserGroup/ShowController.php
Normal file
64
app/Api/V1/Controllers/Models/UserGroup/ShowController.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* ShowController.php
|
||||
* Copyright (c) 2021 james@firefly-iii.org
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Api\V1\Controllers\Models\UserGroup;
|
||||
|
||||
use FireflyIII\Api\V1\Controllers\Controller;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
|
||||
use FireflyIII\Transformers\UserGroupTransformer;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
/**
|
||||
* Class ShowController
|
||||
*/
|
||||
class ShowController extends Controller
|
||||
{
|
||||
public const string RESOURCE_KEY = 'user_groups';
|
||||
private WebhookRepositoryInterface $repository;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->middleware(
|
||||
function ($request, $next) {
|
||||
$this->repository = app(WebhookRepositoryInterface::class);
|
||||
$this->repository->setUser(auth()->user());
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function show(UserGroup $userGroup): JsonResponse
|
||||
{
|
||||
$transformer = new UserGroupTransformer();
|
||||
$transformer->setParameters($this->parameters);
|
||||
|
||||
return response()
|
||||
->api($this->jsonApiObject(self::RESOURCE_KEY, $userGroup, $transformer))
|
||||
->header('Content-Type', self::CONTENT_TYPE)
|
||||
;
|
||||
}
|
||||
}
|
||||
71
app/Api/V1/Controllers/Models/UserGroup/UpdateController.php
Normal file
71
app/Api/V1/Controllers/Models/UserGroup/UpdateController.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* UpdateController.php
|
||||
* Copyright (c) 2025 james@firefly-iii.org.
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Api\V1\Controllers\Models\UserGroup;
|
||||
|
||||
use FireflyIII\Api\V1\Controllers\Controller;
|
||||
use FireflyIII\Api\V1\Requests\Models\UserGroup\UpdateRequest;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Repositories\UserGroup\UserGroupRepositoryInterface;
|
||||
use FireflyIII\Transformers\UserGroupTransformer;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class UpdateController extends Controller
|
||||
{
|
||||
public const string RESOURCE_KEY = 'user_groups';
|
||||
|
||||
private UserGroupRepositoryInterface $repository;
|
||||
|
||||
/**
|
||||
* AccountController constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->middleware(
|
||||
function ($request, $next) {
|
||||
$this->repository = app(UserGroupRepositoryInterface::class);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function update(UpdateRequest $request, UserGroup $userGroup): JsonResponse
|
||||
{
|
||||
app('log')->debug(sprintf('Now in %s', __METHOD__));
|
||||
$data = $request->getData();
|
||||
$userGroup = $this->repository->update($userGroup, $data);
|
||||
$userGroup->refresh();
|
||||
app('preferences')->mark();
|
||||
|
||||
$transformer = new UserGroupTransformer();
|
||||
$transformer->setParameters($this->parameters);
|
||||
|
||||
return response()
|
||||
->api($this->jsonApiObject(self::RESOURCE_KEY, $userGroup, $transformer))
|
||||
->header('Content-Type', self::CONTENT_TYPE)
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,7 @@ class DateRequest extends FormRequest
|
||||
return [
|
||||
'start' => $start,
|
||||
'end' => $end,
|
||||
'date' => $this->getCarbonDate('date'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -64,8 +65,9 @@ class DateRequest extends FormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'start' => 'required|date',
|
||||
'end' => 'required|date|after:start',
|
||||
'date' => 'date|after:1900-01-01|before:2099-12-31',
|
||||
'start' => 'date|after:1900-01-01|before:2099-12-31|before:end|required_with:end',
|
||||
'end' => 'date|after:1900-01-01|before:2099-12-31|after:start|required_with:start',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
65
app/Api/V1/Requests/Models/UserGroup/UpdateRequest.php
Normal file
65
app/Api/V1/Requests/Models/UserGroup/UpdateRequest.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* UpdateRequest.php
|
||||
* Copyright (c) 2021 james@firefly-iii.org
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Api\V1\Requests\Models\UserGroup;
|
||||
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Support\Request\ChecksLogin;
|
||||
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
/**
|
||||
* Class UpdateRequest
|
||||
*/
|
||||
class UpdateRequest extends FormRequest
|
||||
{
|
||||
use ChecksLogin;
|
||||
use ConvertsDataTypes;
|
||||
|
||||
public function getData(): array
|
||||
{
|
||||
$fields = [
|
||||
'title' => ['title', 'convertString'],
|
||||
'native_currency_id' => ['native_currency_id', 'convertInteger'],
|
||||
'native_currency_code' => ['native_currency_code', 'convertString'],
|
||||
];
|
||||
|
||||
return $this->getAllData($fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rules for this request.
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
/** @var UserGroup $userGroup */
|
||||
$userGroup = $this->route()->parameter('userGroup');
|
||||
|
||||
return [
|
||||
'title' => ['required', 'min:1', 'max:255'],
|
||||
'native_currency_id' => 'exists:transaction_currencies,id',
|
||||
'native_currency_code' => 'exists:transaction_currencies,code',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,7 @@ class ShowController extends Controller
|
||||
$default = 1 === $group->pivot->group_default;
|
||||
}
|
||||
$currency->userGroupEnabled = $enabled;
|
||||
$currency->userGroupDefault = $default;
|
||||
$currency->userGroupNative = $default;
|
||||
|
||||
|
||||
$transformer = new CurrencyTransformer();
|
||||
|
||||
@@ -38,17 +38,17 @@ class CreatesDatabase extends Command
|
||||
|
||||
public function handle(): int
|
||||
{
|
||||
if ('mysql' !== config('database.default')) {
|
||||
$this->friendlyInfo(sprintf('CreateDB does not apply to "%s", skipped.', config('database.default')));
|
||||
if ('mysql' !== env('DB_CONNECTION')) {
|
||||
$this->friendlyInfo(sprintf('CreateDB does not apply to "%s", skipped.', env('DB_CONNECTION')));
|
||||
|
||||
return 0;
|
||||
}
|
||||
// try to set up a raw connection:
|
||||
$exists = false;
|
||||
$dsn = sprintf('mysql:host=%s;port=%d;charset=utf8mb4', config('database.mysql.host'), config('database.mysql.port'));
|
||||
$dsn = sprintf('mysql:host=%s;port=%d;charset=utf8mb4', env('DB_HOST'), env('DB_PORT'));
|
||||
|
||||
if ('' !== config('database.mysql.unix_socket')) {
|
||||
$dsn = sprintf('mysql:unix_socket=%s;charset=utf8mb4', config('database.mysql.unix_socket'));
|
||||
if ('' !== (string) env('DB_SOCKET')) {
|
||||
$dsn = sprintf('mysql:unix_socket=%s;charset=utf8mb4', env('DB_SOCKET'));
|
||||
}
|
||||
$this->friendlyLine(sprintf('DSN is %s', $dsn));
|
||||
|
||||
@@ -60,7 +60,7 @@ class CreatesDatabase extends Command
|
||||
|
||||
// when it fails, display error
|
||||
try {
|
||||
$pdo = new \PDO($dsn, config('database.mysql.username'), config('database.mysql.password'), $options);
|
||||
$pdo = new \PDO($dsn, env('DB_USERNAME'), env('DB_PASSWORD'), $options);
|
||||
} catch (\PDOException $e) {
|
||||
$this->friendlyError(sprintf('Error when connecting to DB: %s', $e->getMessage()));
|
||||
|
||||
@@ -74,19 +74,19 @@ class CreatesDatabase extends Command
|
||||
// slightly more complex but less error-prone.
|
||||
foreach ($stmt as $row) {
|
||||
$name = $row['Database'] ?? false;
|
||||
if ($name === config('database.mysql.database')) {
|
||||
if ($name === env('DB_DATABASE')) {
|
||||
$exists = true;
|
||||
}
|
||||
}
|
||||
if (false === $exists) {
|
||||
$this->friendlyError(sprintf('Database "%s" does not exist.', config('database.mysql.database')));
|
||||
$this->friendlyError(sprintf('Database "%s" does not exist.', env('DB_DATABASE')));
|
||||
|
||||
// try to create it.
|
||||
$pdo->exec(sprintf('CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;', config('database.mysql.database')));
|
||||
$this->friendlyInfo(sprintf('Created database "%s"', config('database.mysql.database')));
|
||||
$pdo->exec(sprintf('CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;', env('DB_DATABASE')));
|
||||
$this->friendlyInfo(sprintf('Created database "%s"', env('DB_DATABASE')));
|
||||
}
|
||||
if (true === $exists) {
|
||||
$this->friendlyInfo(sprintf('Database "%s" exists.', config('database.mysql.database')));
|
||||
$this->friendlyInfo(sprintf('Database "%s" exists.', env('DB_DATABASE')));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -119,7 +119,7 @@ class EditController extends Controller
|
||||
}
|
||||
$request->session()->forget('accounts.edit.fromUpdate');
|
||||
|
||||
$openingBalanceAmount = (string) $repository->getOpeningBalanceAmount($account);
|
||||
$openingBalanceAmount = (string) $repository->getOpeningBalanceAmount($account, false);
|
||||
if ('0' === $openingBalanceAmount) {
|
||||
$openingBalanceAmount = '';
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class ConfigurationController extends Controller
|
||||
|
||||
$this->middleware(
|
||||
static function ($request, $next) {
|
||||
app('view')->share('title', (string) trans('firefly.administration'));
|
||||
app('view')->share('title', (string) trans('firefly.system_settings'));
|
||||
app('view')->share('mainTitleIcon', 'fa-hand-spock-o');
|
||||
|
||||
return $next($request);
|
||||
@@ -73,7 +73,7 @@ class ConfigurationController extends Controller
|
||||
$siteOwner = config('firefly.site_owner');
|
||||
|
||||
return view(
|
||||
'admin.configuration.index',
|
||||
'settings.configuration.index',
|
||||
compact('subTitle', 'subTitleIcon', 'singleUserMode', 'isDemoSite', 'siteOwner')
|
||||
);
|
||||
}
|
||||
@@ -96,6 +96,6 @@ class ConfigurationController extends Controller
|
||||
session()->flash('success', (string) trans('firefly.configuration_updated'));
|
||||
app('preferences')->mark();
|
||||
|
||||
return redirect()->route('admin.configuration.index');
|
||||
return redirect()->route('settings.configuration.index');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class HomeController extends Controller
|
||||
public function index()
|
||||
{
|
||||
Log::channel('audit')->info('User visits admin index.');
|
||||
$title = (string) trans('firefly.administration');
|
||||
$title = (string) trans('firefly.system_settings');
|
||||
$mainTitleIcon = 'fa-hand-spock-o';
|
||||
$email = auth()->user()->email;
|
||||
$pref = app('preferences')->get('remote_guard_alt_email');
|
||||
@@ -59,6 +59,6 @@ class HomeController extends Controller
|
||||
$email = $pref->data;
|
||||
}
|
||||
|
||||
return view('admin.index', compact('title', 'mainTitleIcon', 'email'));
|
||||
return view('settings.index', compact('title', 'mainTitleIcon', 'email'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class LinkController extends Controller
|
||||
|
||||
$this->middleware(
|
||||
function ($request, $next) {
|
||||
app('view')->share('title', (string) trans('firefly.administration'));
|
||||
app('view')->share('title', (string) trans('firefly.system_settings'));
|
||||
app('view')->share('mainTitleIcon', 'fa-hand-spock-o');
|
||||
$this->repository = app(LinkTypeRepositoryInterface::class);
|
||||
|
||||
@@ -78,7 +78,7 @@ class LinkController extends Controller
|
||||
$this->rememberPreviousUrl('link-types.create.url');
|
||||
}
|
||||
|
||||
return view('admin.link.create', compact('subTitle', 'subTitleIcon'));
|
||||
return view('settings.link.create', compact('subTitle', 'subTitleIcon'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,7 +91,7 @@ class LinkController extends Controller
|
||||
if (false === $linkType->editable) {
|
||||
$request->session()->flash('error', (string) trans('firefly.cannot_edit_link_type', ['name' => e($linkType->name)]));
|
||||
|
||||
return redirect(route('admin.links.index'));
|
||||
return redirect(route('settings.links.index'));
|
||||
}
|
||||
|
||||
Log::channel('audit')->info(sprintf('User wants to delete link type #%d', $linkType->id));
|
||||
@@ -111,7 +111,7 @@ class LinkController extends Controller
|
||||
// put previous url in session
|
||||
$this->rememberPreviousUrl('link-types.delete.url');
|
||||
|
||||
return view('admin.link.delete', compact('linkType', 'subTitle', 'moveTo', 'count'));
|
||||
return view('settings.link.delete', compact('linkType', 'subTitle', 'moveTo', 'count'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,7 +142,7 @@ class LinkController extends Controller
|
||||
if (false === $linkType->editable) {
|
||||
$request->session()->flash('error', (string) trans('firefly.cannot_edit_link_type', ['name' => e($linkType->name)]));
|
||||
|
||||
return redirect(route('admin.links.index'));
|
||||
return redirect(route('settings.links.index'));
|
||||
}
|
||||
$subTitle = (string) trans('firefly.edit_link_type', ['name' => $linkType->name]);
|
||||
$subTitleIcon = 'fa-link';
|
||||
@@ -155,7 +155,7 @@ class LinkController extends Controller
|
||||
}
|
||||
$request->session()->forget('link-types.edit.fromUpdate');
|
||||
|
||||
return view('admin.link.edit', compact('subTitle', 'subTitleIcon', 'linkType'));
|
||||
return view('settings.link.edit', compact('subTitle', 'subTitleIcon', 'linkType'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,7 +176,7 @@ class LinkController extends Controller
|
||||
}
|
||||
);
|
||||
|
||||
return view('admin.link.index', compact('subTitle', 'subTitleIcon', 'linkTypes'));
|
||||
return view('settings.link.index', compact('subTitle', 'subTitleIcon', 'linkTypes'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -192,7 +192,7 @@ class LinkController extends Controller
|
||||
|
||||
Log::channel('audit')->info(sprintf('User viewing link type #%d', $linkType->id));
|
||||
|
||||
return view('admin.link.show', compact('subTitle', 'subTitleIcon', 'linkType', 'links'));
|
||||
return view('settings.link.show', compact('subTitle', 'subTitleIcon', 'linkType', 'links'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -217,7 +217,7 @@ class LinkController extends Controller
|
||||
// set value so create routine will not overwrite URL:
|
||||
$request->session()->put('link-types.create.fromStore', true);
|
||||
|
||||
$redirect = redirect(route('admin.links.create'))->withInput();
|
||||
$redirect = redirect(route('settings.links.create'))->withInput();
|
||||
}
|
||||
|
||||
// redirect to previous URL.
|
||||
@@ -234,7 +234,7 @@ class LinkController extends Controller
|
||||
if (false === $linkType->editable) {
|
||||
$request->session()->flash('error', (string) trans('firefly.cannot_edit_link_type', ['name' => e($linkType->name)]));
|
||||
|
||||
return redirect(route('admin.links.index'));
|
||||
return redirect(route('settings.links.index'));
|
||||
}
|
||||
|
||||
$data = [
|
||||
@@ -253,7 +253,7 @@ class LinkController extends Controller
|
||||
// set value so edit routine will not overwrite URL:
|
||||
$request->session()->put('link-types.edit.fromUpdate', true);
|
||||
|
||||
$redirect = redirect(route('admin.links.edit', [$linkType->id]))->withInput(['return_to_edit' => 1]);
|
||||
$redirect = redirect(route('settings.links.edit', [$linkType->id]))->withInput(['return_to_edit' => 1]);
|
||||
}
|
||||
|
||||
// redirect to previous URL.
|
||||
|
||||
@@ -38,7 +38,7 @@ class NotificationController extends Controller
|
||||
public function index(): View
|
||||
{
|
||||
Log::channel('audit')->info('User visits notifications index.');
|
||||
$title = (string) trans('firefly.administration');
|
||||
$title = (string) trans('firefly.system_settings');
|
||||
$mainTitleIcon = 'fa-hand-spock-o';
|
||||
$subTitle = (string) trans('firefly.title_owner_notifications');
|
||||
$subTitleIcon = 'envelope-o';
|
||||
@@ -71,7 +71,7 @@ class NotificationController extends Controller
|
||||
$forcedAvailability['pushover'] = '' !== $pushoverAppToken && '' !== $pushoverUserToken;
|
||||
|
||||
return view(
|
||||
'admin.notifications.index',
|
||||
'settings.notifications.index',
|
||||
compact(
|
||||
'title',
|
||||
'subTitle',
|
||||
@@ -115,7 +115,7 @@ class NotificationController extends Controller
|
||||
|
||||
session()->flash('success', (string) trans('firefly.notification_settings_saved'));
|
||||
|
||||
return redirect(route('admin.notification.index'));
|
||||
return redirect(route('settings.notification.index'));
|
||||
}
|
||||
|
||||
public function testNotification(Request $request): RedirectResponse
|
||||
@@ -140,6 +140,6 @@ class NotificationController extends Controller
|
||||
session()->flash('success', (string) trans('firefly.notification_test_executed', ['channel' => $channel]));
|
||||
}
|
||||
|
||||
return redirect(route('admin.notification.index'));
|
||||
return redirect(route('settings.notification.index'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class UpdateController extends Controller
|
||||
parent::__construct();
|
||||
$this->middleware(
|
||||
static function ($request, $next) {
|
||||
app('view')->share('title', (string) trans('firefly.administration'));
|
||||
app('view')->share('title', (string) trans('firefly.system_settings'));
|
||||
app('view')->share('mainTitleIcon', 'fa-hand-spock-o');
|
||||
|
||||
return $next($request);
|
||||
@@ -81,7 +81,7 @@ class UpdateController extends Controller
|
||||
'alpha' => (string) trans('firefly.update_channel_alpha'),
|
||||
];
|
||||
|
||||
return view('admin.update.index', compact('subTitle', 'subTitleIcon', 'selected', 'options', 'channelSelected', 'channelOptions'));
|
||||
return view('settings.update.index', compact('subTitle', 'subTitleIcon', 'selected', 'options', 'channelSelected', 'channelOptions'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -100,7 +100,7 @@ class UpdateController extends Controller
|
||||
app('fireflyconfig')->set('update_channel', $channel);
|
||||
session()->flash('success', (string) trans('firefly.configuration_updated'));
|
||||
|
||||
return redirect(route('admin.update-check'));
|
||||
return redirect(route('settings.update-check'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,6 +112,6 @@ class UpdateController extends Controller
|
||||
|
||||
session()->flash($release['level'], $release['message']);
|
||||
|
||||
return redirect(route('admin.update-check'));
|
||||
return redirect(route('settings.update-check'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ class UserController extends Controller
|
||||
|
||||
$this->middleware(
|
||||
function ($request, $next) {
|
||||
app('view')->share('title', (string) trans('firefly.administration'));
|
||||
app('view')->share('title', (string) trans('firefly.system_settings'));
|
||||
app('view')->share('mainTitleIcon', 'fa-hand-spock-o');
|
||||
$this->repository = app(UserRepositoryInterface::class);
|
||||
|
||||
@@ -74,12 +74,12 @@ class UserController extends Controller
|
||||
if ($this->externalIdentity) {
|
||||
request()->session()->flash('error', trans('firefly.external_user_mgt_disabled'));
|
||||
|
||||
return redirect(route('admin.users'));
|
||||
return redirect(route('settings.users'));
|
||||
}
|
||||
|
||||
$subTitle = (string) trans('firefly.delete_user', ['email' => $user->email]);
|
||||
|
||||
return view('admin.users.delete', compact('user', 'subTitle'));
|
||||
return view('settings.users.delete', compact('user', 'subTitle'));
|
||||
}
|
||||
|
||||
public function deleteInvite(InvitedUser $invitedUser): JsonResponse
|
||||
@@ -108,12 +108,12 @@ class UserController extends Controller
|
||||
if ($this->externalIdentity) {
|
||||
request()->session()->flash('error', trans('firefly.external_user_mgt_disabled'));
|
||||
|
||||
return redirect(route('admin.users'));
|
||||
return redirect(route('settings.users'));
|
||||
}
|
||||
$this->repository->destroy($user);
|
||||
session()->flash('success', (string) trans('firefly.user_deleted'));
|
||||
|
||||
return redirect(route('admin.users'));
|
||||
return redirect(route('settings.users'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,7 +144,7 @@ class UserController extends Controller
|
||||
'email_changed' => (string) trans('firefly.block_code_email_changed'),
|
||||
];
|
||||
|
||||
return view('admin.users.edit', compact('user', 'canEditDetails', 'subTitle', 'subTitleIcon', 'codes', 'currentUser', 'isAdmin'));
|
||||
return view('settings.users.edit', compact('user', 'canEditDetails', 'subTitle', 'subTitleIcon', 'codes', 'currentUser', 'isAdmin'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -174,7 +174,7 @@ class UserController extends Controller
|
||||
}
|
||||
);
|
||||
|
||||
return view('admin.users.index', compact('subTitle', 'subTitleIcon', 'users', 'allowInvites', 'invitedUsers'));
|
||||
return view('settings.users.index', compact('subTitle', 'subTitleIcon', 'users', 'allowInvites', 'invitedUsers'));
|
||||
}
|
||||
|
||||
public function invite(InviteUserFormRequest $request): RedirectResponse
|
||||
@@ -186,7 +186,7 @@ class UserController extends Controller
|
||||
// event!
|
||||
event(new InvitationCreated($invitee));
|
||||
|
||||
return redirect(route('admin.users'));
|
||||
return redirect(route('settings.users'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -196,14 +196,14 @@ class UserController extends Controller
|
||||
*/
|
||||
public function show(User $user)
|
||||
{
|
||||
$title = (string) trans('firefly.administration');
|
||||
$title = (string) trans('firefly.system_settings');
|
||||
$mainTitleIcon = 'fa-hand-spock-o';
|
||||
$subTitle = (string) trans('firefly.single_user_administration', ['email' => $user->email]);
|
||||
$subTitleIcon = 'fa-user';
|
||||
$information = $this->repository->getUserData($user);
|
||||
|
||||
return view(
|
||||
'admin.users.show',
|
||||
'settings.users.show',
|
||||
compact(
|
||||
'title',
|
||||
'mainTitleIcon',
|
||||
@@ -248,7 +248,7 @@ class UserController extends Controller
|
||||
if (1 === (int) $request->get('return_to_edit')) {
|
||||
session()->put('users.edit.fromUpdate', true);
|
||||
|
||||
$redirect = redirect(route('admin.users.edit', [$user->id]))->withInput(['return_to_edit' => 1]);
|
||||
$redirect = redirect(route('settings.users.edit', [$user->id]))->withInput(['return_to_edit' => 1]);
|
||||
}
|
||||
|
||||
// redirect to previous URL.
|
||||
|
||||
@@ -74,10 +74,10 @@ class IndexController extends Controller
|
||||
// order so default and enabled are on top:
|
||||
$collection = $collection->sortBy(
|
||||
static function (TransactionCurrency $currency) {
|
||||
$default = true === $currency->userGroupDefault ? 0 : 1;
|
||||
$native = true === $currency->userGroupNative ? 0 : 1;
|
||||
$enabled = true === $currency->userGroupEnabled ? 0 : 1;
|
||||
|
||||
return sprintf('%s-%s-%s', $default, $enabled, $currency->code);
|
||||
return sprintf('%s-%s-%s', $native, $enabled, $currency->code);
|
||||
}
|
||||
);
|
||||
$total = $collection->count();
|
||||
|
||||
@@ -26,9 +26,11 @@ namespace FireflyIII\Http\Middleware;
|
||||
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\Bill;
|
||||
use FireflyIII\Models\GroupMembership;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Models\TransactionGroup;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Models\Webhook;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -53,6 +55,10 @@ class InterestingMessage
|
||||
app('preferences')->mark();
|
||||
$this->handleGroupMessage($request);
|
||||
}
|
||||
if ($this->userGroupMessage($request)) {
|
||||
app('preferences')->mark();
|
||||
$this->handleUserGroupMessage($request);
|
||||
}
|
||||
if ($this->accountMessage($request)) {
|
||||
app('preferences')->mark();
|
||||
$this->handleAccountMessage($request);
|
||||
@@ -88,6 +94,15 @@ class InterestingMessage
|
||||
return null !== $transactionGroupId && null !== $message;
|
||||
}
|
||||
|
||||
private function userGroupMessage(Request $request): bool
|
||||
{
|
||||
// get parameters from request.
|
||||
$transactionGroupId = $request->get('user_group_id');
|
||||
$message = $request->get('message');
|
||||
|
||||
return null !== $transactionGroupId && null !== $message;
|
||||
}
|
||||
|
||||
private function handleGroupMessage(Request $request): void
|
||||
{
|
||||
// get parameters from request.
|
||||
@@ -135,6 +150,43 @@ class InterestingMessage
|
||||
return null !== $accountId && null !== $message;
|
||||
}
|
||||
|
||||
private function handleUserGroupMessage(Request $request): void
|
||||
{
|
||||
// get parameters from request.
|
||||
$userGroupId = $request->get('user_group_id');
|
||||
$message = $request->get('message');
|
||||
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$userGroup = UserGroup::find($userGroupId);
|
||||
$valid = false;
|
||||
$memberships = $user->groupMemberships()->get();
|
||||
|
||||
/** @var GroupMembership $membership */
|
||||
foreach ($memberships as $membership) {
|
||||
if ($membership->userGroup->id === $userGroup->id) {
|
||||
$valid = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (false === $valid) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if ('deleted' === $message) {
|
||||
session()->flash('success', (string) trans('firefly.flash_administration_deleted', ['title' => $userGroup->title]));
|
||||
}
|
||||
if ('created' === $message) {
|
||||
session()->flash('success', (string) trans('firefly.flash_administration_created', ['title' => $userGroup->title]));
|
||||
}
|
||||
if ('updated' === $message) {
|
||||
session()->flash('success', (string) trans('firefly.flash_administration_updated', ['title' => $userGroup->title]));
|
||||
}
|
||||
}
|
||||
|
||||
private function handleAccountMessage(Request $request): void
|
||||
{
|
||||
// get parameters from request.
|
||||
|
||||
@@ -37,7 +37,7 @@ class TransactionCurrency extends Model
|
||||
use ReturnsIntegerIdTrait;
|
||||
use SoftDeletes;
|
||||
|
||||
public ?bool $userGroupDefault = null;
|
||||
public ?bool $userGroupNative = null;
|
||||
public ?bool $userGroupEnabled = null;
|
||||
protected $casts
|
||||
= [
|
||||
@@ -73,8 +73,8 @@ class TransactionCurrency extends Model
|
||||
public function refreshForUser(User $user): void
|
||||
{
|
||||
$current = $user->userGroup->currencies()->where('transaction_currencies.id', $this->id)->first();
|
||||
$default = app('amount')->getDefaultCurrencyByUserGroup($user->userGroup);
|
||||
$this->userGroupDefault = $default->id === $this->id;
|
||||
$native = app('amount')->getDefaultCurrencyByUserGroup($user->userGroup);
|
||||
$this->userGroupNative = $native->id === $this->id;
|
||||
$this->userGroupEnabled = null !== $current;
|
||||
}
|
||||
|
||||
|
||||
@@ -293,7 +293,7 @@ class AccountRepository implements AccountRepositoryInterface
|
||||
/**
|
||||
* Returns the amount of the opening balance for this account.
|
||||
*/
|
||||
public function getOpeningBalanceAmount(Account $account): ?string
|
||||
public function getOpeningBalanceAmount(Account $account, bool $convertToNative): ?string
|
||||
{
|
||||
$journal = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
|
||||
->where('transactions.account_id', $account->id)
|
||||
@@ -307,6 +307,9 @@ class AccountRepository implements AccountRepositoryInterface
|
||||
if (null === $transaction) {
|
||||
return null;
|
||||
}
|
||||
if ($convertToNative) {
|
||||
return $transaction->native_amount ?? '0';
|
||||
}
|
||||
|
||||
return $transaction->amount;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ interface AccountRepositoryInterface
|
||||
/**
|
||||
* Returns the amount of the opening balance for this account.
|
||||
*/
|
||||
public function getOpeningBalanceAmount(Account $account): ?string;
|
||||
public function getOpeningBalanceAmount(Account $account, bool $convertToNative): ?string;
|
||||
|
||||
/**
|
||||
* Return date of opening balance as string or null.
|
||||
|
||||
@@ -30,6 +30,7 @@ use FireflyIII\Factory\UserGroupFactory;
|
||||
use FireflyIII\Models\GroupMembership;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Models\UserRole;
|
||||
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Illuminate\Support\Collection;
|
||||
@@ -198,6 +199,24 @@ class UserGroupRepository implements UserGroupRepositoryInterface
|
||||
{
|
||||
$userGroup->title = $data['title'];
|
||||
$userGroup->save();
|
||||
$currency = null;
|
||||
|
||||
/** @var CurrencyRepositoryInterface $repository */
|
||||
$repository = app(CurrencyRepositoryInterface::class);
|
||||
|
||||
if (array_key_exists('native_currency_code', $data)) {
|
||||
$repository->setUser($this->user);
|
||||
$currency = $repository->findByCode($data['native_currency_code']);
|
||||
}
|
||||
|
||||
if (array_key_exists('native_currency_id', $data) && null === $currency) {
|
||||
$repository->setUser($this->user);
|
||||
$currency = $repository->find((int) $data['native_currency_id']);
|
||||
}
|
||||
if (null !== $currency) {
|
||||
$repository->makeDefault($currency);
|
||||
}
|
||||
|
||||
|
||||
return $userGroup;
|
||||
}
|
||||
|
||||
@@ -180,11 +180,11 @@ class CurrencyRepository implements CurrencyRepositoryInterface
|
||||
$hasId = $local->contains(static function (TransactionCurrency $entry) use ($current) {
|
||||
return $entry->id === $current->id;
|
||||
});
|
||||
$isDefault = $local->contains(static function (TransactionCurrency $entry) use ($current) {
|
||||
$isNative = $local->contains(static function (TransactionCurrency $entry) use ($current) {
|
||||
return 1 === (int) $entry->pivot->group_default && $entry->id === $current->id;
|
||||
});
|
||||
$current->userGroupEnabled = $hasId;
|
||||
$current->userGroupDefault = $isDefault;
|
||||
$current->userGroupNative = $isNative;
|
||||
|
||||
return $current;
|
||||
});
|
||||
@@ -195,7 +195,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
|
||||
$all = $this->userGroup->currencies()->orderBy('code', 'ASC')->withPivot(['group_default'])->get();
|
||||
$all->map(static function (TransactionCurrency $current) { // @phpstan-ignore-line
|
||||
$current->userGroupEnabled = true;
|
||||
$current->userGroupDefault = 1 === (int) $current->pivot->group_default;
|
||||
$current->userGroupNative = 1 === (int) $current->pivot->group_default;
|
||||
|
||||
return $current;
|
||||
});
|
||||
|
||||
@@ -170,7 +170,7 @@ class CreditRecalculateService
|
||||
$this->validateOpeningBalance($account, $openingBalance);
|
||||
}
|
||||
}
|
||||
$startOfDebt = $this->repository->getOpeningBalanceAmount($account) ?? '0';
|
||||
$startOfDebt = $this->repository->getOpeningBalanceAmount($account, false) ?? '0';
|
||||
$leftOfDebt = app('steam')->positive($startOfDebt);
|
||||
// Log::debug(sprintf('Start of debt is "%s", so initial left of debt is "%s"', app('steam')->bcround($startOfDebt, 2), app('steam')->bcround($leftOfDebt, 2)));
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ class CurrencyUpdateService
|
||||
$currency->decimal_places = $data['decimal_places'];
|
||||
}
|
||||
$currency->userGroupEnabled = null;
|
||||
$currency->userGroupDefault = null;
|
||||
$currency->userGroupNative = null;
|
||||
$currency->save();
|
||||
|
||||
return $currency;
|
||||
|
||||
@@ -168,25 +168,33 @@ class Amount
|
||||
return $this->getSystemCurrency();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function getDefaultCurrencyByUserGroup(UserGroup $userGroup): TransactionCurrency
|
||||
{
|
||||
$cache = new CacheProperties();
|
||||
$cache->addProperty('getDefaultCurrencyByGroup');
|
||||
return $this->getNativeCurrencyByUserGroup($userGroup);
|
||||
}
|
||||
|
||||
public function getNativeCurrencyByUserGroup(UserGroup $userGroup): TransactionCurrency
|
||||
{
|
||||
$cache = new CacheProperties();
|
||||
$cache->addProperty('getNativeCurrencyByGroup');
|
||||
$cache->addProperty($userGroup->id);
|
||||
if ($cache->has()) {
|
||||
return $cache->get();
|
||||
}
|
||||
|
||||
/** @var null|TransactionCurrency $default */
|
||||
$default = $userGroup->currencies()->where('group_default', true)->first();
|
||||
if (null === $default) {
|
||||
$default = $this->getSystemCurrency();
|
||||
$native = $userGroup->currencies()->where('group_default', true)->first();
|
||||
if (null === $native) {
|
||||
$native = $this->getSystemCurrency();
|
||||
// could be the user group has no default right now.
|
||||
$userGroup->currencies()->sync([$default->id => ['group_default' => true]]);
|
||||
$userGroup->currencies()->sync([$native->id => ['group_default' => true]]);
|
||||
}
|
||||
$cache->store($default);
|
||||
$cache->store($native);
|
||||
|
||||
return $default;
|
||||
return $native;
|
||||
}
|
||||
|
||||
public function getSystemCurrency(): TransactionCurrency
|
||||
|
||||
@@ -25,6 +25,8 @@ declare(strict_types=1);
|
||||
namespace FireflyIII\Support\Export;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use FireflyIII\Enums\AccountTypeEnum;
|
||||
use FireflyIII\Enums\TransactionTypeEnum;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||
use FireflyIII\Models\Account;
|
||||
@@ -50,6 +52,8 @@ use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
|
||||
use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
|
||||
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
|
||||
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use FireflyIII\Support\Facades\Steam;
|
||||
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Support\Collection;
|
||||
@@ -728,16 +732,15 @@ class ExportDataGenerator
|
||||
private function exportTransactions(): string
|
||||
{
|
||||
// TODO better place for keys?
|
||||
$header = ['user_id', 'group_id', 'journal_id', 'created_at', 'updated_at', 'group_title', 'type', 'amount', 'foreign_amount', 'currency_code', 'foreign_currency_code', 'description', 'date', 'source_name', 'source_iban', 'source_type', 'destination_name', 'destination_iban', 'destination_type', 'reconciled', 'category', 'budget', 'bill', 'tags', 'notes'];
|
||||
$header = ['user_id', 'group_id', 'journal_id', 'created_at', 'updated_at', 'group_title', 'type', 'currency_code', 'amount', 'foreign_currency_code', 'foreign_amount', 'native_currency_code', 'native_amount', 'native_foreign_amount', 'description', 'date', 'source_name', 'source_iban', 'source_type', 'destination_name', 'destination_iban', 'destination_type', 'reconciled', 'category', 'budget', 'bill', 'tags', 'notes'];
|
||||
|
||||
$metaFields = config('firefly.journal_meta_fields');
|
||||
$header = array_merge($header, $metaFields);
|
||||
$default = Amount::getDefaultCurrency();
|
||||
|
||||
$collector = app(GroupCollectorInterface::class);
|
||||
$collector->setUser($this->user);
|
||||
$collector->setRange($this->start, $this->end)->withAccountInformation()->withCategoryInformation()->withBillInformation()
|
||||
->withBudgetInformation()->withTagInformation()->withNotes()
|
||||
;
|
||||
$collector->setRange($this->start, $this->end)->withAccountInformation()->withCategoryInformation()->withBillInformation()->withBudgetInformation()->withTagInformation()->withNotes();
|
||||
if (0 !== $this->accounts->count()) {
|
||||
$collector->setAccounts($this->accounts);
|
||||
}
|
||||
@@ -752,9 +755,34 @@ class ExportDataGenerator
|
||||
|
||||
/** @var array $journal */
|
||||
foreach ($journals as $journal) {
|
||||
$metaData = $repository->getMetaFields($journal['transaction_journal_id'], $metaFields);
|
||||
$records[] = [
|
||||
$journal['user_id'], $journal['transaction_group_id'], $journal['transaction_journal_id'], $journal['created_at']->toAtomString(), $journal['updated_at']->toAtomString(), $journal['transaction_group_title'], $journal['transaction_type_type'], $journal['amount'], $journal['foreign_amount'], $journal['currency_code'], $journal['foreign_currency_code'], $journal['description'], $journal['date']->toAtomString(), $journal['source_account_name'], $journal['source_account_iban'], $journal['source_account_type'], $journal['destination_account_name'], $journal['destination_account_iban'], $journal['destination_account_type'], $journal['reconciled'], $journal['category_name'], $journal['budget_name'], $journal['bill_name'],
|
||||
$metaData = $repository->getMetaFields($journal['transaction_journal_id'], $metaFields);
|
||||
$amount = Steam::bcround(Steam::negative($journal['amount']), $journal['currency_decimal_places']);
|
||||
$foreignAmount = null === $journal['foreign_amount'] ? null : Steam::bcround(Steam::negative($journal['foreign_amount']), $journal['foreign_currency_decimal_places']);
|
||||
$nativeAmount = null === $journal['native_amount'] ? null : Steam::bcround(Steam::negative($journal['native_amount'], $default->decimal_places));
|
||||
$nativeForeignAmount = null === $journal['native_foreign_amount'] ? null : Steam::bcround(Steam::negative($journal['native_foreign_amount'], $default->decimal_places));
|
||||
|
||||
if (TransactionTypeEnum::WITHDRAWAL->value !== $journal['transaction_type_type']) {
|
||||
$amount = Steam::bcround(Steam::positive($journal['amount']), $journal['currency_decimal_places']);
|
||||
$foreignAmount = null === $journal['foreign_amount'] ? null : Steam::bcround(Steam::positive($journal['foreign_amount']), $journal['foreign_currency_decimal_places']);
|
||||
$nativeAmount = null === $journal['native_amount'] ? null : Steam::bcround(Steam::positive($journal['native_amount'], $default->decimal_places));
|
||||
$nativeForeignAmount = null === $journal['native_foreign_amount'] ? null : Steam::bcround(Steam::positive($journal['native_foreign_amount'], $default->decimal_places));
|
||||
}
|
||||
|
||||
// opening balance depends on source account type.
|
||||
if (TransactionTypeEnum::OPENING_BALANCE->value === $journal['transaction_type_type'] && AccountTypeEnum::ASSET->value === $journal['source_account_type']) {
|
||||
$amount = Steam::bcround(Steam::negative($journal['amount']), $journal['currency_decimal_places']);
|
||||
$foreignAmount = null === $journal['foreign_amount'] ? null : Steam::bcround(Steam::negative($journal['foreign_amount']), $journal['foreign_currency_decimal_places']);
|
||||
$nativeAmount = null === $journal['native_amount'] ? null : Steam::bcround(Steam::negative($journal['native_amount'], $default->decimal_places));
|
||||
$nativeForeignAmount = null === $journal['native_foreign_amount'] ? null : Steam::bcround(Steam::negative($journal['native_foreign_amount'], $default->decimal_places));
|
||||
}
|
||||
|
||||
$records[] = [
|
||||
$journal['user_id'], $journal['transaction_group_id'], $journal['transaction_journal_id'], $journal['created_at']->toAtomString(), $journal['updated_at']->toAtomString(), $journal['transaction_group_title'], $journal['transaction_type_type'],
|
||||
// amounts and currencies
|
||||
$journal['currency_code'], $amount, $journal['foreign_currency_code'], $foreignAmount, $default->code, $nativeAmount, $nativeForeignAmount,
|
||||
|
||||
// more fields
|
||||
$journal['description'], $journal['date']->toAtomString(), $journal['source_account_name'], $journal['source_account_iban'], $journal['source_account_type'], $journal['destination_account_name'], $journal['destination_account_iban'], $journal['destination_account_type'], $journal['reconciled'], $journal['category_name'], $journal['budget_name'], $journal['bill_name'],
|
||||
$this->mergeTags($journal['tags']),
|
||||
$this->clearStringKeepNewlines($journal['notes']),
|
||||
|
||||
|
||||
39
app/Support/Search/QueryParser/NodeResult.php
Normal file
39
app/Support/Search/QueryParser/NodeResult.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* NodeResult.php
|
||||
* Copyright (c) 2025 https://github.com/Sobuno
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Support\Search\QueryParser;
|
||||
|
||||
/**
|
||||
* Represents a result from parsing a query node
|
||||
*
|
||||
* Contains the parsed node and a flag indicating if this is the end of the query.
|
||||
* Used to handle subquery parsing and termination.
|
||||
*/
|
||||
class NodeResult
|
||||
{
|
||||
public function __construct(
|
||||
public readonly ?Node $node,
|
||||
public readonly bool $isSubqueryEnd
|
||||
) {}
|
||||
}
|
||||
@@ -27,21 +27,6 @@ namespace FireflyIII\Support\Search\QueryParser;
|
||||
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* Represents a result from parsing a query node
|
||||
*
|
||||
* Contains the parsed node and a flag indicating if this is the end of the query.
|
||||
* Used to handle subquery parsing and termination.
|
||||
*/
|
||||
class NodeResult
|
||||
{
|
||||
public function __construct(
|
||||
public readonly ?Node $node,
|
||||
public readonly bool $isSubqueryEnd
|
||||
) {}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Single-pass parser that processes query strings into structured nodes.
|
||||
* Scans each character once (O(n)) to build field searches, quoted strings,
|
||||
@@ -108,7 +93,7 @@ class QueryParser implements QueryParserInterface
|
||||
case '-':
|
||||
if ('' === $tokenUnderConstruction) {
|
||||
// A minus sign at the beginning of a token indicates prohibition
|
||||
Log::debug('Indicate prohibition');
|
||||
// Log::debug('Indicate prohibition');
|
||||
$prohibited = true;
|
||||
}
|
||||
if ('' !== $tokenUnderConstruction) {
|
||||
@@ -208,6 +193,8 @@ class QueryParser implements QueryParserInterface
|
||||
{
|
||||
if ('' !== $fieldName) {
|
||||
Log::debug(sprintf('Create FieldNode %s:%s (%s)', $fieldName, $token, var_export($prohibited, true)));
|
||||
$token = ltrim($token, ':"');
|
||||
$token = rtrim($token, '"');
|
||||
|
||||
return new FieldNode(trim($fieldName), trim($token), $prohibited);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,9 @@ namespace FireflyIII\Transformers;
|
||||
use Carbon\Carbon;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use FireflyIII\Support\Facades\Steam;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
|
||||
@@ -37,14 +39,18 @@ use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
class AccountTransformer extends AbstractTransformer
|
||||
{
|
||||
protected AccountRepositoryInterface $repository;
|
||||
protected bool $convertToNative;
|
||||
protected TransactionCurrency $default;
|
||||
|
||||
/**
|
||||
* AccountTransformer constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->parameters = new ParameterBag();
|
||||
$this->repository = app(AccountRepositoryInterface::class);
|
||||
$this->parameters = new ParameterBag();
|
||||
$this->repository = app(AccountRepositoryInterface::class);
|
||||
$this->convertToNative = Amount::convertToNative();
|
||||
$this->default = Amount::getDefaultCurrency();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,22 +63,31 @@ class AccountTransformer extends AbstractTransformer
|
||||
$this->repository->setUser($account->user);
|
||||
|
||||
// get account type:
|
||||
|
||||
$fullType = $account->accountType->type;
|
||||
$accountType = (string) config(sprintf('firefly.shortNamesByFullName.%s', $fullType));
|
||||
$liabilityType = (string) config(sprintf('firefly.shortLiabilityNameByFullName.%s', $fullType));
|
||||
$liabilityType = '' === $liabilityType ? null : strtolower($liabilityType);
|
||||
$liabilityDirection = $this->repository->getMetaValue($account, 'liability_direction');
|
||||
$convertToNative = Amount::convertToNative();
|
||||
|
||||
// get account role (will only work if the type is asset.
|
||||
// get account role (will only work if the type is asset).
|
||||
$default = Amount::getDefaultCurrency();
|
||||
$accountRole = $this->getAccountRole($account, $accountType);
|
||||
$date = $this->getDate();
|
||||
$date->endOfDay();
|
||||
|
||||
[$currencyId, $currencyCode, $currencySymbol, $decimalPlaces] = $this->getCurrency($account);
|
||||
[$currencyId, $currencyCode, $currencySymbol, $decimalPlaces] = $this->getCurrency($account, $default);
|
||||
[$creditCardType, $monthlyPaymentDate] = $this->getCCInfo($account, $accountRole, $accountType);
|
||||
[$openingBalance, $openingBalanceDate] = $this->getOpeningBalance($account, $accountType);
|
||||
[$openingBalance, $nativeOpeningBalance, $openingBalanceDate] = $this->getOpeningBalance($account, $accountType, $convertToNative);
|
||||
[$interest, $interestPeriod] = $this->getInterest($account, $accountType);
|
||||
|
||||
$default = $this->default;
|
||||
if (!$this->convertToNative) {
|
||||
// reset default currency to NULL, not interesting.
|
||||
$default = null;
|
||||
}
|
||||
|
||||
$openingBalance = app('steam')->bcround($openingBalance, $decimalPlaces);
|
||||
$includeNetWorth = '0' !== $this->repository->getMetaValue($account, 'include_net_worth');
|
||||
$longitude = null;
|
||||
@@ -90,41 +105,56 @@ class AccountTransformer extends AbstractTransformer
|
||||
if (!in_array(strtolower($accountType), ['liability', 'liabilities', 'asset'], true)) {
|
||||
$order = null;
|
||||
}
|
||||
// balance, native balance, virtual balance, native virtual balance?
|
||||
$finalBalance = Steam::finalAccountBalance($account, $date);
|
||||
if ($convertToNative) {
|
||||
$finalBalance['balance'] = $finalBalance[$currencyCode] ?? '0';
|
||||
}
|
||||
|
||||
$currentBalance = app('steam')->bcround($finalBalance['balance'] ?? '0', $decimalPlaces);
|
||||
$nativeCurrentBalance = $convertToNative ? app('steam')->bcround($finalBalance['native_balance'] ?? '0', $default->decimal_places) : null;
|
||||
|
||||
return [
|
||||
'id' => (string) $account->id,
|
||||
'created_at' => $account->created_at->toAtomString(),
|
||||
'updated_at' => $account->updated_at->toAtomString(),
|
||||
'active' => $account->active,
|
||||
'order' => $order,
|
||||
'name' => $account->name,
|
||||
'type' => strtolower($accountType),
|
||||
'account_role' => $accountRole,
|
||||
'currency_id' => $currencyId,
|
||||
'currency_code' => $currencyCode,
|
||||
'currency_symbol' => $currencySymbol,
|
||||
'currency_decimal_places' => $decimalPlaces,
|
||||
'current_balance' => app('steam')->bcround(Steam::finalAccountBalance($account, $date)['balance'] ?? '0', $decimalPlaces),
|
||||
'current_balance_date' => $date->toAtomString(),
|
||||
'notes' => $this->repository->getNoteText($account),
|
||||
'monthly_payment_date' => $monthlyPaymentDate,
|
||||
'credit_card_type' => $creditCardType,
|
||||
'account_number' => $this->repository->getMetaValue($account, 'account_number'),
|
||||
'iban' => '' === $account->iban ? null : $account->iban,
|
||||
'bic' => $this->repository->getMetaValue($account, 'BIC'),
|
||||
'virtual_balance' => app('steam')->bcround($account->virtual_balance, $decimalPlaces),
|
||||
'opening_balance' => $openingBalance,
|
||||
'opening_balance_date' => $openingBalanceDate,
|
||||
'liability_type' => $liabilityType,
|
||||
'liability_direction' => $liabilityDirection,
|
||||
'interest' => $interest,
|
||||
'interest_period' => $interestPeriod,
|
||||
'current_debt' => $this->repository->getMetaValue($account, 'current_debt'),
|
||||
'include_net_worth' => $includeNetWorth,
|
||||
'longitude' => $longitude,
|
||||
'latitude' => $latitude,
|
||||
'zoom_level' => $zoomLevel,
|
||||
'links' => [
|
||||
'id' => (string) $account->id,
|
||||
'created_at' => $account->created_at->toAtomString(),
|
||||
'updated_at' => $account->updated_at->toAtomString(),
|
||||
'active' => $account->active,
|
||||
'order' => $order,
|
||||
'name' => $account->name,
|
||||
'type' => strtolower($accountType),
|
||||
'account_role' => $accountRole,
|
||||
'currency_id' => $currencyId,
|
||||
'currency_code' => $currencyCode,
|
||||
'currency_symbol' => $currencySymbol,
|
||||
'currency_decimal_places' => $decimalPlaces,
|
||||
'native_currency_id' => null === $default ? null : (string) $default->id,
|
||||
'native_currency_code' => $default?->code,
|
||||
'native_currency_symbol' => $default?->symbol,
|
||||
'native_currency_decimal_places' => $default?->decimal_places,
|
||||
'current_balance' => $currentBalance,
|
||||
'native_current_balance' => $nativeCurrentBalance,
|
||||
'current_balance_date' => $date->toAtomString(),
|
||||
'notes' => $this->repository->getNoteText($account),
|
||||
'monthly_payment_date' => $monthlyPaymentDate,
|
||||
'credit_card_type' => $creditCardType,
|
||||
'account_number' => $this->repository->getMetaValue($account, 'account_number'),
|
||||
'iban' => '' === $account->iban ? null : $account->iban,
|
||||
'bic' => $this->repository->getMetaValue($account, 'BIC'),
|
||||
'virtual_balance' => app('steam')->bcround($account->virtual_balance, $decimalPlaces),
|
||||
'native_virtual_balance' => $this->convertToNative ? app('steam')->bcround($account->native_virtual_balance, $default->decimal_places) : null,
|
||||
'opening_balance' => $openingBalance,
|
||||
'native_opening_balance' => $nativeOpeningBalance,
|
||||
'opening_balance_date' => $openingBalanceDate,
|
||||
'liability_type' => $liabilityType,
|
||||
'liability_direction' => $liabilityDirection,
|
||||
'interest' => $interest,
|
||||
'interest_period' => $interestPeriod,
|
||||
'current_debt' => $this->repository->getMetaValue($account, 'current_debt'),
|
||||
'include_net_worth' => $includeNetWorth,
|
||||
'longitude' => $longitude,
|
||||
'latitude' => $latitude,
|
||||
'zoom_level' => $zoomLevel,
|
||||
'links' => [
|
||||
[
|
||||
'rel' => 'self',
|
||||
'uri' => '/accounts/'.$account->id,
|
||||
@@ -156,16 +186,13 @@ class AccountTransformer extends AbstractTransformer
|
||||
return $date;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
*/
|
||||
private function getCurrency(Account $account): array
|
||||
{
|
||||
$currency = $this->repository->getAccountCurrency($account);
|
||||
|
||||
// only grab default when result is null:
|
||||
if (null === $currency) {
|
||||
$currency = app('amount')->getDefaultCurrencyByUserGroup($account->user->userGroup);
|
||||
$currency = $this->default;
|
||||
}
|
||||
$currencyId = (string) $currency->id;
|
||||
$currencyCode = $currency->code;
|
||||
@@ -203,14 +230,15 @@ class AccountTransformer extends AbstractTransformer
|
||||
/**
|
||||
* TODO refactor call to get~OpeningBalanceAmount / Date because it is a lot of queries
|
||||
*/
|
||||
private function getOpeningBalance(Account $account, string $accountType): array
|
||||
private function getOpeningBalance(Account $account, string $accountType, bool $convertToNative): array
|
||||
{
|
||||
$openingBalance = null;
|
||||
$openingBalanceDate = null;
|
||||
$openingBalance = null;
|
||||
$openingBalanceDate = null;
|
||||
$nativeOpeningBalance = null;
|
||||
if (in_array($accountType, ['asset', 'liabilities'], true)) {
|
||||
$amount = $this->repository->getOpeningBalanceAmount($account);
|
||||
$openingBalance = $amount;
|
||||
$openingBalanceDate = $this->repository->getOpeningBalanceDate($account);
|
||||
$openingBalance = $this->repository->getOpeningBalanceAmount($account, false);
|
||||
$nativeOpeningBalance = $this->repository->getOpeningBalanceAmount($account, true);
|
||||
$openingBalanceDate = $this->repository->getOpeningBalanceDate($account);
|
||||
}
|
||||
if (null !== $openingBalanceDate) {
|
||||
$object = Carbon::createFromFormat('Y-m-d H:i:s', $openingBalanceDate, config('app.timezone'));
|
||||
@@ -220,7 +248,7 @@ class AccountTransformer extends AbstractTransformer
|
||||
$openingBalanceDate = $object->toAtomString();
|
||||
}
|
||||
|
||||
return [$openingBalance, $openingBalanceDate];
|
||||
return [$openingBalance, $nativeOpeningBalance, $openingBalanceDate];
|
||||
}
|
||||
|
||||
private function getInterest(Account $account, string $accountType): array
|
||||
|
||||
@@ -25,9 +25,11 @@ declare(strict_types=1);
|
||||
namespace FireflyIII\Transformers;
|
||||
|
||||
use FireflyIII\Models\AvailableBudget;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||
use FireflyIII\Repositories\Budget\NoBudgetRepositoryInterface;
|
||||
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
|
||||
/**
|
||||
* Class AvailableBudgetTransformer
|
||||
@@ -37,6 +39,8 @@ class AvailableBudgetTransformer extends AbstractTransformer
|
||||
private NoBudgetRepositoryInterface $noBudgetRepository;
|
||||
private OperationsRepositoryInterface $opsRepository;
|
||||
private BudgetRepositoryInterface $repository;
|
||||
private TransactionCurrency $default;
|
||||
private bool $convertToNative;
|
||||
|
||||
/**
|
||||
* CurrencyTransformer constructor.
|
||||
@@ -46,6 +50,8 @@ class AvailableBudgetTransformer extends AbstractTransformer
|
||||
$this->repository = app(BudgetRepositoryInterface::class);
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
$this->noBudgetRepository = app(NoBudgetRepositoryInterface::class);
|
||||
$this->default = Amount::getDefaultCurrency();
|
||||
$this->convertToNative = Amount::convertToNative();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,20 +62,29 @@ class AvailableBudgetTransformer extends AbstractTransformer
|
||||
$this->repository->setUser($availableBudget->user);
|
||||
|
||||
$currency = $availableBudget->transactionCurrency;
|
||||
$default = $this->default;
|
||||
if (!$this->convertToNative) {
|
||||
$default = null;
|
||||
}
|
||||
$data = [
|
||||
'id' => (string) $availableBudget->id,
|
||||
'created_at' => $availableBudget->created_at->toAtomString(),
|
||||
'updated_at' => $availableBudget->updated_at->toAtomString(),
|
||||
'currency_id' => (string) $currency->id,
|
||||
'currency_code' => $currency->code,
|
||||
'currency_symbol' => $currency->symbol,
|
||||
'currency_decimal_places' => $currency->decimal_places,
|
||||
'amount' => app('steam')->bcround($availableBudget->amount, $currency->decimal_places),
|
||||
'start' => $availableBudget->start_date->toAtomString(),
|
||||
'end' => $availableBudget->end_date->endOfDay()->toAtomString(),
|
||||
'spent_in_budgets' => [],
|
||||
'spent_no_budget' => [],
|
||||
'links' => [
|
||||
'id' => (string) $availableBudget->id,
|
||||
'created_at' => $availableBudget->created_at->toAtomString(),
|
||||
'updated_at' => $availableBudget->updated_at->toAtomString(),
|
||||
'currency_id' => (string) $currency->id,
|
||||
'currency_code' => $currency->code,
|
||||
'currency_symbol' => $currency->symbol,
|
||||
'currency_decimal_places' => $currency->decimal_places,
|
||||
'native_currency_id' => null === $default ? null : (string) $default->id,
|
||||
'native_currency_code' => $default?->code,
|
||||
'native_currency_symbol' => $default?->symbol,
|
||||
'native_currency_decimal_places' => $default?->decimal_places,
|
||||
'amount' => app('steam')->bcround($availableBudget->amount, $currency->decimal_places),
|
||||
'native_amount' => $this->convertToNative ? app('steam')->bcround($availableBudget->native_amount, $currency->decimal_places) : null,
|
||||
'start' => $availableBudget->start_date->toAtomString(),
|
||||
'end' => $availableBudget->end_date->endOfDay()->toAtomString(),
|
||||
'spent_in_budgets' => [],
|
||||
'spent_no_budget' => [],
|
||||
'links' => [
|
||||
[
|
||||
'rel' => 'self',
|
||||
'uri' => '/available_budgets/'.$availableBudget->id,
|
||||
|
||||
@@ -28,8 +28,10 @@ use Carbon\Carbon;
|
||||
use Carbon\CarbonInterface;
|
||||
use FireflyIII\Models\Bill;
|
||||
use FireflyIII\Models\ObjectGroup;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use FireflyIII\Support\Models\BillDateCalculator;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
@@ -40,14 +42,18 @@ class BillTransformer extends AbstractTransformer
|
||||
{
|
||||
private BillDateCalculator $calculator;
|
||||
private BillRepositoryInterface $repository;
|
||||
private TransactionCurrency $default;
|
||||
private bool $convertToNative;
|
||||
|
||||
/**
|
||||
* BillTransformer constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->repository = app(BillRepositoryInterface::class);
|
||||
$this->calculator = app(BillDateCalculator::class);
|
||||
$this->repository = app(BillRepositoryInterface::class);
|
||||
$this->calculator = app(BillDateCalculator::class);
|
||||
$this->default = Amount::getDefaultCurrency();
|
||||
$this->convertToNative = Amount::convertToNative();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,7 +64,7 @@ class BillTransformer extends AbstractTransformer
|
||||
*/
|
||||
public function transform(Bill $bill): array
|
||||
{
|
||||
$defaultCurrency = $this->parameters->get('defaultCurrency') ?? app('amount')->getDefaultCurrency();
|
||||
$default = $this->parameters->get('defaultCurrency') ?? $this->default;
|
||||
|
||||
$paidData = $this->paidData($bill);
|
||||
$lastPaidDate = $this->getLastPaidDate($paidData);
|
||||
@@ -141,36 +147,40 @@ class BillTransformer extends AbstractTransformer
|
||||
}
|
||||
|
||||
return [
|
||||
'id' => $bill->id,
|
||||
'created_at' => $bill->created_at->toAtomString(),
|
||||
'updated_at' => $bill->updated_at->toAtomString(),
|
||||
'currency_id' => (string) $bill->transaction_currency_id,
|
||||
'currency_code' => $currency->code,
|
||||
'currency_symbol' => $currency->symbol,
|
||||
'currency_decimal_places' => $currency->decimal_places,
|
||||
'name' => $bill->name,
|
||||
'amount_min' => app('steam')->bcround($bill->amount_min, $currency->decimal_places),
|
||||
'amount_max' => app('steam')->bcround($bill->amount_max, $currency->decimal_places),
|
||||
'native_amount_min' => app('steam')->bcround($bill->native_amount_min, $defaultCurrency->decimal_places),
|
||||
'native_amount_max' => app('steam')->bcround($bill->native_amount_max, $defaultCurrency->decimal_places),
|
||||
'date' => $bill->date->toAtomString(),
|
||||
'end_date' => $bill->end_date?->toAtomString(),
|
||||
'extension_date' => $bill->extension_date?->toAtomString(),
|
||||
'repeat_freq' => $bill->repeat_freq,
|
||||
'skip' => $bill->skip,
|
||||
'active' => $bill->active,
|
||||
'order' => $bill->order,
|
||||
'notes' => $notes,
|
||||
'object_group_id' => null !== $objectGroupId ? (string) $objectGroupId : null,
|
||||
'object_group_order' => $objectGroupOrder,
|
||||
'object_group_title' => $objectGroupTitle,
|
||||
'id' => $bill->id,
|
||||
'created_at' => $bill->created_at->toAtomString(),
|
||||
'updated_at' => $bill->updated_at->toAtomString(),
|
||||
'currency_id' => (string) $bill->transaction_currency_id,
|
||||
'currency_code' => $currency->code,
|
||||
'currency_symbol' => $currency->symbol,
|
||||
'currency_decimal_places' => $currency->decimal_places,
|
||||
'native_currency_id' => null === $default ? null : (string) $default->id,
|
||||
'native_currency_code' => $default?->code,
|
||||
'native_currency_symbol' => $default?->symbol,
|
||||
'native_currency_decimal_places' => $default?->decimal_places,
|
||||
'name' => $bill->name,
|
||||
'amount_min' => app('steam')->bcround($bill->amount_min, $currency->decimal_places),
|
||||
'amount_max' => app('steam')->bcround($bill->amount_max, $currency->decimal_places),
|
||||
'native_amount_min' => $this->convertToNative ? app('steam')->bcround($bill->native_amount_min, $default->decimal_places) : null,
|
||||
'native_amount_max' => $this->convertToNative ? app('steam')->bcround($bill->native_amount_max, $default->decimal_places) : null,
|
||||
'date' => $bill->date->toAtomString(),
|
||||
'end_date' => $bill->end_date?->toAtomString(),
|
||||
'extension_date' => $bill->extension_date?->toAtomString(),
|
||||
'repeat_freq' => $bill->repeat_freq,
|
||||
'skip' => $bill->skip,
|
||||
'active' => $bill->active,
|
||||
'order' => $bill->order,
|
||||
'notes' => $notes,
|
||||
'object_group_id' => null !== $objectGroupId ? (string) $objectGroupId : null,
|
||||
'object_group_order' => $objectGroupOrder,
|
||||
'object_group_title' => $objectGroupTitle,
|
||||
|
||||
// these fields need work:
|
||||
'next_expected_match' => $nem,
|
||||
'next_expected_match_diff' => $nemDiff,
|
||||
'pay_dates' => $payDatesFormatted,
|
||||
'paid_dates' => $paidDataFormatted,
|
||||
'links' => [
|
||||
'next_expected_match' => $nem,
|
||||
'next_expected_match_diff' => $nemDiff,
|
||||
'pay_dates' => $payDatesFormatted,
|
||||
'paid_dates' => $paidDataFormatted,
|
||||
'links' => [
|
||||
[
|
||||
'rel' => 'self',
|
||||
'uri' => '/bills/'.$bill->id,
|
||||
|
||||
@@ -25,8 +25,10 @@ declare(strict_types=1);
|
||||
namespace FireflyIII\Transformers;
|
||||
|
||||
use FireflyIII\Models\BudgetLimit;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
|
||||
use FireflyIII\Repositories\Budget\OperationsRepository;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use Illuminate\Support\Collection;
|
||||
use League\Fractal\Resource\Item;
|
||||
|
||||
@@ -40,6 +42,15 @@ class BudgetLimitTransformer extends AbstractTransformer
|
||||
'budget',
|
||||
];
|
||||
|
||||
protected TransactionCurrency $default;
|
||||
protected bool $convertToNative;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->default = Amount::getDefaultCurrency();
|
||||
$this->convertToNative = Amount::convertToNative();
|
||||
}
|
||||
|
||||
/**
|
||||
* Include Budget
|
||||
*
|
||||
@@ -83,24 +94,34 @@ class BudgetLimitTransformer extends AbstractTransformer
|
||||
$currencyDecimalPlaces = $currency->decimal_places;
|
||||
}
|
||||
$amount = app('steam')->bcround($amount, $currencyDecimalPlaces);
|
||||
$default = $this->default;
|
||||
if (!$this->convertToNative) {
|
||||
$default = null;
|
||||
}
|
||||
|
||||
|
||||
return [
|
||||
'id' => (string) $budgetLimit->id,
|
||||
'created_at' => $budgetLimit->created_at->toAtomString(),
|
||||
'updated_at' => $budgetLimit->updated_at->toAtomString(),
|
||||
'start' => $budgetLimit->start_date->toAtomString(),
|
||||
'end' => $budgetLimit->end_date->endOfDay()->toAtomString(),
|
||||
'budget_id' => (string) $budgetLimit->budget_id,
|
||||
'currency_id' => (string) $currencyId,
|
||||
'currency_code' => $currencyCode,
|
||||
'currency_name' => $currencyName,
|
||||
'currency_decimal_places' => $currencyDecimalPlaces,
|
||||
'currency_symbol' => $currencySymbol,
|
||||
'amount' => $amount,
|
||||
'period' => $budgetLimit->period,
|
||||
'spent' => $expenses[$currencyId]['sum'] ?? '0',
|
||||
'notes' => '' === $notes ? null : $notes,
|
||||
'links' => [
|
||||
'id' => (string) $budgetLimit->id,
|
||||
'created_at' => $budgetLimit->created_at->toAtomString(),
|
||||
'updated_at' => $budgetLimit->updated_at->toAtomString(),
|
||||
'start' => $budgetLimit->start_date->toAtomString(),
|
||||
'end' => $budgetLimit->end_date->endOfDay()->toAtomString(),
|
||||
'budget_id' => (string) $budgetLimit->budget_id,
|
||||
'currency_id' => (string) $currencyId,
|
||||
'currency_code' => $currencyCode,
|
||||
'currency_name' => $currencyName,
|
||||
'currency_decimal_places' => $currencyDecimalPlaces,
|
||||
'currency_symbol' => $currencySymbol,
|
||||
'native_currency_id' => null === $default ? null : (string) $default->id,
|
||||
'native_currency_code' => $default?->code,
|
||||
'native_currency_symbol' => $default?->symbol,
|
||||
'native_currency_decimal_places' => $default?->decimal_places,
|
||||
'amount' => $amount,
|
||||
'native_amount' => $this->convertToNative ? app('steam')->bcround($budgetLimit->native_amount, $default->decimal_places) : null,
|
||||
'period' => $budgetLimit->period,
|
||||
'spent' => $expenses[$currencyId]['sum'] ?? '0', // will be in native if convertToNative.
|
||||
'notes' => '' === $notes ? null : $notes,
|
||||
'links' => [
|
||||
[
|
||||
'rel' => 'self',
|
||||
'uri' => '/budgets/limits/'.$budgetLimit->id,
|
||||
|
||||
@@ -26,8 +26,10 @@ namespace FireflyIII\Transformers;
|
||||
|
||||
use FireflyIII\Enums\AutoBudgetType;
|
||||
use FireflyIII\Models\Budget;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use Illuminate\Support\Collection;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
|
||||
@@ -38,15 +40,19 @@ class BudgetTransformer extends AbstractTransformer
|
||||
{
|
||||
private OperationsRepositoryInterface $opsRepository;
|
||||
private BudgetRepositoryInterface $repository;
|
||||
private bool $convertToNative;
|
||||
private TransactionCurrency $default;
|
||||
|
||||
/**
|
||||
* BudgetTransformer constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
$this->repository = app(BudgetRepositoryInterface::class);
|
||||
$this->parameters = new ParameterBag();
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
$this->repository = app(BudgetRepositoryInterface::class);
|
||||
$this->parameters = new ParameterBag();
|
||||
$this->default = Amount::getDefaultCurrency();
|
||||
$this->convertToNative = Amount::convertToNative();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -55,50 +61,68 @@ class BudgetTransformer extends AbstractTransformer
|
||||
public function transform(Budget $budget): array
|
||||
{
|
||||
$this->opsRepository->setUser($budget->user);
|
||||
$start = $this->parameters->get('start');
|
||||
$end = $this->parameters->get('end');
|
||||
$autoBudget = $this->repository->getAutoBudget($budget);
|
||||
$spent = [];
|
||||
$start = $this->parameters->get('start');
|
||||
$end = $this->parameters->get('end');
|
||||
$autoBudget = $this->repository->getAutoBudget($budget);
|
||||
$spent = [];
|
||||
if (null !== $start && null !== $end) {
|
||||
$spent = $this->beautify($this->opsRepository->sumExpenses($start, $end, null, new Collection([$budget])));
|
||||
}
|
||||
|
||||
$abCurrencyId = null;
|
||||
$abCurrencyCode = null;
|
||||
$abType = null;
|
||||
$abAmount = null;
|
||||
$abPeriod = null;
|
||||
$notes = $this->repository->getNoteText($budget);
|
||||
// info for auto budget.
|
||||
$abType = null;
|
||||
$abAmount = null;
|
||||
$abNative = null;
|
||||
$abPeriod = null;
|
||||
$notes = $this->repository->getNoteText($budget);
|
||||
|
||||
$types = [
|
||||
$types = [
|
||||
AutoBudgetType::AUTO_BUDGET_RESET->value => 'reset',
|
||||
AutoBudgetType::AUTO_BUDGET_ROLLOVER->value => 'rollover',
|
||||
AutoBudgetType::AUTO_BUDGET_ADJUSTED->value => 'adjusted',
|
||||
];
|
||||
|
||||
$currency = $autoBudget?->transactionCurrency;
|
||||
$default = $this->default;
|
||||
if (!$this->convertToNative) {
|
||||
$default = null;
|
||||
}
|
||||
if (null === $autoBudget) {
|
||||
$currency = $default;
|
||||
}
|
||||
if (null !== $autoBudget) {
|
||||
$abCurrencyId = (string) $autoBudget->transactionCurrency->id;
|
||||
$abCurrencyCode = $autoBudget->transactionCurrency->code;
|
||||
$abType = $types[$autoBudget->auto_budget_type];
|
||||
$abAmount = app('steam')->bcround($autoBudget->amount, $autoBudget->transactionCurrency->decimal_places);
|
||||
$abPeriod = $autoBudget->period;
|
||||
$abType = $types[$autoBudget->auto_budget_type];
|
||||
$abAmount = app('steam')->bcround($autoBudget->amount, $currency->decimal_places);
|
||||
$abNative = $this->convertToNative ? app('steam')->bcround($autoBudget->native_amount, $default->decimal_places) : null;
|
||||
$abPeriod = $autoBudget->period;
|
||||
}
|
||||
|
||||
return [
|
||||
'id' => (string) $budget->id,
|
||||
'created_at' => $budget->created_at->toAtomString(),
|
||||
'updated_at' => $budget->updated_at->toAtomString(),
|
||||
'active' => $budget->active,
|
||||
'name' => $budget->name,
|
||||
'order' => $budget->order,
|
||||
'notes' => $notes,
|
||||
'auto_budget_type' => $abType,
|
||||
'auto_budget_period' => $abPeriod,
|
||||
'auto_budget_currency_id' => $abCurrencyId,
|
||||
'auto_budget_currency_code' => $abCurrencyCode,
|
||||
'auto_budget_amount' => $abAmount,
|
||||
'spent' => $spent,
|
||||
'links' => [
|
||||
'id' => (string) $budget->id,
|
||||
'created_at' => $budget->created_at->toAtomString(),
|
||||
'updated_at' => $budget->updated_at->toAtomString(),
|
||||
'active' => $budget->active,
|
||||
'name' => $budget->name,
|
||||
'order' => $budget->order,
|
||||
'notes' => $notes,
|
||||
'auto_budget_type' => $abType,
|
||||
'auto_budget_period' => $abPeriod,
|
||||
|
||||
'currency_id' => null === $autoBudget ? null : (string) $autoBudget->transactionCurrency->id,
|
||||
'currency_code' => $autoBudget?->transactionCurrency->code,
|
||||
'currency_name' => $autoBudget?->transactionCurrency->name,
|
||||
'currency_decimal_places' => $autoBudget?->transactionCurrency->decimal_places,
|
||||
'currency_symbol' => $autoBudget?->transactionCurrency->symbol,
|
||||
|
||||
'native_currency_id' => null === $default ? null : (string) $default->id,
|
||||
'native_currency_code' => $default?->code,
|
||||
'native_currency_symbol' => $default?->symbol,
|
||||
'native_currency_decimal_places' => $default?->decimal_places,
|
||||
|
||||
// amount and native amount if present.
|
||||
'auto_budget_amount' => $abAmount,
|
||||
'native_auto_budget_amount' => $abNative,
|
||||
'spent' => $spent, // always in native.
|
||||
'links' => [
|
||||
[
|
||||
'rel' => 'self',
|
||||
'uri' => '/budgets/'.$budget->id,
|
||||
|
||||
@@ -25,8 +25,10 @@ declare(strict_types=1);
|
||||
namespace FireflyIII\Transformers;
|
||||
|
||||
use FireflyIII\Models\Category;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
|
||||
use FireflyIII\Repositories\Category\OperationsRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
/**
|
||||
@@ -36,14 +38,18 @@ class CategoryTransformer extends AbstractTransformer
|
||||
{
|
||||
private OperationsRepositoryInterface $opsRepository;
|
||||
private CategoryRepositoryInterface $repository;
|
||||
private TransactionCurrency $default;
|
||||
private bool $convertToNative;
|
||||
|
||||
/**
|
||||
* CategoryTransformer constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
$this->repository = app(CategoryRepositoryInterface::class);
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
$this->repository = app(CategoryRepositoryInterface::class);
|
||||
$this->default = Amount::getDefaultCurrency();
|
||||
$this->convertToNative = Amount::convertToNative();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -54,25 +60,33 @@ class CategoryTransformer extends AbstractTransformer
|
||||
$this->opsRepository->setUser($category->user);
|
||||
$this->repository->setUser($category->user);
|
||||
|
||||
$spent = [];
|
||||
$earned = [];
|
||||
$start = $this->parameters->get('start');
|
||||
$end = $this->parameters->get('end');
|
||||
$spent = [];
|
||||
$earned = [];
|
||||
$start = $this->parameters->get('start');
|
||||
$end = $this->parameters->get('end');
|
||||
if (null !== $start && null !== $end) {
|
||||
$earned = $this->beautify($this->opsRepository->sumIncome($start, $end, null, new Collection([$category])));
|
||||
$spent = $this->beautify($this->opsRepository->sumExpenses($start, $end, null, new Collection([$category])));
|
||||
}
|
||||
$notes = $this->repository->getNoteText($category);
|
||||
$default = $this->default;
|
||||
if (!$this->convertToNative) {
|
||||
$default = null;
|
||||
}
|
||||
$notes = $this->repository->getNoteText($category);
|
||||
|
||||
return [
|
||||
'id' => $category->id,
|
||||
'created_at' => $category->created_at->toAtomString(),
|
||||
'updated_at' => $category->updated_at->toAtomString(),
|
||||
'name' => $category->name,
|
||||
'notes' => $notes,
|
||||
'spent' => $spent,
|
||||
'earned' => $earned,
|
||||
'links' => [
|
||||
'id' => $category->id,
|
||||
'created_at' => $category->created_at->toAtomString(),
|
||||
'updated_at' => $category->updated_at->toAtomString(),
|
||||
'name' => $category->name,
|
||||
'notes' => $notes,
|
||||
'native_currency_id' => null === $default ? null : (string) $default->id,
|
||||
'native_currency_code' => $default?->code,
|
||||
'native_currency_symbol' => $default?->symbol,
|
||||
'native_currency_decimal_places' => $default?->decimal_places,
|
||||
'spent' => $spent,
|
||||
'earned' => $earned,
|
||||
'links' => [
|
||||
[
|
||||
'rel' => 'self',
|
||||
'uri' => '/categories/'.$category->id,
|
||||
|
||||
@@ -40,7 +40,7 @@ class CurrencyTransformer extends AbstractTransformer
|
||||
'id' => $currency->id,
|
||||
'created_at' => $currency->created_at->toAtomString(),
|
||||
'updated_at' => $currency->updated_at->toAtomString(),
|
||||
'default' => $currency->userGroupDefault,
|
||||
'native' => $currency->userGroupNative,
|
||||
'enabled' => $currency->userGroupEnabled,
|
||||
'name' => $currency->name,
|
||||
'code' => $currency->code,
|
||||
|
||||
127
app/Transformers/UserGroupTransformer.php
Normal file
127
app/Transformers/UserGroupTransformer.php
Normal file
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* UserGroupTransformer.php
|
||||
* Copyright (c) 2023 james@firefly-iii.org
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Transformers;
|
||||
|
||||
use FireflyIII\Enums\UserRoleEnum;
|
||||
use FireflyIII\Models\GroupMembership;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use FireflyIII\Transformers\V2\AbstractTransformer;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
/**
|
||||
* Class UserGroupTransformer
|
||||
*/
|
||||
class UserGroupTransformer extends AbstractTransformer
|
||||
{
|
||||
private array $inUse;
|
||||
private array $memberships;
|
||||
private array $membershipsVisible;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->memberships = [];
|
||||
$this->membershipsVisible = [];
|
||||
$this->inUse = [];
|
||||
}
|
||||
|
||||
public function collectMetaData(Collection $objects): Collection
|
||||
{
|
||||
if (auth()->check()) {
|
||||
// collect memberships so they can be listed in the group.
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
/** @var UserGroup $userGroup */
|
||||
foreach ($objects as $userGroup) {
|
||||
$userGroupId = $userGroup->id;
|
||||
$this->inUse[$userGroupId] = $user->user_group_id === $userGroupId;
|
||||
$access = $user->hasRoleInGroupOrOwner($userGroup, UserRoleEnum::VIEW_MEMBERSHIPS) || $user->hasRole('owner');
|
||||
$this->membershipsVisible[$userGroupId] = $access;
|
||||
if ($access) {
|
||||
$groupMemberships = $userGroup->groupMemberships()->get();
|
||||
|
||||
/** @var GroupMembership $groupMembership */
|
||||
foreach ($groupMemberships as $groupMembership) {
|
||||
$this->memberships[$userGroupId][] = [
|
||||
'user_id' => (string) $groupMembership->user_id,
|
||||
'user_email' => $groupMembership->user->email,
|
||||
'role' => $groupMembership->userRole->title,
|
||||
'you' => $groupMembership->user_id === $user->id,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->mergeMemberships();
|
||||
}
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
private function mergeMemberships(): void
|
||||
{
|
||||
$new = [];
|
||||
foreach ($this->memberships as $groupId => $members) {
|
||||
$new[$groupId] ??= [];
|
||||
|
||||
foreach ($members as $member) {
|
||||
$mail = $member['user_email'];
|
||||
$new[$groupId][$mail] ??= [
|
||||
'user_id' => $member['user_id'],
|
||||
'user_email' => $member['user_email'],
|
||||
'you' => $member['you'],
|
||||
'roles' => [],
|
||||
];
|
||||
$new[$groupId][$mail]['roles'][] = $member['role'];
|
||||
}
|
||||
}
|
||||
$this->memberships = $new;
|
||||
}
|
||||
|
||||
/**
|
||||
* Transform the user group.
|
||||
*/
|
||||
public function transform(UserGroup $userGroup): array
|
||||
{
|
||||
$currency = Amount::getDefaultCurrencyByUserGroup($userGroup);
|
||||
|
||||
return [
|
||||
'id' => $userGroup->id,
|
||||
'created_at' => $userGroup->created_at->toAtomString(),
|
||||
'updated_at' => $userGroup->updated_at->toAtomString(),
|
||||
'in_use' => $this->inUse[$userGroup->id] ?? false,
|
||||
'title' => $userGroup->title,
|
||||
'can_see_members' => $this->membershipsVisible[$userGroup->id] ?? false,
|
||||
'members' => array_values($this->memberships[$userGroup->id] ?? []),
|
||||
'native_currency_id' => (string) $currency->id,
|
||||
'native_currency_name' => $currency->name,
|
||||
'native_currency_code' => $currency->code,
|
||||
'native_currency_symbol' => $currency->symbol,
|
||||
'native_currency_decimal_places' => $currency->decimal_places,
|
||||
];
|
||||
// if the user has a specific role in this group, then collect the memberships.
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@ class CurrencyTransformer extends AbstractTransformer
|
||||
'id' => $currency->id,
|
||||
'created_at' => $currency->created_at->toAtomString(),
|
||||
'updated_at' => $currency->updated_at->toAtomString(),
|
||||
'default' => $currency->userGroupDefault,
|
||||
'native' => $currency->userGroupNative,
|
||||
'enabled' => $currency->userGroupEnabled,
|
||||
'name' => $currency->name,
|
||||
'code' => $currency->code,
|
||||
|
||||
@@ -820,7 +820,7 @@ class FireflyValidator extends Validator
|
||||
}
|
||||
$query->where('piggy_banks.name', $value);
|
||||
|
||||
return 0 === $query->count('piggy_banks.*');
|
||||
return 0 === $query->count();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
324
composer.lock
generated
324
composer.lock
generated
@@ -1874,16 +1874,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v11.37.0",
|
||||
"version": "v11.38.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "6cb103d2024b087eae207654b3f4b26646119ba5"
|
||||
"reference": "9d290aa90fcad44048bedca5219d2b872e98772a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/6cb103d2024b087eae207654b3f4b26646119ba5",
|
||||
"reference": "6cb103d2024b087eae207654b3f4b26646119ba5",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/9d290aa90fcad44048bedca5219d2b872e98772a",
|
||||
"reference": "9d290aa90fcad44048bedca5219d2b872e98772a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2084,20 +2084,20 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2025-01-02T20:10:21+00:00"
|
||||
"time": "2025-01-15T00:06:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/passport",
|
||||
"version": "v12.3.1",
|
||||
"version": "v12.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/passport.git",
|
||||
"reference": "0d95ca9cc9c80bdf64d04dcf04542720e3d5d55c"
|
||||
"reference": "b06a413cb18d07123ced88ba8caa432d40e3bb8c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/passport/zipball/0d95ca9cc9c80bdf64d04dcf04542720e3d5d55c",
|
||||
"reference": "0d95ca9cc9c80bdf64d04dcf04542720e3d5d55c",
|
||||
"url": "https://api.github.com/repos/laravel/passport/zipball/b06a413cb18d07123ced88ba8caa432d40e3bb8c",
|
||||
"reference": "b06a413cb18d07123ced88ba8caa432d40e3bb8c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2160,20 +2160,20 @@
|
||||
"issues": "https://github.com/laravel/passport/issues",
|
||||
"source": "https://github.com/laravel/passport"
|
||||
},
|
||||
"time": "2024-11-11T20:15:28+00:00"
|
||||
"time": "2025-01-13T17:40:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
"version": "v0.3.2",
|
||||
"version": "v0.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/prompts.git",
|
||||
"reference": "0e0535747c6b8d6d10adca8b68293cf4517abb0f"
|
||||
"reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/0e0535747c6b8d6d10adca8b68293cf4517abb0f",
|
||||
"reference": "0e0535747c6b8d6d10adca8b68293cf4517abb0f",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/749395fcd5f8f7530fe1f00dfa84eb22c83d94ea",
|
||||
"reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2217,9 +2217,9 @@
|
||||
"description": "Add beautiful and user-friendly forms to your command-line applications.",
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/prompts/issues",
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.2"
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.3"
|
||||
},
|
||||
"time": "2024-11-12T14:59:47+00:00"
|
||||
"time": "2024-12-30T15:53:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
@@ -2802,16 +2802,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/csv",
|
||||
"version": "9.20.1",
|
||||
"version": "9.21.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/csv.git",
|
||||
"reference": "491d1e79e973a7370c7571dc0fe4a7241f4936ee"
|
||||
"reference": "72196d11ebba22d868954cb39c0c7346207430cc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/csv/zipball/491d1e79e973a7370c7571dc0fe4a7241f4936ee",
|
||||
"reference": "491d1e79e973a7370c7571dc0fe4a7241f4936ee",
|
||||
"url": "https://api.github.com/repos/thephpleague/csv/zipball/72196d11ebba22d868954cb39c0c7346207430cc",
|
||||
"reference": "72196d11ebba22d868954cb39c0c7346207430cc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2885,7 +2885,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-18T10:11:15+00:00"
|
||||
"time": "2025-01-08T19:27:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/event",
|
||||
@@ -3705,12 +3705,12 @@
|
||||
"version": "3.8.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"url": "https://github.com/CarbonPHP/carbon.git",
|
||||
"reference": "129700ed449b1f02d70272d2ac802357c8c30c58"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58",
|
||||
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58",
|
||||
"reference": "129700ed449b1f02d70272d2ac802357c8c30c58",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -10192,29 +10192,27 @@
|
||||
},
|
||||
{
|
||||
"name": "barryvdh/laravel-ide-helper",
|
||||
"version": "v3.4.0",
|
||||
"version": "v3.5.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/barryvdh/laravel-ide-helper.git",
|
||||
"reference": "2a41415f01bf3c409d200f6cdd940c1e7d86cfd3"
|
||||
"reference": "980a87e250fc2a7558bc46e07f61c7594500ea53"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/2a41415f01bf3c409d200f6cdd940c1e7d86cfd3",
|
||||
"reference": "2a41415f01bf3c409d200f6cdd940c1e7d86cfd3",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/980a87e250fc2a7558bc46e07f61c7594500ea53",
|
||||
"reference": "980a87e250fc2a7558bc46e07f61c7594500ea53",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"barryvdh/reflection-docblock": "^2.2",
|
||||
"barryvdh/reflection-docblock": "^2.3",
|
||||
"composer/class-map-generator": "^1.0",
|
||||
"ext-json": "*",
|
||||
"illuminate/console": "^11.15",
|
||||
"illuminate/database": "^11.15",
|
||||
"illuminate/filesystem": "^11.15",
|
||||
"illuminate/support": "^11.15",
|
||||
"nikic/php-parser": "^4.18 || ^5",
|
||||
"php": "^8.2",
|
||||
"phpdocumentor/type-resolver": "^1.1.0"
|
||||
"php": "^8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-pdo_sqlite": "*",
|
||||
@@ -10225,7 +10223,8 @@
|
||||
"orchestra/testbench": "^9.2",
|
||||
"phpunit/phpunit": "^10.5",
|
||||
"spatie/phpunit-snapshot-assertions": "^4 || ^5",
|
||||
"vimeo/psalm": "^5.4"
|
||||
"vimeo/psalm": "^5.4",
|
||||
"vlucas/phpdotenv": "^5"
|
||||
},
|
||||
"suggest": {
|
||||
"illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10|^11)."
|
||||
@@ -10238,7 +10237,7 @@
|
||||
]
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "3.4-dev"
|
||||
"dev-master": "3.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -10260,6 +10259,7 @@
|
||||
"keywords": [
|
||||
"autocomplete",
|
||||
"codeintel",
|
||||
"dev",
|
||||
"helper",
|
||||
"ide",
|
||||
"laravel",
|
||||
@@ -10270,7 +10270,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/barryvdh/laravel-ide-helper/issues",
|
||||
"source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.4.0"
|
||||
"source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10282,20 +10282,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-29T12:10:58+00:00"
|
||||
"time": "2025-01-14T09:07:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "barryvdh/reflection-docblock",
|
||||
"version": "v2.3.0",
|
||||
"version": "v2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/barryvdh/ReflectionDocBlock.git",
|
||||
"reference": "818be8de6af4d16ef3ad51ea9234b3d37026ee5f"
|
||||
"reference": "b6ff9f93603561f50e53b64310495d20b8dff5d8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/818be8de6af4d16ef3ad51ea9234b3d37026ee5f",
|
||||
"reference": "818be8de6af4d16ef3ad51ea9234b3d37026ee5f",
|
||||
"url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/b6ff9f93603561f50e53b64310495d20b8dff5d8",
|
||||
"reference": "b6ff9f93603561f50e53b64310495d20b8dff5d8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10332,9 +10332,9 @@
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.3.0"
|
||||
"source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.3.1"
|
||||
},
|
||||
"time": "2024-12-30T10:35:04+00:00"
|
||||
"time": "2025-01-18T19:26:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "cloudcreativity/json-api-testing",
|
||||
@@ -10546,51 +10546,6 @@
|
||||
],
|
||||
"time": "2024-11-12T16:29:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/deprecations.git",
|
||||
"reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
|
||||
"reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9 || ^12",
|
||||
"phpstan/phpstan": "1.4.10 || 2.0.3",
|
||||
"phpstan/phpstan-phpunit": "^1.0 || ^2",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"psr/log": "^1 || ^2 || ^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Deprecations\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
|
||||
"homepage": "https://www.doctrine-project.org/",
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.4"
|
||||
},
|
||||
"time": "2024-12-07T21:18:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fakerphp/faker",
|
||||
"version": "v1.24.1",
|
||||
@@ -11250,117 +11205,6 @@
|
||||
},
|
||||
"time": "2022-02-21T01:04:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-common",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-2.x": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jaap van Otterdijk",
|
||||
"email": "opensource@ijaap.nl"
|
||||
}
|
||||
],
|
||||
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
||||
"homepage": "http://www.phpdoc.org",
|
||||
"keywords": [
|
||||
"FQSEN",
|
||||
"phpDocumentor",
|
||||
"phpdoc",
|
||||
"reflection",
|
||||
"static analysis"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
|
||||
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
|
||||
},
|
||||
"time": "2020-06-27T09:03:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
"version": "1.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||
"reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a",
|
||||
"reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^1.0",
|
||||
"php": "^7.3 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.0",
|
||||
"phpstan/phpdoc-parser": "^1.18|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-tokenizer": "*",
|
||||
"phpbench/phpbench": "^1.2",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"rector/rector": "^0.13.9",
|
||||
"vimeo/psalm": "^4.25"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-1.x": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
}
|
||||
],
|
||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0"
|
||||
},
|
||||
"time": "2024-11-09T15:12:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpmyadmin/sql-parser",
|
||||
"version": "5.10.2",
|
||||
@@ -11496,65 +11340,18 @@
|
||||
},
|
||||
"time": "2024-09-04T20:21:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "c00d78fb6b29658347f9d37ebe104bffadf36299"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299",
|
||||
"reference": "c00d78fb6b29658347f9d37ebe104bffadf36299",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.4 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "^2.0",
|
||||
"nikic/php-parser": "^5.3.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"phpstan/phpstan-phpunit": "^2.0",
|
||||
"phpstan/phpstan-strict-rules": "^2.0",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"symfony/process": "^5.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PHPStan\\PhpDocParser\\": [
|
||||
"src/"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0"
|
||||
},
|
||||
"time": "2024-10-13T11:29:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "2392d360fdf54ea253aa6c68cad1d4ba2e54e927"
|
||||
"reference": "cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/2392d360fdf54ea253aa6c68cad1d4ba2e54e927",
|
||||
"reference": "2392d360fdf54ea253aa6c68cad1d4ba2e54e927",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7",
|
||||
"reference": "cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -11599,7 +11396,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-31T07:30:03+00:00"
|
||||
"time": "2025-01-05T16:43:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan-deprecation-rules",
|
||||
@@ -12021,16 +11818,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "11.5.2",
|
||||
"version": "11.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "153d0531b9f7e883c5053160cad6dd5ac28140b3"
|
||||
"reference": "30e319e578a7b5da3543073e30002bf82042f701"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/153d0531b9f7e883c5053160cad6dd5ac28140b3",
|
||||
"reference": "153d0531b9f7e883c5053160cad6dd5ac28140b3",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/30e319e578a7b5da3543073e30002bf82042f701",
|
||||
"reference": "30e319e578a7b5da3543073e30002bf82042f701",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12051,7 +11848,7 @@
|
||||
"phpunit/php-timer": "^7.0.1",
|
||||
"sebastian/cli-parser": "^3.0.2",
|
||||
"sebastian/code-unit": "^3.0.2",
|
||||
"sebastian/comparator": "^6.2.1",
|
||||
"sebastian/comparator": "^6.3.0",
|
||||
"sebastian/diff": "^6.0.2",
|
||||
"sebastian/environment": "^7.2.0",
|
||||
"sebastian/exporter": "^6.3.0",
|
||||
@@ -12102,7 +11899,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.2"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12118,7 +11915,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-21T05:51:08+00:00"
|
||||
"time": "2025-01-13T09:36:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
@@ -12292,16 +12089,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
"version": "6.2.1",
|
||||
"version": "6.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "43d129d6a0f81c78bee378b46688293eb7ea3739"
|
||||
"reference": "d4e47a769525c4dd38cea90e5dcd435ddbbc7115"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739",
|
||||
"reference": "43d129d6a0f81c78bee378b46688293eb7ea3739",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/d4e47a769525c4dd38cea90e5dcd435ddbbc7115",
|
||||
"reference": "d4e47a769525c4dd38cea90e5dcd435ddbbc7115",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12314,6 +12111,9 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^11.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-bcmath": "For comparing BcMath\\Number objects"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@@ -12357,7 +12157,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
||||
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1"
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/6.3.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12365,7 +12165,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-31T05:30:08+00:00"
|
||||
"time": "2025-01-06T10:28:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/complexity",
|
||||
|
||||
@@ -81,7 +81,7 @@ return [
|
||||
'running_balance_column' => env('USE_RUNNING_BALANCE', false),
|
||||
// see cer.php for exchange rates feature flag.
|
||||
],
|
||||
'version' => 'develop/2025-01-05',
|
||||
'version' => 'develop/2025-01-19',
|
||||
'api_version' => '2.1.0', // field is no longer used.
|
||||
'db_version' => 25,
|
||||
|
||||
|
||||
@@ -137,6 +137,12 @@ return [
|
||||
],
|
||||
'v1' => [
|
||||
'firefly' => [
|
||||
'administrations_page_title',
|
||||
'administrations_index_menu',
|
||||
'temp_administrations_introduction',
|
||||
'administration_currency_form_help',
|
||||
'administrations_page_edit_sub_title_js',
|
||||
'table',
|
||||
'welcome_back',
|
||||
'flash_error',
|
||||
'flash_warning',
|
||||
@@ -146,6 +152,7 @@ return [
|
||||
'select_source_account',
|
||||
'split_transaction_title',
|
||||
'errors_submission',
|
||||
'is_reconciled',
|
||||
'split',
|
||||
'single_split',
|
||||
'transaction_stored_link',
|
||||
@@ -284,6 +291,7 @@ return [
|
||||
'url',
|
||||
'active',
|
||||
'interest_date',
|
||||
'administration_currency',
|
||||
'title',
|
||||
'date',
|
||||
'book_date',
|
||||
@@ -301,7 +309,9 @@ return [
|
||||
'rate',
|
||||
],
|
||||
'list' => [
|
||||
'title',
|
||||
'active',
|
||||
'native_currency',
|
||||
'trigger',
|
||||
'response',
|
||||
'delivery',
|
||||
|
||||
374
package-lock.json
generated
374
package-lock.json
generated
@@ -79,9 +79,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/compat-data": {
|
||||
"version": "7.26.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz",
|
||||
"integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
|
||||
"integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -130,14 +130,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.26.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz",
|
||||
"integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
|
||||
"integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.26.3",
|
||||
"@babel/types": "^7.26.3",
|
||||
"@babel/parser": "^7.26.5",
|
||||
"@babel/types": "^7.26.5",
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"jsesc": "^3.0.2"
|
||||
@@ -160,13 +160,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-compilation-targets": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
|
||||
"integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
|
||||
"integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/compat-data": "^7.25.9",
|
||||
"@babel/compat-data": "^7.26.5",
|
||||
"@babel/helper-validator-option": "^7.25.9",
|
||||
"browserslist": "^4.24.0",
|
||||
"lru-cache": "^5.1.1",
|
||||
@@ -323,9 +323,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-plugin-utils": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
|
||||
"integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
|
||||
"integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -351,15 +351,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-replace-supers": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz",
|
||||
"integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz",
|
||||
"integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-member-expression-to-functions": "^7.25.9",
|
||||
"@babel/helper-optimise-call-expression": "^7.25.9",
|
||||
"@babel/traverse": "^7.25.9"
|
||||
"@babel/traverse": "^7.26.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@@ -442,13 +442,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.26.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz",
|
||||
"integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz",
|
||||
"integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.3"
|
||||
"@babel/types": "^7.26.5"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
@@ -703,13 +703,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-transform-block-scoped-functions": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz",
|
||||
"integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz",
|
||||
"integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.25.9"
|
||||
"@babel/helper-plugin-utils": "^7.26.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@@ -1123,13 +1123,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz",
|
||||
"integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==",
|
||||
"version": "7.26.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz",
|
||||
"integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.25.9"
|
||||
"@babel/helper-plugin-utils": "^7.26.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@@ -1655,17 +1655,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.26.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz",
|
||||
"integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz",
|
||||
"integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.26.3",
|
||||
"@babel/parser": "^7.26.3",
|
||||
"@babel/generator": "^7.26.5",
|
||||
"@babel/parser": "^7.26.5",
|
||||
"@babel/template": "^7.25.9",
|
||||
"@babel/types": "^7.26.3",
|
||||
"@babel/types": "^7.26.5",
|
||||
"debug": "^4.3.1",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
@@ -1674,9 +1674,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.26.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz",
|
||||
"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz",
|
||||
"integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -2591,9 +2591,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz",
|
||||
"integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz",
|
||||
"integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -2605,9 +2605,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz",
|
||||
"integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz",
|
||||
"integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2619,9 +2619,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz",
|
||||
"integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz",
|
||||
"integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2633,9 +2633,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz",
|
||||
"integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz",
|
||||
"integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2647,9 +2647,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz",
|
||||
"integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz",
|
||||
"integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2661,9 +2661,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz",
|
||||
"integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz",
|
||||
"integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2675,9 +2675,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz",
|
||||
"integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz",
|
||||
"integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -2689,9 +2689,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz",
|
||||
"integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz",
|
||||
"integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -2703,9 +2703,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz",
|
||||
"integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz",
|
||||
"integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2717,9 +2717,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz",
|
||||
"integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz",
|
||||
"integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2731,9 +2731,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz",
|
||||
"integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz",
|
||||
"integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
@@ -2745,9 +2745,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz",
|
||||
"integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz",
|
||||
"integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -2759,9 +2759,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz",
|
||||
"integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz",
|
||||
"integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -2773,9 +2773,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz",
|
||||
"integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz",
|
||||
"integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -2787,9 +2787,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz",
|
||||
"integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz",
|
||||
"integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2801,9 +2801,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz",
|
||||
"integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz",
|
||||
"integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2815,9 +2815,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz",
|
||||
"integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz",
|
||||
"integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2829,9 +2829,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz",
|
||||
"integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz",
|
||||
"integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -2843,9 +2843,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz",
|
||||
"integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz",
|
||||
"integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -3007,9 +3007,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/express-serve-static-core": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.3.tgz",
|
||||
"integrity": "sha512-JEhMNwUJt7bw728CydvYzntD0XJeTmDnvwLlbfbAhE7Tbslm/ax6bdIiUwTgeVlZTsJQPwZwKpAkyDtIjsvx3g==",
|
||||
"version": "5.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz",
|
||||
"integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3061,9 +3061,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-9.0.0.tgz",
|
||||
"integrity": "sha512-4IaT+BdPUAFf/AAy3XlFAbqGk4RawhdidxWO5XTe+PJAYAr4d7m2FHiqyEPXbDpwS+IaLIJq5AIjLE9HcwMGBg==",
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-9.0.1.tgz",
|
||||
"integrity": "sha512-xMWpvrUhtYxl6EeW+UhVH3rwUKhCRx21XddcoWByjDAasXZT5pQaCn0YVnXoTijX5hlTrGqV4TGQL/Htpp00+w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3133,9 +3133,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.10.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz",
|
||||
"integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==",
|
||||
"version": "22.10.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz",
|
||||
"integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3160,9 +3160,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/qs": {
|
||||
"version": "6.9.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
|
||||
"integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==",
|
||||
"version": "6.9.18",
|
||||
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz",
|
||||
"integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
@@ -4158,9 +4158,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/bootstrap5-autocomplete": {
|
||||
"version": "1.1.34",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap5-autocomplete/-/bootstrap5-autocomplete-1.1.34.tgz",
|
||||
"integrity": "sha512-Z7+ig9sL5e8PiApQ2JA7BizevVLcsdpTpJboEwcFELg1IBDEU+LdbH6YnYFA2dgRxFkclCttCR8UPC9CbBpZiQ==",
|
||||
"version": "1.1.35",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap5-autocomplete/-/bootstrap5-autocomplete-1.1.35.tgz",
|
||||
"integrity": "sha512-vZAOef3lGrpGGnnIKTJlqiqv6wsx0Wr31/mc010mJmHF1eXJd28jzfGn7ol8eOI/7FiDcm3wd/1VTWku40vLbQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/bootstrap5-tags": {
|
||||
@@ -4288,9 +4288,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.24.3",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz",
|
||||
"integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==",
|
||||
"version": "4.24.4",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
|
||||
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -4448,9 +4448,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001690",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz",
|
||||
"integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==",
|
||||
"version": "1.0.30001695",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz",
|
||||
"integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -4892,13 +4892,13 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/core-js-compat": {
|
||||
"version": "3.39.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz",
|
||||
"integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==",
|
||||
"version": "3.40.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz",
|
||||
"integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"browserslist": "^4.24.2"
|
||||
"browserslist": "^4.24.3"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
@@ -5663,9 +5663,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.76",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz",
|
||||
"integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==",
|
||||
"version": "1.5.83",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz",
|
||||
"integrity": "sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
@@ -5797,9 +5797,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/es-object-atoms": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
|
||||
"integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
||||
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -6081,9 +6081,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-glob": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
||||
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
|
||||
"integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -6091,7 +6091,7 @@
|
||||
"@nodelib/fs.walk": "^1.2.3",
|
||||
"glob-parent": "^5.1.2",
|
||||
"merge2": "^1.3.0",
|
||||
"micromatch": "^4.0.4"
|
||||
"micromatch": "^4.0.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.6.0"
|
||||
@@ -6105,10 +6105,20 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-uri": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
|
||||
"integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==",
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz",
|
||||
"integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/fastify"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/fastify"
|
||||
}
|
||||
],
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/fastest-levenshtein": {
|
||||
@@ -6900,9 +6910,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/http-parser-js": {
|
||||
"version": "0.5.8",
|
||||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
|
||||
"integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
|
||||
"version": "0.5.9",
|
||||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz",
|
||||
"integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
@@ -6964,9 +6974,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/i18next": {
|
||||
"version": "24.2.0",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.0.tgz",
|
||||
"integrity": "sha512-ArJJTS1lV6lgKH7yEf4EpgNZ7+THl7bsGxxougPYiXRTJ/Fe1j08/TBpV9QsXCIYVfdE/HWG/xLezJ5DOlfBOA==",
|
||||
"version": "24.2.1",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.1.tgz",
|
||||
"integrity": "sha512-Q2wC1TjWcSikn1VAJg13UGIjc+okpFxQTxjVAymOnSA3RpttBQNMPf2ovcgoFVsV4QNxTfNZMAxorXZXsk4fBA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
@@ -8844,9 +8854,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.49",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
|
||||
"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
|
||||
"version": "8.5.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz",
|
||||
"integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -8864,7 +8874,7 @@
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"nanoid": "^3.3.8",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
@@ -9591,13 +9601,13 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.13.1",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz",
|
||||
"integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==",
|
||||
"version": "6.14.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
|
||||
"integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"side-channel": "^1.0.6"
|
||||
"side-channel": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
@@ -9977,9 +9987,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.29.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz",
|
||||
"integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==",
|
||||
"version": "4.30.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz",
|
||||
"integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -9993,25 +10003,25 @@
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.29.1",
|
||||
"@rollup/rollup-android-arm64": "4.29.1",
|
||||
"@rollup/rollup-darwin-arm64": "4.29.1",
|
||||
"@rollup/rollup-darwin-x64": "4.29.1",
|
||||
"@rollup/rollup-freebsd-arm64": "4.29.1",
|
||||
"@rollup/rollup-freebsd-x64": "4.29.1",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.29.1",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.29.1",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.29.1",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.29.1",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.29.1",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.29.1",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.29.1",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.29.1",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.29.1",
|
||||
"@rollup/rollup-linux-x64-musl": "4.29.1",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.29.1",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.29.1",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.29.1",
|
||||
"@rollup/rollup-android-arm-eabi": "4.30.1",
|
||||
"@rollup/rollup-android-arm64": "4.30.1",
|
||||
"@rollup/rollup-darwin-arm64": "4.30.1",
|
||||
"@rollup/rollup-darwin-x64": "4.30.1",
|
||||
"@rollup/rollup-freebsd-arm64": "4.30.1",
|
||||
"@rollup/rollup-freebsd-x64": "4.30.1",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.30.1",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.30.1",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.30.1",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.30.1",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.30.1",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.30.1",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.30.1",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.30.1",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.30.1",
|
||||
"@rollup/rollup-linux-x64-musl": "4.30.1",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.30.1",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.30.1",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.30.1",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
@@ -10067,9 +10077,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.83.1",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.83.1.tgz",
|
||||
"integrity": "sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==",
|
||||
"version": "1.83.4",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.83.4.tgz",
|
||||
"integrity": "sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -10104,13 +10114,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass/node_modules/readdirp": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
|
||||
"integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
|
||||
"integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 14.16.0"
|
||||
"node": ">= 14.18.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
@@ -11161,9 +11171,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
|
||||
"integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
|
||||
"integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -11182,7 +11192,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"escalade": "^3.2.0",
|
||||
"picocolors": "^1.1.0"
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"update-browserslist-db": "cli.js"
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
"/build/webhooks/show.js": "/build/webhooks/show.js",
|
||||
"/build/exchange-rates/index.js": "/build/exchange-rates/index.js",
|
||||
"/build/exchange-rates/rates.js": "/build/exchange-rates/rates.js",
|
||||
"/build/administrations/index.js": "/build/administrations/index.js",
|
||||
"/build/administrations/edit.js": "/build/administrations/edit.js",
|
||||
"/public/v1/js/administrations/edit.js": "/public/v1/js/administrations/edit.js",
|
||||
"/public/v1/js/administrations/edit.js.LICENSE.txt": "/public/v1/js/administrations/edit.js.LICENSE.txt",
|
||||
"/public/v1/js/administrations/index.js": "/public/v1/js/administrations/index.js",
|
||||
"/public/v1/js/administrations/index.js.LICENSE.txt": "/public/v1/js/administrations/index.js.LICENSE.txt",
|
||||
"/public/v1/js/app.js": "/public/v1/js/app.js",
|
||||
"/public/v1/js/app.js.LICENSE.txt": "/public/v1/js/app.js.LICENSE.txt",
|
||||
"/public/v1/js/app_vue.js": "/public/v1/js/app_vue.js",
|
||||
|
||||
39
resources/assets/v1/src/administrations/edit.js
Normal file
39
resources/assets/v1/src/administrations/edit.js
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* edit_transactions.js
|
||||
* Copyright (c) 2019 james@firefly-iii.org
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import Edit from "../components/administrations/Edit";
|
||||
|
||||
/**
|
||||
* First we will load Axios via bootstrap.js
|
||||
* jquery and bootstrap-sass preloaded in app.js
|
||||
* vue, uiv and vuei18n are in app_vue.js
|
||||
*/
|
||||
|
||||
require('../bootstrap');
|
||||
const i18n = require('../i18n');
|
||||
|
||||
let props = {};
|
||||
const app = new Vue({
|
||||
i18n,
|
||||
el: "#administrations_edit",
|
||||
render: (createElement) => {
|
||||
return createElement(Edit, {props: props})
|
||||
},
|
||||
});
|
||||
39
resources/assets/v1/src/administrations/index.js
Normal file
39
resources/assets/v1/src/administrations/index.js
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* edit_transactions.js
|
||||
* Copyright (c) 2019 james@firefly-iii.org
|
||||
*
|
||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import Index from "../components/administrations/Index";
|
||||
|
||||
/**
|
||||
* First we will load Axios via bootstrap.js
|
||||
* jquery and bootstrap-sass preloaded in app.js
|
||||
* vue, uiv and vuei18n are in app_vue.js
|
||||
*/
|
||||
|
||||
require('../bootstrap');
|
||||
const i18n = require('../i18n');
|
||||
|
||||
let props = {};
|
||||
const app = new Vue({
|
||||
i18n,
|
||||
el: "#administrations_index",
|
||||
render: (createElement) => {
|
||||
return createElement(Index, {props: props})
|
||||
},
|
||||
});
|
||||
173
resources/assets/v1/src/components/administrations/Edit.vue
Normal file
173
resources/assets/v1/src/components/administrations/Edit.vue
Normal file
@@ -0,0 +1,173 @@
|
||||
<!--
|
||||
- Index.vue
|
||||
- Copyright (c) 2022 james@firefly-iii.org
|
||||
-
|
||||
- This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
-
|
||||
- This program is free software: you can redistribute it and/or modify
|
||||
- it under the terms of the GNU Affero General Public License as
|
||||
- published by the Free Software Foundation, either version 3 of the
|
||||
- License, or (at your option) any later version.
|
||||
-
|
||||
- This program is distributed in the hope that it will be useful,
|
||||
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU Affero General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU Affero General Public License
|
||||
- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<form accept-charset="UTF-8" class="form-horizontal" enctype="multipart/form-data">
|
||||
<input name="_token" type="hidden" value="xxx">
|
||||
|
||||
<div v-if="error_message !== ''" class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="alert alert-danger alert-dismissible" role="alert">
|
||||
<button class="close" data-dismiss="alert" type="button" v-bind:aria-label="$t('firefly.close')"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<strong>{{ $t("firefly.flash_error") }}</strong> {{ error_message }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="success_message !== ''" class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="alert alert-success alert-dismissible" role="alert">
|
||||
<button class="close" data-dismiss="alert" type="button" v-bind:aria-label="$t('firefly.close')"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<strong>{{ $t("firefly.flash_success") }}</strong> <span v-html="success_message"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
{{ $t('firefly.administrations_page_edit_sub_title_js', {title: this.pageTitle}) }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ $t('firefly.temp_administrations_introduction') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
{{ $t('firefly.administrations_page_edit_sub_title_js', {title: this.pageTitle}) }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<Title :value=administration.title :error="errors.title" v-on:input="administration.title = $event"></Title>
|
||||
<UserGroupCurrency :value=administration.currency_id :error="errors.currency_id"
|
||||
v-on:input="administration.currency_id = $event"></UserGroupCurrency>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<div class="btn-group">
|
||||
<button id="submitButton" ref="submitButton" class="btn btn-success" @click="submit">
|
||||
{{ $t('firefly.submit') }}
|
||||
</button>
|
||||
</div>
|
||||
<p class="text-success" v-html="success_message"></p>
|
||||
<p class="text-danger" v-html="error_message"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Title from "../form/Title.vue";
|
||||
import WebhookTrigger from "../form/WebhookTrigger.vue";
|
||||
import UserGroupCurrency from "../form/UserGroupCurrency.vue";
|
||||
|
||||
export default {
|
||||
name: "Edit",
|
||||
components: {UserGroupCurrency, WebhookTrigger, Title},
|
||||
data() {
|
||||
return {
|
||||
pageTitle: '',
|
||||
administration: {
|
||||
title: '',
|
||||
currency_id: 0,
|
||||
},
|
||||
errors: {
|
||||
title: [],
|
||||
currency_id: [],
|
||||
},
|
||||
error_message: '',
|
||||
success_message: '',
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
const page = window.location.href.split('/');
|
||||
const administrationId = parseInt(page[page.length - 1]);
|
||||
this.downloadAdministration(administrationId);
|
||||
},
|
||||
methods: {
|
||||
downloadAdministration: function (id) {
|
||||
axios.get("./api/v1/user-groups/" + id).then((response) => {
|
||||
let current = response.data.data;
|
||||
this.administration = {
|
||||
id: current.id,
|
||||
title: current.attributes.title,
|
||||
currency_id: parseInt(current.attributes.native_currency_id),
|
||||
currency_code: current.attributes.native_currency_code,
|
||||
currency_name: current.attributes.native_currency_name,
|
||||
};
|
||||
this.pageTitle = this.administration.title;
|
||||
});
|
||||
},
|
||||
submit: function (e) {
|
||||
// reset messages
|
||||
this.error_message = '';
|
||||
this.success_message = '';
|
||||
this.errors = {
|
||||
title: [],
|
||||
currency_id: [],
|
||||
};
|
||||
|
||||
// disable button
|
||||
$('#submitButton').prop("disabled", true);
|
||||
|
||||
// collect data
|
||||
let data = {
|
||||
title: this.administration.title,
|
||||
native_currency_id: parseInt(this.administration.currency_id),
|
||||
};
|
||||
|
||||
// post!
|
||||
axios.put('./api/v1/user-groups/' + this.administration.id, data).then((response) => {
|
||||
let administrationId = parseInt(response.data.data.id);
|
||||
window.location.href = './administrations?user_group_id=' + administrationId + '&message=updated';
|
||||
}).catch((error) => {
|
||||
|
||||
this.error_message = error.response.data.message;
|
||||
this.errors.title = error.response.data.errors.title;
|
||||
this.errors.native_currency_id = error.response.data.errors.native_currency_id;
|
||||
|
||||
// enable button again
|
||||
$('#submitButton').prop("disabled", false);
|
||||
|
||||
});
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
127
resources/assets/v1/src/components/administrations/Index.vue
Normal file
127
resources/assets/v1/src/components/administrations/Index.vue
Normal file
@@ -0,0 +1,127 @@
|
||||
<!--
|
||||
- Index.vue
|
||||
- Copyright (c) 2022 james@firefly-iii.org
|
||||
-
|
||||
- This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
-
|
||||
- This program is free software: you can redistribute it and/or modify
|
||||
- it under the terms of the GNU Affero General Public License as
|
||||
- published by the Free Software Foundation, either version 3 of the
|
||||
- License, or (at your option) any later version.
|
||||
-
|
||||
- This program is distributed in the hope that it will be useful,
|
||||
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU Affero General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU Affero General Public License
|
||||
- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
{{ $t('firefly.administrations_index_menu') }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ $t('firefly.temp_administrations_introduction') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
{{ $t('firefly.table') }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="box-body no-padding">
|
||||
<table class="table table-responsive table-hover" v-if="administrations.length > 0"
|
||||
aria-label="A table.">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ $t('list.title') }}</th>
|
||||
<th>{{ $t('list.native_currency') }}</th>
|
||||
<th class="hidden-sm hidden-xs"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="administration in administrations" :key="administration.id">
|
||||
<td>
|
||||
<span v-text="administration.title"></span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-text="administration.currency_name"></span> (<span v-text="administration.currency_code"></span>)
|
||||
</td>
|
||||
<td class="hidden-sm hidden-xs">
|
||||
<div class="btn-group btn-group-xs pull-right">
|
||||
<button type="button" class="btn btn-default dropdown-toggle"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{{ $t('firefly.actions') }} <span class="caret"></span></button>
|
||||
<ul class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<li><a :href="'./administrations/edit/' + administration.id"><span class="fa fa-fw fa-pencil"></span>
|
||||
{{ $t('firefly.edit') }}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Index",
|
||||
data() {
|
||||
return {
|
||||
administrations: [],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getAdministrations();
|
||||
},
|
||||
methods: {
|
||||
getAdministrations: function () {
|
||||
this.administrations = [];
|
||||
this.downloadAdministrations(1);
|
||||
},
|
||||
|
||||
downloadAdministrations: function (page) {
|
||||
axios.get("./api/v1/user-groups?page=" + page).then((response) => {
|
||||
for (let i in response.data.data) {
|
||||
if (response.data.data.hasOwnProperty(i)) {
|
||||
let current = response.data.data[i];
|
||||
let administration = {
|
||||
id: current.id,
|
||||
title: current.attributes.title,
|
||||
currency_code: current.attributes.native_currency_code,
|
||||
currency_name: current.attributes.native_currency_name,
|
||||
};
|
||||
this.administrations.push(administration);
|
||||
}
|
||||
}
|
||||
|
||||
if (response.data.meta.pagination.current_page < response.data.meta.pagination.total_pages) {
|
||||
this.downloadAdministrations(response.data.meta.pagination.current_page + 1);
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -203,16 +203,16 @@ export default {
|
||||
return ('' === this.rates[index].rate && '' === this.rates[index].inverse) || this.updating;
|
||||
},
|
||||
updateRate: function (index) {
|
||||
console.log('Update!');
|
||||
console.log(this.rates[index].key);
|
||||
// console.log('Update!');
|
||||
// console.log(this.rates[index].key);
|
||||
let parts = this.spliceKey(this.rates[index].key);
|
||||
if (0 === parts.length) {
|
||||
return;
|
||||
}
|
||||
if ('' !== this.rates[index].rate) {
|
||||
// update rate
|
||||
console.log('Rate is ' + this.rates[index].rate);
|
||||
console.log('ID is ' + this.rates[index].rate_id);
|
||||
// console.log('Rate is ' + this.rates[index].rate);
|
||||
// console.log('ID is ' + this.rates[index].rate_id);
|
||||
this.updating = true;
|
||||
axios.put("./api/v2/exchange-rates/" + this.rates[index].rate_id, {rate: this.rates[index].rate})
|
||||
.then(() => {
|
||||
@@ -221,8 +221,8 @@ export default {
|
||||
}
|
||||
if ('' !== this.rates[index].inverse) {
|
||||
// update inverse
|
||||
console.log('Inverse is ' + this.rates[index].inverse);
|
||||
console.log('Inverse ID is ' + this.rates[index].inverse_id);
|
||||
// console.log('Inverse is ' + this.rates[index].inverse);
|
||||
// console.log('Inverse ID is ' + this.rates[index].inverse_id);
|
||||
this.updating = true;
|
||||
axios.put("./api/v2/exchange-rates/" + this.rates[index].inverse_id, {rate: this.rates[index].inverse})
|
||||
.then(() => {
|
||||
@@ -231,12 +231,12 @@ export default {
|
||||
}
|
||||
},
|
||||
deleteRate: function (index) {
|
||||
console.log(this.rates[index].key);
|
||||
// console.log(this.rates[index].key);
|
||||
let parts = this.spliceKey(this.rates[index].key);
|
||||
if (0 === parts.length) {
|
||||
return;
|
||||
}
|
||||
console.log(parts);
|
||||
// console.log(parts);
|
||||
|
||||
// delete A to B
|
||||
axios.delete("./api/v2/exchange-rates/rates/" + parts.from + '/' + parts.to + '?date=' + format(parts.date, 'yyyy-MM-dd'));
|
||||
@@ -271,7 +271,7 @@ export default {
|
||||
}
|
||||
});
|
||||
axios.get("./api/v2/currencies/" + this.to_code).then((response) => {
|
||||
console.log(response.data.data);
|
||||
// console.log(response.data.data);
|
||||
this.to = {
|
||||
id: response.data.data.id,
|
||||
code: response.data.data.attributes.code,
|
||||
@@ -295,16 +295,16 @@ export default {
|
||||
let rate_id = current.id;
|
||||
let inverse_id = '0';
|
||||
let key = from_code + '_' + to_code + '_' + format(date, 'yyyy-MM-dd');
|
||||
console.log('Key is now "' + key + '"');
|
||||
// console.log('Key is now "' + key + '"');
|
||||
|
||||
// perhaps the returned rate is actually the inverse rate.
|
||||
if (from_code === this.to_code && to_code === this.from_code) {
|
||||
console.log('Inverse rate found!');
|
||||
// console.log('Inverse rate found!');
|
||||
key = to_code + '_' + from_code + '_' + format(date, 'yyyy-MM-dd');
|
||||
rate = '';
|
||||
inverse = current.attributes.rate;
|
||||
inverse_id = current.id;
|
||||
console.log('Key updated to "' + key + '"');
|
||||
// console.log('Key updated to "' + key + '"');
|
||||
}
|
||||
|
||||
if (!this.tempRates.hasOwnProperty(key)) {
|
||||
|
||||
@@ -59,7 +59,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
handleInput() {
|
||||
console.log(this.active);
|
||||
// console.log(this.active);
|
||||
this.$emit('input', this.active);
|
||||
},
|
||||
},
|
||||
|
||||
107
resources/assets/v1/src/components/form/UserGroupCurrency.vue
Normal file
107
resources/assets/v1/src/components/form/UserGroupCurrency.vue
Normal file
@@ -0,0 +1,107 @@
|
||||
<!--
|
||||
- WebhookDelivery.vue
|
||||
- Copyright (c) 2022 james@firefly-iii.org
|
||||
-
|
||||
- This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
-
|
||||
- This program is free software: you can redistribute it and/or modify
|
||||
- it under the terms of the GNU Affero General Public License as
|
||||
- published by the Free Software Foundation, either version 3 of the
|
||||
- License, or (at your option) any later version.
|
||||
-
|
||||
- This program is distributed in the hope that it will be useful,
|
||||
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU Affero General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU Affero General Public License
|
||||
- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="form-group" v-bind:class="{ 'has-error': hasError()}">
|
||||
<label class="col-sm-4 control-label">
|
||||
{{ $t('form.administration_currency') }}
|
||||
</label>
|
||||
<div class="col-sm-8">
|
||||
<select
|
||||
v-model="currency"
|
||||
:title="$t('form.administration_currency')"
|
||||
class="form-control"
|
||||
name="user_group_currency"
|
||||
>
|
||||
<option v-for="currency in this.currencies"
|
||||
:label="currency.name"
|
||||
:value="currency.id">{{ currency.name }}
|
||||
</option>
|
||||
</select>
|
||||
<p class="help-block" v-text="$t('firefly.administration_currency_form_help')"></p>
|
||||
<ul v-for="error in this.error" class="list-unstyled">
|
||||
<li class="text-danger">{{ error }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "UserGroupCurrency",
|
||||
data() {
|
||||
return {
|
||||
currency : 0,
|
||||
currencies: [
|
||||
|
||||
],
|
||||
};
|
||||
},
|
||||
props: {
|
||||
error: {
|
||||
type: Array,
|
||||
required: true,
|
||||
default() {
|
||||
return []
|
||||
}
|
||||
},
|
||||
value: {
|
||||
type: Number,
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.currency = this.value;
|
||||
this.downloadCurrencies(1);
|
||||
},
|
||||
watch: {
|
||||
value() {
|
||||
this.currency = this.value;
|
||||
},
|
||||
currency(newValue) {
|
||||
this.$emit('input', newValue);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
downloadCurrencies: function (page) {
|
||||
axios.get("./api/v1/currencies?enabled=1&page=" + page).then((response) => {
|
||||
for (let i in response.data.data) {
|
||||
if (response.data.data.hasOwnProperty(i)) {
|
||||
let current = response.data.data[i];
|
||||
let currency = {
|
||||
id: current.id,
|
||||
name: current.attributes.name,
|
||||
code: current.attributes.code,
|
||||
};
|
||||
this.currencies.push(currency);
|
||||
}
|
||||
}
|
||||
|
||||
if (response.data.meta.pagination.current_page < response.data.meta.pagination.total_pages) {
|
||||
this.downloadCurrencies(parseInt(response.data.meta.pagination.current_page) + 1);
|
||||
}
|
||||
});
|
||||
},
|
||||
hasError() {
|
||||
return this.error?.length > 0;
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -887,7 +887,7 @@ export default {
|
||||
|
||||
deleteTransaction: function (index, event) {
|
||||
event.preventDefault();
|
||||
console.log('Remove transaction.');
|
||||
// console.log('Remove transaction.');
|
||||
this.transactions.splice(index, 1);
|
||||
},
|
||||
limitSourceType: function (type) {
|
||||
|
||||
@@ -154,6 +154,10 @@
|
||||
:transactionType="transactionType"
|
||||
v-bind:title="$t('form.foreign_amount')"
|
||||
></foreign-amount>
|
||||
<reconciled v-show="isReconciled"
|
||||
v-model="transaction.reconciled"
|
||||
:error="transaction.errors.reconciled"
|
||||
></reconciled>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<budget
|
||||
@@ -455,6 +459,7 @@ export default {
|
||||
transaction_journal_id: transaction.transaction_journal_id,
|
||||
description: transaction.description,
|
||||
date: transaction.date.substring(0, 16),
|
||||
reconciled: transaction.reconciled,
|
||||
amount: this.roundNumber(this.positiveAmount(transaction.amount), transaction.currency_decimal_places),
|
||||
category: transaction.category_name,
|
||||
errors: {
|
||||
@@ -464,6 +469,7 @@ export default {
|
||||
amount: [],
|
||||
date: [],
|
||||
budget_id: [],
|
||||
reconciled: [],
|
||||
bill_id: [],
|
||||
foreign_amount: [],
|
||||
category: [],
|
||||
@@ -540,7 +546,7 @@ export default {
|
||||
// }
|
||||
},
|
||||
convertData: function () {
|
||||
console.log('start of convertData');
|
||||
// console.log('start of convertData');
|
||||
let data = {
|
||||
'apply_rules': this.applyRules,
|
||||
'fire_webhooks': this.fireWebhooks,
|
||||
@@ -578,7 +584,7 @@ export default {
|
||||
if ('deposit' === transactionType) {
|
||||
currencyId = this.transactions[0].destination_account.currency_id;
|
||||
}
|
||||
console.log('Overruled currency ID to ' + currencyId);
|
||||
// console.log('Overruled currency ID to ' + currencyId);
|
||||
|
||||
for (let key in this.transactions) {
|
||||
if (this.transactions.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
|
||||
@@ -586,7 +592,7 @@ export default {
|
||||
}
|
||||
}
|
||||
//console.log(data);
|
||||
console.log('end of convertData');
|
||||
// console.log('end of convertData');
|
||||
return data;
|
||||
},
|
||||
convertDataRow(row, index, transactionType, currencyId) {
|
||||
@@ -615,7 +621,7 @@ export default {
|
||||
// }
|
||||
|
||||
row.currency_id = currencyId;
|
||||
console.log('Final currency ID = ' + currencyId);
|
||||
// console.log('Final currency ID = ' + currencyId);
|
||||
|
||||
date = row.date;
|
||||
if (index > 0) {
|
||||
@@ -676,6 +682,8 @@ export default {
|
||||
row.amount = String(row.amount).replace(',', '.');
|
||||
}
|
||||
|
||||
// console.log('Reconciled is ' + row.reconciled);
|
||||
|
||||
currentArray =
|
||||
{
|
||||
transaction_journal_id: row.transaction_journal_id,
|
||||
@@ -688,6 +696,8 @@ export default {
|
||||
source_id: sourceId,
|
||||
source_name: sourceName,
|
||||
|
||||
reconciled: row.reconciled,
|
||||
|
||||
destination_id: destId,
|
||||
destination_name: destName,
|
||||
|
||||
@@ -726,7 +736,7 @@ export default {
|
||||
if (parseInt(row.piggy_bank) > 0) {
|
||||
currentArray.piggy_bank_id = parseInt(row.piggy_bank);
|
||||
}
|
||||
if(this.isReconciled && !this.storeAsNew) {
|
||||
if(this.isReconciled && !this.storeAsNew && true === row.reconciled) {
|
||||
// drop content from array:
|
||||
delete currentArray.source_id;
|
||||
delete currentArray.source_name;
|
||||
@@ -738,11 +748,14 @@ export default {
|
||||
delete currentArray.currency_id;
|
||||
currentArray.reconciled = true;
|
||||
}
|
||||
if(true === row.isReconciled) {
|
||||
this.isReconciled = false;
|
||||
}
|
||||
|
||||
return currentArray;
|
||||
},
|
||||
submit: function (e) {
|
||||
console.log('Submit!');
|
||||
// console.log('Submit!');
|
||||
let button = $(e.currentTarget);
|
||||
button.prop("disabled", true);
|
||||
|
||||
@@ -751,26 +764,26 @@ export default {
|
||||
let uri = './api/v1/transactions/' + groupId + '?_token=' + document.head.querySelector('meta[name="csrf-token"]').content;
|
||||
let method = 'PUT';
|
||||
if (this.storeAsNew) {
|
||||
console.log('storeAsNew');
|
||||
// console.log('storeAsNew');
|
||||
// other links.
|
||||
uri = './api/v1/transactions?_token=' + document.head.querySelector('meta[name="csrf-token"]').content;
|
||||
method = 'POST';
|
||||
}
|
||||
const data = this.convertData();
|
||||
console.log('POST!');
|
||||
// console.log('POST!');
|
||||
axios({
|
||||
method: method,
|
||||
url: uri,
|
||||
data: data,
|
||||
}).then(response => {
|
||||
console.log('Response!');
|
||||
// console.log('Response!');
|
||||
if (0 === this.collectAttachmentData(response)) {
|
||||
const title = response.data.data.attributes.group_title ?? response.data.data.attributes.transactions[0].description;
|
||||
this.redirectUser(response.data.data.id, title);
|
||||
}
|
||||
button.removeAttr('disabled');
|
||||
}).catch(error => {
|
||||
console.log('Error :(');
|
||||
// console.log('Error :(');
|
||||
// give user errors things back.
|
||||
// something something render errors.
|
||||
this.parseErrors(error.response.data);
|
||||
@@ -779,11 +792,11 @@ export default {
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
console.log('DONE with method.');
|
||||
// console.log('DONE with method.');
|
||||
},
|
||||
|
||||
redirectUser(groupId, title) {
|
||||
console.log('Now in redirectUser');
|
||||
// console.log('Now in redirectUser');
|
||||
if (this.returnAfter) {
|
||||
this.setDefaultErrors();
|
||||
// do message if update or new:
|
||||
@@ -801,11 +814,11 @@ export default {
|
||||
window.location.href = window.previousUrl + '?transaction_group_id=' + groupId + '&message=updated';
|
||||
}
|
||||
}
|
||||
console.log('End of redirectUser');
|
||||
// console.log('End of redirectUser');
|
||||
},
|
||||
|
||||
collectAttachmentData(response) {
|
||||
console.log('Now incollectAttachmentData()');
|
||||
// console.log('Now incollectAttachmentData()');
|
||||
let groupId = response.data.data.id;
|
||||
|
||||
// array of all files to be uploaded:
|
||||
@@ -837,7 +850,7 @@ export default {
|
||||
}
|
||||
}
|
||||
let count = toBeUploaded.length;
|
||||
console.log('Found ' + toBeUploaded.length + ' attachments.');
|
||||
// console.log('Found ' + toBeUploaded.length + ' attachments.');
|
||||
|
||||
// loop all uploads.
|
||||
for (const key in toBeUploaded) {
|
||||
@@ -863,7 +876,7 @@ export default {
|
||||
})(toBeUploaded[key], key, this);
|
||||
}
|
||||
}
|
||||
console.log('Done with collectAttachmentData()');
|
||||
// console.log('Done with collectAttachmentData()');
|
||||
return count;
|
||||
},
|
||||
|
||||
@@ -963,6 +976,7 @@ export default {
|
||||
foreign_amount: [],
|
||||
category: [],
|
||||
piggy_bank: [],
|
||||
reconciled: [],
|
||||
tags: [],
|
||||
// custom fields:
|
||||
custom_errors: {
|
||||
@@ -1060,6 +1074,7 @@ export default {
|
||||
case 'budget_id':
|
||||
case 'bill_id':
|
||||
case 'description':
|
||||
case 'reconciled':
|
||||
case 'tags':
|
||||
this.transactions[transactionIndex].errors[fieldName] = errors.errors[key];
|
||||
break;
|
||||
@@ -1106,6 +1121,7 @@ export default {
|
||||
bill_id: [],
|
||||
foreign_amount: [],
|
||||
category: [],
|
||||
reconciled: [],
|
||||
piggy_bank: [],
|
||||
tags: [],
|
||||
// custom fields:
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
<!--
|
||||
- Reconciled.vue
|
||||
- Copyright (c) 2025 james@firefly-iii.org.
|
||||
-
|
||||
- This file is part of Firefly III (https://github.com/firefly-iii).
|
||||
-
|
||||
- This program is free software: you can redistribute it and/or modify
|
||||
- it under the terms of the GNU Affero General Public License as
|
||||
- published by the Free Software Foundation, either version 3 of the
|
||||
- License, or (at your option) any later version.
|
||||
-
|
||||
- This program is distributed in the hope that it will be useful,
|
||||
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU Affero General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU Affero General Public License
|
||||
- along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
-->
|
||||
|
||||
|
||||
<template>
|
||||
<div class="form-group" v-bind:class="{ 'has-error': hasError()}">
|
||||
<div class="col-sm-8 col-sm-offset-4 text-sm">
|
||||
|
||||
</div>
|
||||
<label ref="cur" class="col-sm-4 control-label">
|
||||
{{ $t('firefly.is_reconciled') }}
|
||||
</label>
|
||||
<div class="col-sm-8">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input name="create_another" @input="handleInput" type="checkbox" v-model="reconciled">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<ul v-for="error in this.error" class="list-unstyled">
|
||||
<li class="text-danger">{{ error }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "Reconciled",
|
||||
props: {
|
||||
value: Boolean,
|
||||
error: Array
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
reconciled: this.value
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
reconciled: function () {
|
||||
// console.log('reconciled is ' + this.reconciled);
|
||||
this.$emit('input', this.reconciled);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleInput(e) {
|
||||
|
||||
},
|
||||
hasError: function () {
|
||||
return this.error.length > 0;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -74,13 +74,13 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
update(newTags) {
|
||||
console.log('update', newTags);
|
||||
// console.log('update', newTags);
|
||||
this.autocompleteItems = [];
|
||||
this.tags = newTags;
|
||||
this.$emit('input', this.tags);
|
||||
},
|
||||
clearTags() {
|
||||
console.log('clearTags');
|
||||
// console.log('clearTags');
|
||||
this.tags = [];
|
||||
this.$emit('input', this.tags);
|
||||
|
||||
@@ -89,7 +89,7 @@ export default {
|
||||
return this.error.length > 0;
|
||||
},
|
||||
initItems() {
|
||||
console.log('Now in initItems');
|
||||
// console.log('Now in initItems');
|
||||
if (this.tag.length < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ export default {
|
||||
},
|
||||
downloadWebhook: function (id) {
|
||||
axios.get('./api/v1/webhooks/' + id).then(response => {
|
||||
console.log(response.data.data.attributes);
|
||||
// console.log(response.data.data.attributes);
|
||||
this.title = response.data.data.attributes.title;
|
||||
this.id = parseInt(response.data.data.id);
|
||||
|
||||
@@ -187,7 +187,7 @@ export default {
|
||||
|
||||
// post!
|
||||
axios.put('./api/v1/webhooks/' + this.id, data).then((response) => {
|
||||
let webhookId = response.data.data.id;
|
||||
let webhookId = parseInt(response.data.data.id);
|
||||
window.location.href = window.previousUrl + '?webhook_id=' + webhookId + '&message=updated';
|
||||
}).catch((error) => {
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ export default {
|
||||
}
|
||||
let journalId = parseInt(prompt('Enter a transaction ID'));
|
||||
if (journalId !== null && journalId > 0 && journalId <= 16777216) {
|
||||
console.log('OK 1');
|
||||
// console.log('OK 1');
|
||||
this.disabledTrigger = true;
|
||||
// disable button. Add informative message.
|
||||
//let button = $('#triggerButton');
|
||||
@@ -300,7 +300,7 @@ export default {
|
||||
// TODO actually trigger the webhook.
|
||||
axios.post('./api/v1/webhooks/' + this.id + '/trigger-transaction/' + journalId, {});
|
||||
//button.prop('disabled', false).removeClass('disabled');
|
||||
console.log('OK 2');
|
||||
// console.log('OK 2');
|
||||
|
||||
// set a time-outs.
|
||||
this.loading = true;
|
||||
@@ -308,7 +308,7 @@ export default {
|
||||
this.getWebhook();
|
||||
this.disabledTrigger = false;
|
||||
}, 2000);
|
||||
console.log('OK 3');
|
||||
// console.log('OK 3');
|
||||
}
|
||||
|
||||
|
||||
@@ -363,7 +363,7 @@ export default {
|
||||
},
|
||||
downloadWebhook: function () {
|
||||
axios.get('./api/v1/webhooks/' + this.id).then(response => {
|
||||
console.log(response.data.data.attributes);
|
||||
// console.log(response.data.data.attributes);
|
||||
this.edit_url = './webhooks/edit/' + this.id;
|
||||
this.delete_url = './webhooks/delete/' + this.id;
|
||||
this.title = response.data.data.attributes.title;
|
||||
|
||||
@@ -31,6 +31,7 @@ import PiggyBank from "./components/transactions/PiggyBank";
|
||||
import Tags from "./components/transactions/Tags";
|
||||
import Category from "./components/transactions/Category";
|
||||
import Amount from "./components/transactions/Amount";
|
||||
import Reconciled from "./components/transactions/Reconciled";
|
||||
import ForeignAmountSelect from "./components/transactions/ForeignAmountSelect";
|
||||
import TransactionType from "./components/transactions/TransactionType";
|
||||
import AccountSelect from "./components/transactions/AccountSelect";
|
||||
@@ -63,6 +64,7 @@ Vue.component('tags', Tags);
|
||||
Vue.component('category', Category);
|
||||
Vue.component('amount', Amount);
|
||||
Vue.component('foreign-amount', ForeignAmountSelect);
|
||||
Vue.component('reconciled', Reconciled);
|
||||
Vue.component('transaction-type', TransactionType);
|
||||
Vue.component('account-select', AccountSelect);
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
|
||||
"welcome_back": "\u041a\u0430\u043a\u0432\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430?",
|
||||
"flash_error": "\u0413\u0440\u0435\u0448\u043a\u0430!",
|
||||
"flash_warning": "\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438",
|
||||
"single_split": "\u0420\u0430\u0437\u0434\u0435\u043b",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}(\"{title}\")<\/a> \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u041f\u043e\u0442\u0432\u044a\u0440\u0434\u0438",
|
||||
"amount": "\u0421\u0443\u043c\u0430",
|
||||
"date": "\u0414\u0430\u0442\u0430",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u0415\u0442\u0438\u043a\u0435\u0442\u0438",
|
||||
"no_budget": "(\u0431\u0435\u0437 \u0431\u044e\u0434\u0436\u0435\u0442)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d",
|
||||
"interest_date": "\u041f\u0430\u0434\u0435\u0436 \u043d\u0430 \u043b\u0438\u0445\u0432\u0430",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435",
|
||||
"date": "\u0414\u0430\u0442\u0430",
|
||||
"book_date": "\u0414\u0430\u0442\u0430 \u043d\u0430 \u043e\u0441\u0447\u0435\u0442\u043e\u0432\u043e\u0434\u044f\u0432\u0430\u043d\u0435",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435",
|
||||
"active": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d \u043b\u0438 \u0435?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u0417\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d\u0435",
|
||||
"response": "\u041e\u0442\u0433\u043e\u0432\u043e\u0440",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Taula",
|
||||
"welcome_back": "Qu\u00e8 est\u00e0 passant?",
|
||||
"flash_error": "Error!",
|
||||
"flash_warning": "Atenci\u00f3!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Per favor, selecciona o escriu un nom de compte d'origen v\u00e0lid",
|
||||
"split_transaction_title": "Descripci\u00f3 de la transacci\u00f3 dividida",
|
||||
"errors_submission": "Hi ha hagut un error amb el teu enviament. Per favor, revisa els errors de sota.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Dividir",
|
||||
"single_split": "Divisi\u00f3",
|
||||
"transaction_stored_link": "La <a href=\"transactions\/show\/{ID}\">Transacci\u00f3 #{ID} (\"{title}\")<\/a> s'ha desat.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Enviar",
|
||||
"amount": "Import",
|
||||
"date": "Data",
|
||||
"is_reconciled_fields_dropped": "Com aquesta transacci\u00f3 est\u00e0 reconciliada, no podr\u00e0s actualitzar els comptes, ni les quantitats.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etiquetes",
|
||||
"no_budget": "(cap pressupost)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Actiu",
|
||||
"interest_date": "Data d'inter\u00e8s",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "T\u00edtol",
|
||||
"date": "Data",
|
||||
"book_date": "Data de registre",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "T\u00edtol",
|
||||
"active": "Est\u00e0 actiu?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Activador",
|
||||
"response": "Resposta",
|
||||
"delivery": "Lliurament",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabulka",
|
||||
"welcome_back": "Jak to jde?",
|
||||
"flash_error": "Chyba!",
|
||||
"flash_warning": "Varov\u00e1n\u00ed!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Popis roz\u00fa\u010dtov\u00e1n\u00ed",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Rozd\u011blit",
|
||||
"single_split": "Rozd\u011blit",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Odeslat",
|
||||
"amount": "\u010c\u00e1stka",
|
||||
"date": "Datum",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u0160t\u00edtky",
|
||||
"no_budget": "(\u017e\u00e1dn\u00fd rozpo\u010det)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktivn\u00ed",
|
||||
"interest_date": "\u00darokov\u00e9 datum",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "N\u00e1zev",
|
||||
"date": "Datum",
|
||||
"book_date": "Datum rezervace",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "N\u00e1zev",
|
||||
"active": "Aktivn\u00ed?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabel",
|
||||
"welcome_back": "Hvad spiller?",
|
||||
"flash_error": "Fejl!",
|
||||
"flash_warning": "Advarsel!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Description of the split transaction",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Opdel",
|
||||
"single_split": "Opdel",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Submit",
|
||||
"amount": "Bel\u00f8b",
|
||||
"date": "Date",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etiketter",
|
||||
"no_budget": "(no budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktiv",
|
||||
"interest_date": "Rentedato",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titel",
|
||||
"date": "Dato",
|
||||
"book_date": "Bogf\u00f8ringsdato",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titel",
|
||||
"active": "Aktiv?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Udl\u00f8ser",
|
||||
"response": "Svar",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Finanzverwaltungen",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabelle",
|
||||
"welcome_back": "\u00dcberblick",
|
||||
"flash_error": "Fehler!",
|
||||
"flash_warning": "Achtung!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Bitte einen g\u00fcltigen Quellkontonamen ausw\u00e4hlen oder eingeben",
|
||||
"split_transaction_title": "Beschreibung der Splittbuchung",
|
||||
"errors_submission": "Bei Ihren Eingaben stimmt etwas nicht. Bitte \u00fcberpr\u00fcfen Sie die unten stehenden Fehler.",
|
||||
"is_reconciled": "Ist abgestimmt",
|
||||
"split": "Teilen",
|
||||
"single_split": "Teilen",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Buchung #{ID} (\"{title}\")<\/a> wurde gespeichert.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Absenden",
|
||||
"amount": "Betrag",
|
||||
"date": "Datum",
|
||||
"is_reconciled_fields_dropped": "Da diese Buchung abgeglichen ist, k\u00f6nnen Sie weder die Konten noch den\/die Betrag\/Betr\u00e4ge aktualisieren.",
|
||||
"is_reconciled_fields_dropped": "Da diese Buchung abgestimmt ist, k\u00f6nnen Sie weder die Konten noch den\/die Betrag\/Betr\u00e4ge aktualisieren, es sei denn, Sie entfernen das Abstimmungskennzeichen.",
|
||||
"tags": "Schlagw\u00f6rter",
|
||||
"no_budget": "(kein Budget)",
|
||||
"no_bill": "(kein Abonnement)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktiv",
|
||||
"interest_date": "Zinstermin",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titel",
|
||||
"date": "Datum",
|
||||
"book_date": "Buchungsdatum",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Kurs"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titel",
|
||||
"active": "Aktiv?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Ausl\u00f6ser",
|
||||
"response": "Antwort",
|
||||
"delivery": "Zustellung",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2",
|
||||
"welcome_back": "\u03a4\u03b9 \u03c0\u03b1\u03af\u03b6\u03b5\u03b9;",
|
||||
"flash_error": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1!",
|
||||
"flash_warning": "\u03a0\u03c1\u03bf\u03c3\u03bf\u03c7\u03ae!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\u0394\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2",
|
||||
"single_split": "\u0394\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID} (\"{title}\")<\/a> \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae",
|
||||
"amount": "\u03a0\u03bf\u03c3\u03cc",
|
||||
"date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u0395\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2",
|
||||
"no_budget": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL",
|
||||
"active": "\u0395\u03bd\u03b5\u03c1\u03b3\u03cc",
|
||||
"interest_date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03c4\u03bf\u03ba\u03b9\u03c3\u03bc\u03bf\u03cd",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u03a4\u03af\u03c4\u03bb\u03bf\u03c2",
|
||||
"date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1",
|
||||
"book_date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u03a4\u03af\u03c4\u03bb\u03bf\u03c2",
|
||||
"active": "\u0395\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc;",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
||||
"response": "\u0391\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7",
|
||||
"delivery": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03bf\u03c3\u03b7",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Table",
|
||||
"welcome_back": "What's playing?",
|
||||
"flash_error": "Error!",
|
||||
"flash_warning": "Warning!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Description of the split transaction",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Split",
|
||||
"single_split": "Split",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Submit",
|
||||
"amount": "Amount",
|
||||
"date": "Date",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Tags",
|
||||
"no_budget": "(no budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Active",
|
||||
"interest_date": "Interest date",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Title",
|
||||
"date": "Date",
|
||||
"book_date": "Book date",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Title",
|
||||
"active": "Is active?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Table",
|
||||
"welcome_back": "What's playing?",
|
||||
"flash_error": "Error!",
|
||||
"flash_warning": "Warning!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Description of the split transaction",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Split",
|
||||
"single_split": "Split",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Submit",
|
||||
"amount": "Amount",
|
||||
"date": "Date",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Tags",
|
||||
"no_budget": "(no budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Active",
|
||||
"interest_date": "Interest date",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Title",
|
||||
"date": "Date",
|
||||
"book_date": "Book date",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Title",
|
||||
"active": "Is active?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Mesa",
|
||||
"welcome_back": "\u00bfQu\u00e9 est\u00e1 pasando?",
|
||||
"flash_error": "\u00a1Error!",
|
||||
"flash_warning": "\u00a1Advertencia!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Por favor, seleccione o escriba un nombre de cuenta de origen v\u00e1lido",
|
||||
"split_transaction_title": "Descripci\u00f3n de la transacci\u00f3n dividida",
|
||||
"errors_submission": "Hubo un problema con su env\u00edo. Por favor, compruebe los siguientes errores.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Separar",
|
||||
"single_split": "Divisi\u00f3n",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">La transacci\u00f3n #{ID} (\"{title}\")<\/a> ha sido almacenada.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Enviar",
|
||||
"amount": "Cantidad",
|
||||
"date": "Fecha",
|
||||
"is_reconciled_fields_dropped": "Debido a que esta transacci\u00f3n est\u00e1 reconciliada, no podr\u00e1 actualizar las cuentas, ni las cantidades.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etiquetas",
|
||||
"no_budget": "(sin presupuesto)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Activo",
|
||||
"interest_date": "Fecha de inter\u00e9s",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "T\u00edtulo",
|
||||
"date": "Fecha",
|
||||
"book_date": "Fecha de registro",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "T\u00edtulo",
|
||||
"active": "\u00bfEst\u00e1 Activo?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Disparador",
|
||||
"response": "Respuesta",
|
||||
"delivery": "Entrega",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Taulukko",
|
||||
"welcome_back": "Mit\u00e4 kuuluu?",
|
||||
"flash_error": "Virhe!",
|
||||
"flash_warning": "Varoitus!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Jaetun tapahtuman kuvaus",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Jaa",
|
||||
"single_split": "Jako",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Tapahtuma #{ID} (\"{title}\")<\/a> on tallennettu.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Vahvista",
|
||||
"amount": "Summa",
|
||||
"date": "P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "T\u00e4git",
|
||||
"no_budget": "(ei budjettia)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -108,7 +115,7 @@
|
||||
"meta_data": "Metatieto",
|
||||
"webhook_messages": "Webhook message",
|
||||
"inactive": "Ei aktiivinen",
|
||||
"no_webhook_messages": "There are no webhook messages",
|
||||
"no_webhook_messages": "Verkkotoimintokutsuviestej\u00e4 ei ole",
|
||||
"inspect": "Inspect",
|
||||
"create_new_webhook": "Create new webhook",
|
||||
"webhooks": "Webhookit",
|
||||
@@ -126,7 +133,7 @@
|
||||
"attempt_content_help": "These are all the unsuccessful attempts of this webhook message to submit to the configured URL. After some time, Firefly III will stop trying.",
|
||||
"no_attempts": "There are no unsuccessful attempts. That's a good thing!",
|
||||
"webhook_attempt_at": "Attempt at {moment}",
|
||||
"logs": "Logs",
|
||||
"logs": "Lokitiedot",
|
||||
"response": "Response",
|
||||
"visit_webhook_url": "Visit webhook URL",
|
||||
"reset_webhook_secret": "Reset webhook secret",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL-osoite",
|
||||
"active": "Aktiivinen",
|
||||
"interest_date": "Korkop\u00e4iv\u00e4",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Otsikko",
|
||||
"date": "P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4",
|
||||
"book_date": "Kirjausp\u00e4iv\u00e4",
|
||||
@@ -153,15 +161,17 @@
|
||||
"payment_date": "Maksup\u00e4iv\u00e4",
|
||||
"invoice_date": "Laskun p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4",
|
||||
"internal_reference": "Sis\u00e4inen viite",
|
||||
"webhook_response": "Response",
|
||||
"webhook_trigger": "Trigger",
|
||||
"webhook_delivery": "Delivery",
|
||||
"webhook_response": "Vastaus",
|
||||
"webhook_trigger": "Ehto",
|
||||
"webhook_delivery": "Toimitus",
|
||||
"from_currency_to_currency": "{from} → {to}",
|
||||
"to_currency_from_currency": "{to} → {from}",
|
||||
"rate": "Rate"
|
||||
"rate": "Kurssi"
|
||||
},
|
||||
"list": {
|
||||
"title": "Otsikko",
|
||||
"active": "Aktiivinen?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Ehto",
|
||||
"response": "Vastaus",
|
||||
"delivery": "Toimitus",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Administrations financi\u00e8res",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tableau",
|
||||
"welcome_back": "Quoi de neuf ?",
|
||||
"flash_error": "Erreur !",
|
||||
"flash_warning": "Attention !",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Veuillez s\u00e9lectionner ou saisir un nom de compte source valide",
|
||||
"split_transaction_title": "Description de l'op\u00e9ration s\u00e9par\u00e9e",
|
||||
"errors_submission": "Certaines informations ne sont pas correctes dans votre formulaire. Veuillez v\u00e9rifier les erreurs ci-dessous.",
|
||||
"is_reconciled": "Est rapproch\u00e9",
|
||||
"split": "S\u00e9paration",
|
||||
"single_split": "S\u00e9paration unique",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">L'op\u00e9ration n\u00b0{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9e.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Soumettre",
|
||||
"amount": "Montant",
|
||||
"date": "Date",
|
||||
"is_reconciled_fields_dropped": "Comme cette op\u00e9ration est rapproch\u00e9e, vous ne pourrez pas modifier les comptes, ni le(s) montant(s).",
|
||||
"is_reconciled_fields_dropped": "Comme cette op\u00e9ration est rapproch\u00e9e, vous ne pourrez pas modifier les comptes, ni le(s) montant(s) \u00e0 moins de retirer l'indicateur de r\u00e9conciliation.",
|
||||
"tags": "Tags",
|
||||
"no_budget": "(pas de budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -52,7 +59,7 @@
|
||||
"destination_account_reconciliation": "Vous ne pouvez pas modifier le compte de destination d'une op\u00e9ration de rapprochement.",
|
||||
"source_account_reconciliation": "Vous ne pouvez pas modifier le compte source d'une op\u00e9ration de rapprochement.",
|
||||
"budget": "Budget",
|
||||
"bill": "Subscription",
|
||||
"bill": "Abonnement",
|
||||
"you_create_withdrawal": "Vous saisissez une d\u00e9pense.",
|
||||
"you_create_transfer": "Vous saisissez un transfert.",
|
||||
"you_create_deposit": "Vous saisissez un d\u00e9p\u00f4t.",
|
||||
@@ -130,20 +137,21 @@
|
||||
"response": "R\u00e9ponse",
|
||||
"visit_webhook_url": "Visiter l'URL du webhook",
|
||||
"reset_webhook_secret": "R\u00e9initialiser le secret du webhook",
|
||||
"header_exchange_rates": "Exchange rates",
|
||||
"exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">the documentation<\/a>.",
|
||||
"exchange_rates_from_to": "Between {from} and {to} (and the other way around)",
|
||||
"exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.",
|
||||
"header_exchange_rates_rates": "Exchange rates",
|
||||
"header_exchange_rates_table": "Table with exchange rates",
|
||||
"help_rate_form": "On this day, how many {to} will you get for one {from}?",
|
||||
"add_new_rate": "Add a new exchange rate",
|
||||
"save_new_rate": "Save new rate"
|
||||
"header_exchange_rates": "Taux de change",
|
||||
"exchange_rates_intro": "Firefly III prend en charge le chargement et l'utilisation des taux de change. En savoir plus \u00e0 ce sujet dans <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">la documentation<\/a>.",
|
||||
"exchange_rates_from_to": "Entre {from} et {to} (et l'inverse)",
|
||||
"exchange_rates_intro_rates": "Firefly III utilise les taux de change suivants. L'inverse est calcul\u00e9 automatiquement lorsqu'il n'est pas fourni. Si aucun taux de change n'existe pour la date de la transaction, Firefly III reviendra dans le temps pour en trouver un. Si aucun n'est pr\u00e9sent, le taux \"1\" sera utilis\u00e9.",
|
||||
"header_exchange_rates_rates": "Taux de change",
|
||||
"header_exchange_rates_table": "Table avec taux de change",
|
||||
"help_rate_form": "Aujourd'hui, combien de {to} obtiendrez-vous pour un {from} ?",
|
||||
"add_new_rate": "Ajouter un nouveau taux de change",
|
||||
"save_new_rate": "Enregistrer le nouveau taux"
|
||||
},
|
||||
"form": {
|
||||
"url": "Liens",
|
||||
"active": "Actif",
|
||||
"interest_date": "Date de valeur (int\u00e9r\u00eats)",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titre",
|
||||
"date": "Date",
|
||||
"book_date": "Date d'enregistrement",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titre",
|
||||
"active": "Actif ?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "D\u00e9clencheur",
|
||||
"response": "R\u00e9ponse",
|
||||
"delivery": "Distribution",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "T\u00e1bl\u00e1zat",
|
||||
"welcome_back": "Mi a helyzet?",
|
||||
"flash_error": "Hiba!",
|
||||
"flash_warning": "Figyelmeztet\u00e9s!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Felosztott tranzakci\u00f3 le\u00edr\u00e1sa",
|
||||
"errors_submission": "Hiba t\u00f6rt\u00e9nt a bek\u00fcld\u00e9s sor\u00e1n. K\u00e9rlek jav\u00edtsd az al\u00e1bbi hib\u00e1kat.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Feloszt\u00e1s",
|
||||
"single_split": "Feloszt\u00e1s",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> mentve.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Bek\u00fcld\u00e9s",
|
||||
"amount": "\u00d6sszeg",
|
||||
"date": "D\u00e1tum",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "C\u00edmk\u00e9k",
|
||||
"no_budget": "(nincs k\u00f6lts\u00e9gkeret)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Akt\u00edv",
|
||||
"interest_date": "Kamatfizet\u00e9si id\u0151pont",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "C\u00edm",
|
||||
"date": "D\u00e1tum",
|
||||
"book_date": "K\u00f6nyvel\u00e9s d\u00e1tuma",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "C\u00edm",
|
||||
"active": "Akt\u00edv?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Meja",
|
||||
"welcome_back": "Apa yang sedang dimainkan?",
|
||||
"flash_error": "Kesalahan!",
|
||||
"flash_warning": "PERINGATAN!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Description of the split transaction",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Pisah",
|
||||
"single_split": "Pisah",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Menyerahkan",
|
||||
"amount": "Jumlah",
|
||||
"date": "Tanggal",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Tag",
|
||||
"no_budget": "(no budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktif",
|
||||
"interest_date": "Tanggal bunga",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Judul",
|
||||
"date": "Tanggal",
|
||||
"book_date": "Tanggal buku",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Judul",
|
||||
"active": "Aktif?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabella",
|
||||
"welcome_back": "La tua situazione finanziaria",
|
||||
"flash_error": "Errore!",
|
||||
"flash_warning": "Avviso!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Descrizione della transazione suddivisa",
|
||||
"errors_submission": "Errore durante l'invio. Controlla gli errori segnalati qui sotto.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Dividi",
|
||||
"single_split": "Divisione",
|
||||
"transaction_stored_link": "La <a href=\"transactions\/show\/{ID}\">transazione #{ID} (\"{title}\")<\/a> \u00e8 stata salvata.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Invia",
|
||||
"amount": "Importo",
|
||||
"date": "Data",
|
||||
"is_reconciled_fields_dropped": "Poich\u00e9 questa transazione \u00e8 riconciliata, non potrai aggiornare i conti, n\u00e9 gli importi.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etichette",
|
||||
"no_budget": "(nessun budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Attivo",
|
||||
"interest_date": "Data di valuta",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titolo",
|
||||
"date": "Data",
|
||||
"book_date": "Data contabile",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titolo",
|
||||
"active": "Attivo",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Risposta",
|
||||
"delivery": "Consegna",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u8868",
|
||||
"welcome_back": "\u6982\u8981",
|
||||
"flash_error": "\u30a8\u30e9\u30fc\uff01",
|
||||
"flash_warning": "\u8b66\u544a\uff01",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "\u5206\u5272\u53d6\u5f15\u306e\u6982\u8981",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\u5206\u5272",
|
||||
"single_split": "\u5206\u5272",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u53d6\u5f15 #{ID}\u300c{title}\u300d<\/a> \u304c\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f\u3002",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u9001\u4fe1",
|
||||
"amount": "\u91d1\u984d",
|
||||
"date": "\u65e5\u4ed8",
|
||||
"is_reconciled_fields_dropped": "\u3053\u306e\u53d6\u5f15\u306f\u7167\u5408\u6e08\u307f\u306e\u305f\u3081\u3001\u53e3\u5ea7\u3084\u91d1\u984d\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u30bf\u30b0",
|
||||
"no_budget": "(\u4e88\u7b97\u306a\u3057)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "\u6709\u52b9",
|
||||
"interest_date": "\u5229\u606f\u65e5",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u30bf\u30a4\u30c8\u30eb",
|
||||
"date": "\u65e5\u4ed8",
|
||||
"book_date": "\u8a18\u5e33\u65e5",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u30bf\u30a4\u30c8\u30eb",
|
||||
"active": "\u6709\u52b9",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u30c8\u30ea\u30ac\u30fc",
|
||||
"response": "\u30ec\u30b9\u30dd\u30f3\u30b9",
|
||||
"delivery": "\u914d\u4fe1",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\ud45c",
|
||||
"welcome_back": "\ubb34\uc2a8 \uc77c\uc774\uc8e0?",
|
||||
"flash_error": "\uc624\ub958!",
|
||||
"flash_warning": "\uacbd\uace0!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "\uc720\ud6a8\ud55c \uc18c\uc2a4 \uacc4\uc815 \ub0b4\uc5ed\uc744 \uc120\ud0dd \ub610\ub294 \ud0c0\uc785\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.",
|
||||
"split_transaction_title": "\ubd84\ud560 \uac70\ub798\uc5d0 \ub300\ud55c \uc124\uba85",
|
||||
"errors_submission": "\uc81c\ucd9c\ud55c \ub0b4\uc6a9\uc5d0 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \uc624\ub958\ub97c \ud655\uc778\ud574 \uc8fc\uc138\uc694.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\ub098\ub204\uae30",
|
||||
"single_split": "\ub098\ub204\uae30",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\uac70\ub798 #{ID} (\"{title}\")<\/a>\uac00 \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\uc81c\ucd9c",
|
||||
"amount": "\uae08\uc561",
|
||||
"date": "\ub0a0\uc9dc",
|
||||
"is_reconciled_fields_dropped": "\uc774 \uac70\ub798\uac00 \uc218\uc815\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0, \uacc4\uc88c\ub098 \uae08\uc561\uc744 \uc5c5\ub370\uc774\ud2b8 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\ud0dc\uadf8",
|
||||
"no_budget": "(\uc608\uc0b0 \uc5c6\uc74c)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "\ud65c\uc131",
|
||||
"interest_date": "\uc774\uc790 \ub0a0\uc9dc",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\uc81c\ubaa9",
|
||||
"date": "\ub0a0\uc9dc",
|
||||
"book_date": "\uc608\uc57d\uc77c",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\uc81c\ubaa9",
|
||||
"active": "\ud65c\uc131 \uc0c1\ud0dc\uc785\ub2c8\uae4c?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\ud2b8\ub9ac\uac70",
|
||||
"response": "\uc751\ub2f5",
|
||||
"delivery": "\uc804\ub2ec",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabell",
|
||||
"welcome_back": "Hvordan g\u00e5r det?",
|
||||
"flash_error": "Feil!",
|
||||
"flash_warning": "Advarsel!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Beskrivelse av den splittende transaksjon",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Del opp",
|
||||
"single_split": "Del opp",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaksjon #{ID} (\"{title}\")<\/a> har blitt lagret.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Send inn",
|
||||
"amount": "Bel\u00f8p",
|
||||
"date": "Dato",
|
||||
"is_reconciled_fields_dropped": "Fordi denne transaksjonen er avstemt, vil du ikke kunne oppdatere kontoene eller bel\u00f8pene.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Tagger",
|
||||
"no_budget": "(ingen budsjett)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "Nettadresse",
|
||||
"active": "Aktiv",
|
||||
"interest_date": "Rentedato",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Tittel",
|
||||
"date": "Dato",
|
||||
"book_date": "Bokf\u00f8ringsdato",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Tittel",
|
||||
"active": "Er aktiv?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Utl\u00f8ser",
|
||||
"response": "Respons",
|
||||
"delivery": "Levering",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Grootboeken",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabel",
|
||||
"welcome_back": "Hoe staat het er voor?",
|
||||
"flash_error": "Fout!",
|
||||
"flash_warning": "Waarschuwing!",
|
||||
@@ -7,8 +13,9 @@
|
||||
"close": "Sluiten",
|
||||
"select_dest_account": "Selecteer of type een geldige doelrekeningnaam",
|
||||
"select_source_account": "Selecteer of type een geldige bronrekeningnaam",
|
||||
"split_transaction_title": "Beschrijving van de gesplitste transactie",
|
||||
"split_transaction_title": "Omschrijving van de gesplitste transactie",
|
||||
"errors_submission": "Er ging iets mis. Check de errors.",
|
||||
"is_reconciled": "Is afgestemd",
|
||||
"split": "Splitsen",
|
||||
"single_split": "Split",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transactie #{ID} (\"{title}\")<\/a> is opgeslagen.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Invoeren",
|
||||
"amount": "Bedrag",
|
||||
"date": "Datum",
|
||||
"is_reconciled_fields_dropped": "Omdat deze transactie al is afgestemd, kan je het bedrag noch de rekeningen wijzigen.",
|
||||
"is_reconciled_fields_dropped": "Omdat deze transactie al is afgestemd, kan je het bedrag noch de rekeningen wijzigen. Tenzij je het vinkje weghaalt.",
|
||||
"tags": "Tags",
|
||||
"no_budget": "(geen budget)",
|
||||
"no_bill": "(geen abonnement)",
|
||||
@@ -44,11 +51,11 @@
|
||||
"update_transaction": "Update transactie",
|
||||
"after_update_create_another": "Na het opslaan terug om door te gaan met wijzigen.",
|
||||
"store_as_new": "Opslaan als nieuwe transactie ipv de huidige bij te werken.",
|
||||
"split_title_help": "Als je een gesplitste transactie maakt, moet er een algemene beschrijving zijn voor alle splitsingen van de transactie.",
|
||||
"split_title_help": "Als je een gesplitste transactie maakt, moet er een algemene omschrijving zijn voor alle splitsingen van de transactie.",
|
||||
"none_in_select_list": "(geen)",
|
||||
"no_piggy_bank": "(geen spaarpotje)",
|
||||
"description": "Omschrijving",
|
||||
"split_transaction_title_help": "Als je een gesplitste transactie maakt, moet er een algemene beschrijving zijn voor alle splitsingen van de transactie.",
|
||||
"split_transaction_title_help": "Als je een gesplitste transactie maakt, moet er een algemene omschrijving zijn voor alle splitsingen van de transactie.",
|
||||
"destination_account_reconciliation": "Je kan de doelrekening van een afstemming niet wijzigen.",
|
||||
"source_account_reconciliation": "Je kan de bronrekening van een afstemming niet wijzigen.",
|
||||
"budget": "Budget",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Actief",
|
||||
"interest_date": "Rentedatum",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titel",
|
||||
"date": "Datum",
|
||||
"book_date": "Boekdatum",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Wisselkoers"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titel",
|
||||
"active": "Actief?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Reactie",
|
||||
"delivery": "Bericht",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabell",
|
||||
"welcome_back": "Korleis g\u00e5r det?",
|
||||
"flash_error": "Feil!",
|
||||
"flash_warning": "Advarsel!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Beskrivinga av den splitta transaksjonen",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Del opp",
|
||||
"single_split": "Del opp",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaksjon #{ID} (\"{title}\")<\/a> har vorte lagra.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Send inn",
|
||||
"amount": "Bel\u00f8p",
|
||||
"date": "Dato",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "N\u00f8kkelord",
|
||||
"no_budget": "(ingen budsjett)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "Nettadresse",
|
||||
"active": "Aktiv",
|
||||
"interest_date": "Rentedato",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Tittel",
|
||||
"date": "Dato",
|
||||
"book_date": "Bokf\u00f8ringsdato",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Tittel",
|
||||
"active": "Er aktiv?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Utl\u00f8ser",
|
||||
"response": "Respons",
|
||||
"delivery": "Levering",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabela",
|
||||
"welcome_back": "Co jest grane?",
|
||||
"flash_error": "B\u0142\u0105d!",
|
||||
"flash_warning": "Ostrze\u017cenie!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Wybierz lub wpisz prawid\u0142ow\u0105 nazw\u0119 konta \u017ar\u00f3d\u0142owego",
|
||||
"split_transaction_title": "Opis podzielonej transakcji",
|
||||
"errors_submission": "Co\u015b posz\u0142o nie tak w czasie zapisu. Prosz\u0119, sprawd\u017a b\u0142\u0119dy poni\u017cej.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Podziel",
|
||||
"single_split": "Podzia\u0142",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcja #{ID} (\"{title}\")<\/a> zosta\u0142a zapisana.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Prze\u015blij",
|
||||
"amount": "Kwota",
|
||||
"date": "Data",
|
||||
"is_reconciled_fields_dropped": "Poniewa\u017c ta transakcja jest uzgodniona, nie b\u0119dziesz w stanie zaktualizowa\u0107 ani kont, ani kwot.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Tagi",
|
||||
"no_budget": "(brak bud\u017cetu)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktywny",
|
||||
"interest_date": "Data odsetek",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Tytu\u0142",
|
||||
"date": "Data",
|
||||
"book_date": "Data ksi\u0119gowania",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Tytu\u0142",
|
||||
"active": "Jest aktywny?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Wyzwalacz",
|
||||
"response": "Odpowied\u017a",
|
||||
"delivery": "Dor\u0119czenie",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabela",
|
||||
"welcome_back": "O que est\u00e1 acontecendo?",
|
||||
"flash_error": "Erro!",
|
||||
"flash_warning": "Aten\u00e7\u00e3o!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Por favor, selecione ou digite um nome de conta de origem v\u00e1lido",
|
||||
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
|
||||
"errors_submission": "Algo deu errado com seu envio. Por favor, verifique os erros abaixo.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Dividir",
|
||||
"single_split": "Divis\u00e3o",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi salva.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Enviar",
|
||||
"amount": "Valor",
|
||||
"date": "Data",
|
||||
"is_reconciled_fields_dropped": "Como a transa\u00e7\u00e3o est\u00e1 reconciliada, voc\u00ea n\u00e3o pode atualizar as contas, nem o(s) valor(es).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Tags",
|
||||
"no_budget": "(sem or\u00e7amento)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Ativo",
|
||||
"interest_date": "Data do juros",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "T\u00edtulo",
|
||||
"date": "Data",
|
||||
"book_date": "Data de lan\u00e7amento",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "T\u00edtulo",
|
||||
"active": "Est\u00e1 ativo?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Gatilho",
|
||||
"response": "Resposta",
|
||||
"delivery": "Entrega",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabela",
|
||||
"welcome_back": "Painel de controlo",
|
||||
"flash_error": "Erro!",
|
||||
"flash_warning": "Aviso!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Por favor, selecione ou digite um nome de conta v\u00e1lido",
|
||||
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
|
||||
"errors_submission": "Algo correu mal com o envio dos dados. Por favor verifique e corrija os erros abaixo.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Dividir",
|
||||
"single_split": "Divis\u00e3o",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">A transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi guardada.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Guardar",
|
||||
"amount": "Montante",
|
||||
"date": "Data",
|
||||
"is_reconciled_fields_dropped": "Como esta transa\u00e7\u00e3o est\u00e1 reconciliada, n\u00e3o pode atualizar as contas, nem os montantes.",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etiquetas",
|
||||
"no_budget": "(sem or\u00e7amento)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Ativo",
|
||||
"interest_date": "Data de juros",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "T\u00edtulo",
|
||||
"date": "Data",
|
||||
"book_date": "Data de registo",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "T\u00edtulo",
|
||||
"active": "Esta ativo?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Gatilho",
|
||||
"response": "Resposta",
|
||||
"delivery": "Entrega",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabel",
|
||||
"welcome_back": "Ce se red\u0103?",
|
||||
"flash_error": "Eroare!",
|
||||
"flash_warning": "Avertizare!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Descrierea tranzac\u021biei divizate",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\u00cemparte",
|
||||
"single_split": "\u00cemparte",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Tranzac\u021bia #{ID} (\"{title}\")<\/a> a fost stocat\u0103.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Trimite",
|
||||
"amount": "Sum\u0103",
|
||||
"date": "Dat\u0103",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etichete",
|
||||
"no_budget": "(nici un buget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Activ",
|
||||
"interest_date": "Data de interes",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titlu",
|
||||
"date": "Dat\u0103",
|
||||
"book_date": "Rezerv\u0103 dat\u0103",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titlu",
|
||||
"active": "Este activ?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Declan\u0219ator",
|
||||
"response": "R\u0103spuns",
|
||||
"delivery": "Livrare",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "\u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
|
||||
"welcome_back": "\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c\u0438?",
|
||||
"flash_error": "\u041e\u0448\u0438\u0431\u043a\u0430!",
|
||||
"flash_warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0438\u043c\u044f \u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430",
|
||||
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",
|
||||
"errors_submission": "\u0421 \u0432\u0430\u0448\u0435\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0438\u0436\u0435.",
|
||||
"is_reconciled": "\u0421\u0432\u0435\u0440\u0435\u043d\u043e",
|
||||
"split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c",
|
||||
"single_split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID} (\"{title}\")<\/a> \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",
|
||||
@@ -21,7 +28,7 @@
|
||||
"apply_rules_checkbox": "\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430",
|
||||
"fire_webhooks_checkbox": "Fire webhooks",
|
||||
"no_budget_pointer": "\u041f\u043e\u0445\u043e\u0436\u0435, \u0443 \u0432\u0430\u0441 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u0432. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"budgets\">\u0411\u044e\u0434\u0436\u0435\u0442\u044b<\/a>. \u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u044b.",
|
||||
"no_bill_pointer": "You seem to have no subscription yet. You should create some on the <a href=\"subscriptions\">subscription<\/a>-page. Subscriptions can help you keep track of expenses.",
|
||||
"no_bill_pointer": "\u041f\u043e\u0445\u043e\u0436\u0435, \u0443 \u0432\u0430\u0441 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438. \u0412\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"subscriptions\">\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438<\/a>. \u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u044b.",
|
||||
"source_account": "\u0421\u0447\u0451\u0442-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
|
||||
"hidden_fields_preferences": "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0432 <a href=\"preferences\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445<\/a>.",
|
||||
"destination_account": "\u0421\u0447\u0451\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c",
|
||||
"amount": "\u0421\u0443\u043c\u043c\u0430",
|
||||
"date": "\u0414\u0430\u0442\u0430",
|
||||
"is_reconciled_fields_dropped": "\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0441\u0432\u0435\u0440\u0435\u043d\u0430, \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0447\u0435\u0442\u0430, \u043d\u0438 \u0441\u0443\u043c\u043c\u0443(\u044b).",
|
||||
"is_reconciled_fields_dropped": "\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0441\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u043b\u0430\u0433 \u0441\u0432\u0435\u0440\u043a\u0438 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0430 \u0438\u043b\u0438 \u0441\u0443\u043c\u043c\u044b.",
|
||||
"tags": "\u041c\u0435\u0442\u043a\u0438",
|
||||
"no_budget": "(\u0432\u043d\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u0430)",
|
||||
"no_bill": "(\u043d\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438)",
|
||||
@@ -131,12 +138,12 @@
|
||||
"visit_webhook_url": "\u041f\u043e\u0441\u0435\u0442\u0438\u0442\u044c URL \u0432\u0435\u0431\u0445\u0443\u043a\u0430",
|
||||
"reset_webhook_secret": "",
|
||||
"header_exchange_rates": "\u041a\u0443\u0440\u0441\u044b \u0432\u0430\u043b\u044e\u0442",
|
||||
"exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">the documentation<\/a>.",
|
||||
"exchange_rates_intro": "Firefly III \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0443\u0440\u0441\u043e\u0432 \u043e\u0431\u043c\u0435\u043d\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.",
|
||||
"exchange_rates_from_to": "\u041c\u0435\u0436\u0434\u0443 {from} \u0438 {to} (\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442)",
|
||||
"exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.",
|
||||
"exchange_rates_intro_rates": "Firefly III \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b. \u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0434\u0430\u0442\u0443 \u0441\u0434\u0435\u043b\u043a\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430, \u0442\u043e Firefly III \u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u0432 \u043d\u0443\u0436\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0415\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043a\u0443\u0440\u0441 \"1\".",
|
||||
"header_exchange_rates_rates": "\u041a\u0443\u0440\u0441\u044b \u0432\u0430\u043b\u044e\u0442",
|
||||
"header_exchange_rates_table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043e\u0431\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043a\u0443\u0440\u0441\u0430\u043c\u0438",
|
||||
"help_rate_form": "On this day, how many {to} will you get for one {from}?",
|
||||
"help_rate_form": "\u0412 \u044d\u0442\u043e\u0442 \u0434\u0435\u043d\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e {to} \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0437\u0430 \u043e\u0434\u043d\u043e\u0433\u043e {from}?",
|
||||
"add_new_rate": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0443\u0440\u0441",
|
||||
"save_new_rate": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0442\u0430\u0440\u0438\u0444"
|
||||
},
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "\u0421\u0441\u044b\u043b\u043a\u0430",
|
||||
"active": "\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0439",
|
||||
"interest_date": "\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
|
||||
"date": "\u0414\u0430\u0442\u0430",
|
||||
"book_date": "\u0414\u0430\u0442\u0430 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "\u041e\u0446\u0435\u043d\u0438\u0442\u044c"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435",
|
||||
"active": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u0421\u043e\u0431\u044b\u0442\u0438\u0435",
|
||||
"response": "\u041e\u0442\u0432\u0435\u0442",
|
||||
"delivery": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430",
|
||||
@@ -170,6 +180,6 @@
|
||||
},
|
||||
"config": {
|
||||
"html_language": "ru",
|
||||
"date_time_fns": "Do MMMM yyyy, @ HH:mm:ss"
|
||||
"date_time_fns": "D MMMM yyyy, @ HH:mm:ss"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabu\u013eka",
|
||||
"welcome_back": "Ako to ide?",
|
||||
"flash_error": "Chyba!",
|
||||
"flash_warning": "Varovanie!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Popis roz\u00fa\u010dtovania",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Roz\u00fa\u010dtova\u0165",
|
||||
"single_split": "Roz\u00fa\u010dtova\u0165",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcia #{ID} (\"{title}\")<\/a> bola ulo\u017een\u00e1.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Odosla\u0165",
|
||||
"amount": "Suma",
|
||||
"date": "D\u00e1tum",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u0160t\u00edtky",
|
||||
"no_budget": "(\u017eiadny rozpo\u010det)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Akt\u00edvne",
|
||||
"interest_date": "\u00darokov\u00fd d\u00e1tum",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "N\u00e1zov",
|
||||
"date": "D\u00e1tum",
|
||||
"book_date": "D\u00e1tum rezerv\u00e1cie",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "N\u00e1zov",
|
||||
"active": "Akt\u00edvne?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Finan\u010dne administracije",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabela",
|
||||
"welcome_back": "Kaj vse se dogaja?",
|
||||
"flash_error": "Napaka!",
|
||||
"flash_warning": "Opozorilo!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Izberite ali vnesite veljavno ime izvornega ra\u010duna",
|
||||
"split_transaction_title": "Opis razdeljene transakcije",
|
||||
"errors_submission": "Nekaj je bilo narobe z va\u0161o oddajo. Preverite spodnje napake.",
|
||||
"is_reconciled": "Je usklajena",
|
||||
"split": "Razdeli",
|
||||
"single_split": "Razdeli",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcija \u0161t. #{ID} (\"{title}\")<\/a> je bila shranjena.",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktivno",
|
||||
"interest_date": "Datum obresti",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Naslov",
|
||||
"date": "Datum",
|
||||
"book_date": "Datum knji\u017eenja",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Te\u010daj"
|
||||
},
|
||||
"list": {
|
||||
"title": "Naslov",
|
||||
"active": "Aktiviran?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Spro\u017eilec",
|
||||
"response": "Odziv",
|
||||
"delivery": "Dostava",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tabell",
|
||||
"welcome_back": "Vad spelas?",
|
||||
"flash_error": "Fel!",
|
||||
"flash_warning": "Varning!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Beskrivning av delad transaktion",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Dela",
|
||||
"single_split": "Dela",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaktion #{ID} (\"{title}\")<\/a> sparades.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "Skicka",
|
||||
"amount": "Belopp",
|
||||
"date": "Datum",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etiketter",
|
||||
"no_budget": "(ingen budget)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "L\u00e4nk",
|
||||
"active": "Aktiv",
|
||||
"interest_date": "R\u00e4ntedatum",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Titel",
|
||||
"date": "Datum",
|
||||
"book_date": "Bokf\u00f6ringsdatum",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Titel",
|
||||
"active": "\u00c4r aktiv?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Utl\u00f6sare",
|
||||
"response": "Svar",
|
||||
"delivery": "Leverans",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "Tablo",
|
||||
"welcome_back": "Neler oluyor?",
|
||||
"flash_error": "Hata!",
|
||||
"flash_warning": "Uyar\u0131!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "Description of the split transaction",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "B\u00f6l",
|
||||
"single_split": "B\u00f6l",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0130\u015flem #{ID} (\"{title}\")<\/a> sakl\u0131 olmu\u015ftur.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "G\u00f6nder",
|
||||
"amount": "Miktar",
|
||||
"date": "Tarih",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Etiketler",
|
||||
"no_budget": "(b\u00fct\u00e7e yok)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "Aktif",
|
||||
"interest_date": "Faiz tarihi",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Ba\u015fl\u0131k",
|
||||
"date": "Tarih",
|
||||
"book_date": "Kitap Tarihi",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Ba\u015fl\u0131k",
|
||||
"active": "Aktif mi?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "Trigger",
|
||||
"response": "Response",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f",
|
||||
"welcome_back": "\u0429\u043e \u0432 \u0433\u0430\u043c\u0430\u043d\u0446\u0456?",
|
||||
"flash_error": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430!",
|
||||
"flash_warning": "\u0423\u0432\u0430\u0433\u0430!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0430\u0431\u043e \u0432\u0432\u0435\u0434\u0456\u0442\u044c \u0434\u0456\u0439\u0441\u043d\u0435 \u0456\u043c'\u044f \u0432\u0438\u0445\u0456\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443",
|
||||
"split_transaction_title": "\u041e\u043f\u0438\u0441 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0456\u0457 \u0440\u043e\u0437\u0434\u0456\u043b\u0435\u043d\u043d\u044f",
|
||||
"errors_submission": "\u0429\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u0437 \u0432\u0430\u0448\u043e\u044e \u043f\u0440\u043e\u043f\u043e\u0437\u0438\u0446\u0456\u0454\u044e. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u043f\u043e\u043c\u0438\u043b\u043a\u0438 \u043d\u0438\u0436\u0447\u0435.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\u0420\u043e\u0437\u0434\u0456\u043b\u0438\u0442\u0438",
|
||||
"single_split": "\u0420\u043e\u0437\u0434\u0456\u043b\u0438\u0442\u0438",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0456\u044f #{ID} (\"{title}\")<\/a> \u0431\u0443\u043b\u0430 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0430.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438",
|
||||
"amount": "\u0421\u0443\u043c\u0430",
|
||||
"date": "\u0414\u0430\u0442\u0430",
|
||||
"is_reconciled_fields_dropped": "\u0427\u0435\u0440\u0435\u0437 \u0442\u0435, \u0449\u043e \u0446\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0456\u044f \u0431\u0443\u043b\u0430 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u0430, \u0432\u0438 \u043d\u0435 \u0437\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043d\u043e\u0432\u0438\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0456 \u0437\u0430\u043f\u0438\u0441\u0438, \u0430 \u0442\u0430\u043a\u043e\u0436 \u0441\u0443\u043c\u0438(\u0457).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u0422\u0435\u0433\u0438",
|
||||
"no_budget": "(\u043f\u043e\u0437\u0430 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u043c)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL-\u0430\u0434\u0440\u0435\u0441\u0430",
|
||||
"active": "\u0410\u043a\u0442\u0438\u0432\u043d\u043e",
|
||||
"interest_date": "\u0414\u0430\u0442\u0430 \u043d\u0430\u0440\u0430\u0445\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0456\u0434\u0441\u043e\u0442\u043a\u0456\u0432",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u041d\u0430\u0437\u0432\u0430",
|
||||
"date": "\u0414\u0430\u0442\u0430",
|
||||
"book_date": "\u0414\u0430\u0442\u0430 \u0431\u0440\u043e\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u041d\u0430\u0437\u0432\u0430",
|
||||
"active": "\u0427\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u0438\u0439?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u0422\u0440\u0438\u0433\u0435\u0440",
|
||||
"response": "\u0412\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c",
|
||||
"delivery": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "B\u00e0n",
|
||||
"welcome_back": "Ch\u00e0o m\u1eebng tr\u1edf l\u1ea1i?",
|
||||
"flash_error": "L\u1ed7i!",
|
||||
"flash_warning": "C\u1ea3nh b\u00e1o!",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "Chia ra",
|
||||
"single_split": "Chia ra",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Giao d\u1ecbch #{ID} (\"{title}\")<\/a> \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "G\u1eedi",
|
||||
"amount": "S\u1ed1 ti\u1ec1n",
|
||||
"date": "Ng\u00e0y",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "Nh\u00e3n",
|
||||
"no_budget": "(kh\u00f4ng c\u00f3 ng\u00e2n s\u00e1ch)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "H\u00e0nh \u0111\u1ed9ng",
|
||||
"interest_date": "Ng\u00e0y l\u00e3i",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "Ti\u00eau \u0111\u1ec1",
|
||||
"date": "Ng\u00e0y",
|
||||
"book_date": "Ng\u00e0y \u0111\u1eb7t s\u00e1ch",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "Ti\u00eau \u0111\u1ec1",
|
||||
"active": "\u0110ang ho\u1ea1t \u0111\u1ed9ng?",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "K\u00edch ho\u1ea1t",
|
||||
"response": "\u0110\u00e1p l\u1ea1i",
|
||||
"delivery": "Ph\u00e2n ph\u1ed1i",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u8868\u683c",
|
||||
"welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f",
|
||||
"flash_error": "\u9519\u8bef\uff01",
|
||||
"flash_warning": "\u8b66\u544a\uff01",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "\u8bf7\u9009\u62e9\u6216\u8f93\u5165\u4e00\u4e2a\u6709\u6548\u7684\u6e90\u5e10\u6237\u540d\u79f0",
|
||||
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
|
||||
"errors_submission": "\u60a8\u7684\u63d0\u4ea4\u6709\u8bef\uff0c\u8bf7\u67e5\u770b\u4e0b\u9762\u8f93\u51fa\u7684\u9519\u8bef\u4fe1\u606f\u3002",
|
||||
"is_reconciled": "\u5df2\u6838\u9500",
|
||||
"split": "\u62c6\u5206",
|
||||
"single_split": "\u62c6\u5206",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u4ea4\u6613 #{ID} (\u201c{title}\u201d)<\/a> \u5df2\u4fdd\u5b58\u3002",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u63d0\u4ea4",
|
||||
"amount": "\u91d1\u989d",
|
||||
"date": "\u65e5\u671f",
|
||||
"is_reconciled_fields_dropped": "\u8fd9\u7b14\u4ea4\u6613\u5df2\u7ecf\u5bf9\u8d26\uff0c\u60a8\u65e0\u6cd5\u66f4\u65b0\u8d26\u6237\uff0c\u4e5f\u65e0\u6cd5\u66f4\u65b0\u91d1\u989d\u3002",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u6807\u7b7e",
|
||||
"no_budget": "(\u65e0\u9884\u7b97)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -130,11 +137,11 @@
|
||||
"response": "\u54cd\u5e94",
|
||||
"visit_webhook_url": "\u8bbf\u95ee webhook URL",
|
||||
"reset_webhook_secret": "\u91cd\u7f6e webhook \u5bc6\u94a5",
|
||||
"header_exchange_rates": "Exchange rates",
|
||||
"header_exchange_rates": "\u6c47\u7387",
|
||||
"exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">the documentation<\/a>.",
|
||||
"exchange_rates_from_to": "Between {from} and {to} (and the other way around)",
|
||||
"exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.",
|
||||
"header_exchange_rates_rates": "Exchange rates",
|
||||
"header_exchange_rates_rates": "\u6c47\u7387",
|
||||
"header_exchange_rates_table": "Table with exchange rates",
|
||||
"help_rate_form": "On this day, how many {to} will you get for one {from}?",
|
||||
"add_new_rate": "Add a new exchange rate",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "\u7f51\u5740",
|
||||
"active": "\u542f\u7528",
|
||||
"interest_date": "\u5229\u606f\u65e5\u671f",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u6807\u9898",
|
||||
"date": "\u65e5\u671f",
|
||||
"book_date": "\u767b\u8bb0\u65e5\u671f",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u6807\u9898",
|
||||
"active": "\u662f\u5426\u542f\u7528\uff1f",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u89e6\u53d1\u6761\u4ef6",
|
||||
"response": "\u7b54\u590d",
|
||||
"delivery": "\u4ea4\u4ed8",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"firefly": {
|
||||
"administrations_page_title": "Financial administrations",
|
||||
"administrations_index_menu": "Financial administrations",
|
||||
"temp_administrations_introduction": "Firefly III will soon get the ability to manage multiple financial administrations. Right now, you only have the one. You can set the title of this administration and its native currency. This replaces the previous setting where you would set your \"default currency\". This setting is now tied to the financial administration and can be different per administration.",
|
||||
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
|
||||
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"",
|
||||
"table": "\u8868\u683c",
|
||||
"welcome_back": "What's playing?",
|
||||
"flash_error": "\u932f\u8aa4\uff01",
|
||||
"flash_warning": "\u8b66\u544a\uff01",
|
||||
@@ -9,6 +15,7 @@
|
||||
"select_source_account": "Please select or type a valid source account name",
|
||||
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"is_reconciled": "Is reconciled",
|
||||
"split": "\u5206\u5272",
|
||||
"single_split": "\u62c6\u5206",
|
||||
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
|
||||
@@ -33,7 +40,7 @@
|
||||
"submit": "\u9001\u51fa",
|
||||
"amount": "\u91d1\u984d",
|
||||
"date": "\u65e5\u671f",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
|
||||
"tags": "\u6a19\u7c64",
|
||||
"no_budget": "(\u7121\u9810\u7b97)",
|
||||
"no_bill": "(no subscription)",
|
||||
@@ -144,6 +151,7 @@
|
||||
"url": "URL",
|
||||
"active": "\u555f\u7528",
|
||||
"interest_date": "\u5229\u7387\u65e5\u671f",
|
||||
"administration_currency": "Native currency",
|
||||
"title": "\u6a19\u984c",
|
||||
"date": "\u65e5\u671f",
|
||||
"book_date": "\u767b\u8a18\u65e5\u671f",
|
||||
@@ -161,7 +169,9 @@
|
||||
"rate": "Rate"
|
||||
},
|
||||
"list": {
|
||||
"title": "\u6a19\u984c",
|
||||
"active": "\u662f\u5426\u555f\u7528\uff1f",
|
||||
"native_currency": "Native currency",
|
||||
"trigger": "\u89f8\u767c\u5668",
|
||||
"response": "\u56de\u61c9",
|
||||
"delivery": "Delivery",
|
||||
|
||||
@@ -50,3 +50,7 @@ mix.js('src/webhooks/show.js', 'build/webhooks').vue({version: 2}).copy('build',
|
||||
// exchange rates
|
||||
mix.js('src/exchange-rates/index.js', 'build/exchange-rates').vue({version: 2});
|
||||
mix.js('src/exchange-rates/rates.js', 'build/exchange-rates').vue({version: 2});
|
||||
|
||||
// administrations
|
||||
mix.js('src/administrations/index.js', 'build/administrations').vue({version: 2});
|
||||
mix.js('src/administrations/edit.js', 'build/administrations').vue({version: 2});
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
return [
|
||||
];
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
@@ -56,7 +56,7 @@ return [
|
||||
'transfer_list' => 'Transfers',
|
||||
'transfers_list' => 'Transfers',
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
'reconciliation_list' => 'Reconciliations',
|
||||
'create_withdrawal' => 'Create new withdrawal',
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
@@ -41,7 +41,7 @@ return [
|
||||
// 'month_and_day_no_year' => '%B %e',
|
||||
'month_and_day_no_year_js' => 'MMMM Do',
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
// 'date_time' => '%B %e, %Y, @ %T',
|
||||
'date_time_js' => 'MMMM Do, YYYY, @ HH:mm:ss',
|
||||
@@ -71,5 +71,3 @@ return [
|
||||
'dow_6' => 'Saturday',
|
||||
'dow_7' => 'Sunday',
|
||||
];
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
@@ -37,5 +37,3 @@ return [
|
||||
'piggy-banks-index' => 'As you can see, there are three piggy banks. Use the plus and minus buttons to influence the amount of money in each piggy bank. Click the name of the piggy bank to see the administration for each piggy bank.',
|
||||
'profile-index' => 'Keep in mind that the demo site resets every four hours. Your access may be revoked at any time. This happens automatically and is not a bug.',
|
||||
];
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
@@ -36,7 +36,7 @@ return [
|
||||
'admin_test_body' => 'This is a test message from your Firefly III instance. It was sent to :email.',
|
||||
'admin_test_message' => 'This is a test message from your Firefly III instance over channel ":channel".',
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
// invite
|
||||
'invitation_created_subject' => 'An invitation has been created',
|
||||
@@ -85,7 +85,7 @@ return [
|
||||
'registered_pw_reset_link' => 'Password reset:',
|
||||
'registered_doc_link' => 'Documentation:',
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
// new version
|
||||
'new_version_email_subject' => 'A new Firefly III version is available',
|
||||
@@ -132,7 +132,7 @@ return [
|
||||
'error_headers' => 'The following headers may also be relevant:',
|
||||
'error_post' => 'This was submitted by the user:',
|
||||
|
||||
// Ignore this comment
|
||||
|
||||
|
||||
// report new journals
|
||||
'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions',
|
||||
@@ -190,4 +190,3 @@ return [
|
||||
'mfa_many_failed_attempts_warning' => 'If you did not do this, please contact your administrator immediately or check out the Firefly III documentation.',
|
||||
|
||||
];
|
||||
// Ignore this comment
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user