mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Merge branch 'release/4.8.2-alpha.3'
This commit is contained in:
@@ -26,12 +26,13 @@ APP_URL=http://localhost
|
||||
TRUSTED_PROXIES=
|
||||
|
||||
# The log channel defines where your log entries go to.
|
||||
# - If you use DOCKER, use 'docker_out'
|
||||
# - Docker + versions <= 4.8.1.8 and before: use "stdout"
|
||||
# - Docker + versions > 4.8.1.8: use "docker_out"
|
||||
# - For everything else, use 'daily'
|
||||
|
||||
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
|
||||
# Also available are 'syslog', 'errorlog' and 'stdout' which will log to the system itself.
|
||||
LOG_CHANNEL=docker_out
|
||||
LOG_CHANNEL=stdout
|
||||
|
||||
# Log level. You can set this from least severe to most severe:
|
||||
# debug, info, notice, warning, error, critical, alert, emergency
|
||||
|
||||
@@ -14,21 +14,21 @@ jobs:
|
||||
include:
|
||||
- dist: xenial
|
||||
arch: amd64
|
||||
env: ARCH=amd64 CHANNEL=alpha VERSION=4.8.2-alpha.2
|
||||
env: ARCH=amd64 CHANNEL=alpha VERSION=4.8.2-alpha.3
|
||||
stage: build
|
||||
script: ./.deploy/docker/travis.sh
|
||||
- dist: xenial
|
||||
arch: amd64
|
||||
env: ARCH=arm CHANNEL=alpha VERSION=4.8.2-alpha.2
|
||||
env: ARCH=arm CHANNEL=alpha VERSION=4.8.2-alpha.3
|
||||
stage: build
|
||||
script: ./.deploy/docker/travis.sh
|
||||
- dist: xenial
|
||||
arch: arm64
|
||||
env: ARCH=arm64 CHANNEL=alpha VERSION=4.8.2-alpha.2
|
||||
env: ARCH=arm64 CHANNEL=alpha VERSION=4.8.2-alpha.3
|
||||
stage: build
|
||||
script: ./.deploy/docker/travis.sh
|
||||
- dist: xenial
|
||||
arch: amd64
|
||||
env: CHANNEL=alpha VERSION=4.8.2-alpha.2
|
||||
env: CHANNEL=alpha VERSION=4.8.2-alpha.3
|
||||
stage: manifest
|
||||
script: ./.deploy/docker/manifest.sh
|
||||
50
app/Console/Commands/SetLatestVersion.php
Normal file
50
app/Console/Commands/SetLatestVersion.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace FireflyIII\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class SetLatestVersion extends Command
|
||||
{
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Command description';
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'firefly-iii:set-latest-version {--james-is-cool}';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
if (!$this->option('james-is-cool')) {
|
||||
$this->error('Am too!');
|
||||
|
||||
return;
|
||||
}
|
||||
app('fireflyconfig')->set('db_version', config('firefly.db_version'));
|
||||
app('fireflyconfig')->set('ff3_version', config('firefly.version'));
|
||||
$this->line('Updated version.');
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -101,6 +101,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
|
||||
break;
|
||||
case 'tags.show.all':
|
||||
case 'tags.show':
|
||||
case 'tags.edit':
|
||||
$request->session()->reflash();
|
||||
|
||||
return redirect(route('tags.index'));
|
||||
|
||||
@@ -332,7 +332,7 @@ class TransactionJournalFactory
|
||||
$transactionFactory->setCurrency($sourceCurrency);
|
||||
$transactionFactory->setForeignCurrency($sourceForeignCurrency);
|
||||
$transactionFactory->setReconciled($row['reconciled'] ?? false);
|
||||
$transactionFactory->createNegative((string)$row['amount'], $row['foreign_amount']);
|
||||
$transactionFactory->createNegative((string)$row['amount'], (string)$row['foreign_amount']);
|
||||
|
||||
// and the destination one:
|
||||
/** @var TransactionFactory $transactionFactory */
|
||||
@@ -343,7 +343,7 @@ class TransactionJournalFactory
|
||||
$transactionFactory->setCurrency($destCurrency);
|
||||
$transactionFactory->setForeignCurrency($destForeignCurrency);
|
||||
$transactionFactory->setReconciled($row['reconciled'] ?? false);
|
||||
$transactionFactory->createPositive((string)$row['amount'], $row['foreign_amount']);
|
||||
$transactionFactory->createPositive((string)$row['amount'], (string)$row['foreign_amount']);
|
||||
|
||||
// verify that journal has two transactions. Otherwise, delete and cancel.
|
||||
// TODO this can't be faked so it can't be tested.
|
||||
|
||||
@@ -70,6 +70,8 @@ class GroupCollector implements GroupCollectorInterface
|
||||
private $total;
|
||||
/** @var User The user object. */
|
||||
private $user;
|
||||
/** @var array */
|
||||
private $integerFields;
|
||||
|
||||
/**
|
||||
* Group collector constructor.
|
||||
@@ -84,7 +86,23 @@ class GroupCollector implements GroupCollectorInterface
|
||||
$this->hasBudgetInformation = false;
|
||||
$this->hasBillInformation = false;
|
||||
$this->hasJoinedTagTables = false;
|
||||
|
||||
$this->integerFields = [
|
||||
'transaction_group_id',
|
||||
'user_id',
|
||||
'transaction_journal_id',
|
||||
'transaction_type_id',
|
||||
'order',
|
||||
'source_transaction_id',
|
||||
'source_account_id',
|
||||
'currency_id',
|
||||
'currency_decimal_places',
|
||||
'foreign_currency_id',
|
||||
'foreign_currency_decimal_places',
|
||||
'destination_transaction_id',
|
||||
'destination_account_id',
|
||||
'category_id',
|
||||
'budget_id'
|
||||
];
|
||||
$this->total = 0;
|
||||
$this->fields = [
|
||||
# group
|
||||
@@ -903,6 +921,22 @@ class GroupCollector implements GroupCollectorInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a selected set of fields to arrays.
|
||||
*
|
||||
* @param array $array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function convertToInteger(array $array): array
|
||||
{
|
||||
foreach ($this->integerFields as $field) {
|
||||
$array[$field] = isset($array[$field]) ? (int)$array[$field] : null;
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Join table to get tag information.
|
||||
*/
|
||||
@@ -965,8 +999,8 @@ class GroupCollector implements GroupCollectorInterface
|
||||
// make new array
|
||||
$parsedGroup = $this->parseAugmentedGroup($augumentedJournal);
|
||||
$groupArray = [
|
||||
'id' => $augumentedJournal->transaction_group_id,
|
||||
'user_id' => $augumentedJournal->user_id,
|
||||
'id' => (int)$augumentedJournal->transaction_group_id,
|
||||
'user_id' => (int)$augumentedJournal->user_id,
|
||||
'title' => $augumentedJournal->transaction_group_title,
|
||||
'transaction_type' => $parsedGroup['transaction_type_type'],
|
||||
'count' => 1,
|
||||
@@ -1014,6 +1048,10 @@ class GroupCollector implements GroupCollectorInterface
|
||||
} catch (Exception $e) {
|
||||
Log::error($e->getMessage());
|
||||
}
|
||||
|
||||
// convert values to integers:
|
||||
$result = $this->convertToInteger($result);
|
||||
|
||||
$result['reconciled'] = 1 === (int)$result['reconciled'];
|
||||
if (isset($augumentedJournal['tag_id'])) { // assume the other fields are present as well.
|
||||
$tagId = (int)$augumentedJournal['tag_id'];
|
||||
|
||||
@@ -26,6 +26,7 @@ use Carbon\Carbon;
|
||||
use FireflyIII\Http\Controllers\Controller;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\PiggyBank;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||
@@ -282,6 +283,39 @@ class AutoCompleteController extends Controller
|
||||
return response()->json($return);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* An auto-complete specifically for asset accounts and liabilities, used when mass updating and for rules mostly.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function assetAccounts(Request $request): JsonResponse
|
||||
{
|
||||
$search = $request->get('search');
|
||||
/** @var AccountRepositoryInterface $repository */
|
||||
$repository = app(AccountRepositoryInterface::class);
|
||||
|
||||
// filter the account types:
|
||||
$allowedAccountTypes = [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE];
|
||||
Log::debug(sprintf('Now in expenseAccounts(%s). Filtering results.', $search), $allowedAccountTypes);
|
||||
|
||||
$return = [];
|
||||
$result = $repository->searchAccount((string)$search, $allowedAccountTypes);
|
||||
|
||||
/** @var Account $account */
|
||||
foreach ($result as $account) {
|
||||
$return[] = [
|
||||
'id' => $account->id,
|
||||
'name' => $account->name,
|
||||
'type' => $account->accountType->type,
|
||||
];
|
||||
}
|
||||
|
||||
return response()->json($return);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return JsonResponse
|
||||
* @codeCoverageIgnore
|
||||
@@ -291,7 +325,26 @@ class AutoCompleteController extends Controller
|
||||
/** @var PiggyBankRepositoryInterface $repository */
|
||||
$repository = app(PiggyBankRepositoryInterface::class);
|
||||
|
||||
return response()->json($repository->getPiggyBanks()->toArray());
|
||||
/** @var AccountRepositoryInterface $accountRepos */
|
||||
$accountRepos = app(AccountRepositoryInterface::class);
|
||||
|
||||
$piggies = $repository->getPiggyBanks();
|
||||
$defaultCurrency = \Amount::getDefaultCurrency();
|
||||
$response = [];
|
||||
/** @var PiggyBank $piggy */
|
||||
foreach ($piggies as $piggy) {
|
||||
$currency = $accountRepos->getAccountCurrency($piggy->account) ?? $defaultCurrency;
|
||||
$currentAmount = $repository->getRepetition($piggy)->currentamount ?? '0';
|
||||
$piggy->name_with_amount = sprintf(
|
||||
'%s (%s / %s)',
|
||||
$piggy->name,
|
||||
app('amount')->formatAnything($currency, $currentAmount, false),
|
||||
app('amount')->formatAnything($currency, $piggy->targetamount, false),
|
||||
);
|
||||
$response[] = $piggy->toArray();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -102,6 +102,9 @@ class InstallController extends Controller
|
||||
'firefly-iii:rename-meta-fields' => [],
|
||||
'firefly-iii:fix-ob-currencies' => [],
|
||||
'firefly-iii:fix-long-descriptions' => [],
|
||||
|
||||
// final command to set latest version in DB
|
||||
'firefly-iii:set-latest-version' => ['--james-is-cool' => true],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -557,8 +557,13 @@ class AccountRepository implements AccountRepositoryInterface
|
||||
->orderBy('accounts.name', 'ASC')
|
||||
->with(['accountType']);
|
||||
if ('' !== $query) {
|
||||
$search = sprintf('%%%s%%', $query);
|
||||
$dbQuery->where('name', 'LIKE', $search);
|
||||
// split query on spaces just in case:
|
||||
$parts = explode(' ', $query);
|
||||
foreach($parts as $part) {
|
||||
$search = sprintf('%%%s%%', $part);
|
||||
$dbQuery->where('name', 'LIKE', $search);
|
||||
}
|
||||
|
||||
}
|
||||
if (count($types) > 0) {
|
||||
$dbQuery->leftJoin('account_types', 'accounts.account_type_id', '=', 'account_types.id');
|
||||
|
||||
@@ -418,9 +418,11 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
|
||||
*/
|
||||
public function getPiggyBanks(): Collection
|
||||
{
|
||||
return $this->user->piggyBanks()->orderBy('order', 'ASC')->get();
|
||||
return $this->user->piggyBanks()->with(['account'])->orderBy('order', 'ASC')->get();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Also add amount in name.
|
||||
*
|
||||
|
||||
@@ -575,8 +575,7 @@ trait PeriodOverview
|
||||
$return[$currencyId]['amount'] = bcadd($return[$currencyId]['amount'], $journal['amount'] ?? '0');
|
||||
$return[$currencyId]['count']++;
|
||||
|
||||
|
||||
if (null !== $foreignCurrencyId) {
|
||||
if (null !== $foreignCurrencyId && null !== $journal['foreign_amount']) {
|
||||
if (!isset($return[$foreignCurrencyId])) {
|
||||
$return[$foreignCurrencyId] = [
|
||||
'amount' => '0',
|
||||
|
||||
@@ -72,7 +72,7 @@ trait UserNavigation
|
||||
return false;
|
||||
}
|
||||
$type = $journal->transactionType->type;
|
||||
$editable = [TransactionType::WITHDRAWAL, TransactionType::TRANSFER, TransactionType::DEPOSIT];
|
||||
$editable = [TransactionType::WITHDRAWAL, TransactionType::TRANSFER, TransactionType::DEPOSIT, TransactionType::RECONCILIATION];
|
||||
|
||||
return in_array($type, $editable, true);
|
||||
}
|
||||
|
||||
@@ -83,6 +83,7 @@ class Navigation
|
||||
$date->$function($add);
|
||||
|
||||
// if period is 1M and diff in month is 2 and new DOM > 1, sub a number of days:
|
||||
// AND skip is 1
|
||||
// result is:
|
||||
// '2019-01-29', '2019-02-28'
|
||||
// '2019-01-30', '2019-02-28'
|
||||
@@ -90,7 +91,7 @@ class Navigation
|
||||
|
||||
$months = ['1M', 'month', 'monthly'];
|
||||
$difference = $date->month - $theDate->month;
|
||||
if (2 === $difference && $date->day > 0 && in_array($repeatFreq, $months, true)) {
|
||||
if (1 === $add && 2 === $difference && $date->day > 0 && in_array($repeatFreq, $months, true)) {
|
||||
$date->subDays($date->day);
|
||||
}
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
"@php artisan firefly-iii:report-empty-objects",
|
||||
"@php artisan firefly-iii:report-sum",
|
||||
"@php artisan firefly-iii:restore-oauth-keys",
|
||||
|
||||
"@php artisan firefly-iii:set-latest-version --james-is-cool",
|
||||
"@php artisan firefly:instructions update",
|
||||
"@php artisan passport:install"
|
||||
],
|
||||
|
||||
326
composer.lock
generated
326
composer.lock
generated
@@ -8,16 +8,16 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "adldap2/adldap2",
|
||||
"version": "v10.1.1",
|
||||
"version": "v10.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Adldap2/Adldap2.git",
|
||||
"reference": "9252328a3fb8ea7be7194fd0d956e40ce3e51149"
|
||||
"reference": "aebcb3005552c15de6c8a04358683b810900ed65"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Adldap2/Adldap2/zipball/9252328a3fb8ea7be7194fd0d956e40ce3e51149",
|
||||
"reference": "9252328a3fb8ea7be7194fd0d956e40ce3e51149",
|
||||
"url": "https://api.github.com/repos/Adldap2/Adldap2/zipball/aebcb3005552c15de6c8a04358683b810900ed65",
|
||||
"reference": "aebcb3005552c15de6c8a04358683b810900ed65",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -63,7 +63,7 @@
|
||||
"ldap",
|
||||
"windows"
|
||||
],
|
||||
"time": "2019-09-24T13:06:16+00:00"
|
||||
"time": "2019-11-06T14:37:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "adldap2/adldap2-laravel",
|
||||
@@ -525,16 +525,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
"version": "v1.8.1",
|
||||
"version": "1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/cache.git",
|
||||
"reference": "d4374ae95b36062d02ef310100ed33d78738d76c"
|
||||
"reference": "c15dcd24b756f9e52ea7c3ae8227354f3628f11a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/d4374ae95b36062d02ef310100ed33d78738d76c",
|
||||
"reference": "d4374ae95b36062d02ef310100ed33d78738d76c",
|
||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/c15dcd24b756f9e52ea7c3ae8227354f3628f11a",
|
||||
"reference": "c15dcd24b756f9e52ea7c3ae8227354f3628f11a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -545,7 +545,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"alcaeus/mongo-php-adapter": "^1.1",
|
||||
"doctrine/coding-standard": "^4.0",
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"mongodb/mongodb": "^1.1",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"predis/predis": "~1.0"
|
||||
@@ -556,7 +556,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8.x-dev"
|
||||
"dev-master": "1.9.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -590,13 +590,21 @@
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Caching library offering an object-oriented API for many cache backends",
|
||||
"homepage": "https://www.doctrine-project.org",
|
||||
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/cache.html",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"apcu",
|
||||
"cache",
|
||||
"caching"
|
||||
"caching",
|
||||
"couchdb",
|
||||
"memcached",
|
||||
"php",
|
||||
"redis",
|
||||
"riak",
|
||||
"xcache"
|
||||
],
|
||||
"time": "2019-10-28T09:31:32+00:00"
|
||||
"time": "2019-11-11T10:31:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
@@ -692,16 +700,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/event-manager",
|
||||
"version": "v1.0.0",
|
||||
"version": "1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/event-manager.git",
|
||||
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
|
||||
"reference": "629572819973f13486371cb611386eb17851e85c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
|
||||
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
|
||||
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
|
||||
"reference": "629572819973f13486371cb611386eb17851e85c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -711,7 +719,7 @@
|
||||
"doctrine/common": "<2.9@dev"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^4.0",
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -730,6 +738,10 @@
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
@@ -738,10 +750,6 @@
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
@@ -755,27 +763,29 @@
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Doctrine Event Manager component",
|
||||
"description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
|
||||
"keywords": [
|
||||
"event",
|
||||
"eventdispatcher",
|
||||
"eventmanager"
|
||||
"event dispatcher",
|
||||
"event manager",
|
||||
"event system",
|
||||
"events"
|
||||
],
|
||||
"time": "2018-06-11T11:59:03+00:00"
|
||||
"time": "2019-11-10T09:48:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
"version": "v1.3.0",
|
||||
"version": "1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/inflector.git",
|
||||
"reference": "5527a48b7313d15261292c149e55e26eae771b0a"
|
||||
"reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
|
||||
"reference": "5527a48b7313d15261292c149e55e26eae771b0a",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
|
||||
"reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -800,6 +810,10 @@
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
@@ -808,10 +822,6 @@
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
@@ -829,20 +839,20 @@
|
||||
"singularize",
|
||||
"string"
|
||||
],
|
||||
"time": "2018-01-09T20:05:19+00:00"
|
||||
"time": "2019-10-30T19:59:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "e17f069ede36f7534b95adec71910ed1b49c74ea"
|
||||
"reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e17f069ede36f7534b95adec71910ed1b49c74ea",
|
||||
"reference": "e17f069ede36f7534b95adec71910ed1b49c74ea",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6",
|
||||
"reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -856,7 +866,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1.x-dev"
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -891,7 +901,7 @@
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2019-07-30T19:33:28+00:00"
|
||||
"time": "2019-10-30T14:39:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "dragonmantank/cron-expression",
|
||||
@@ -1727,16 +1737,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/commonmark",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/commonmark.git",
|
||||
"reference": "d927c05e9a391688b1e59a606c97465a90531789"
|
||||
"reference": "d74654d85954e3b9451d67faaebacd210fc70252"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d927c05e9a391688b1e59a606c97465a90531789",
|
||||
"reference": "d927c05e9a391688b1e59a606c97465a90531789",
|
||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d74654d85954e3b9451d67faaebacd210fc70252",
|
||||
"reference": "d74654d85954e3b9451d67faaebacd210fc70252",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1794,7 +1804,7 @@
|
||||
"markdown",
|
||||
"parser"
|
||||
],
|
||||
"time": "2019-10-31T13:30:15+00:00"
|
||||
"time": "2019-11-11T22:23:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/csv",
|
||||
@@ -2512,24 +2522,24 @@
|
||||
},
|
||||
{
|
||||
"name": "paragonie/constant_time_encoding",
|
||||
"version": "v2.2.3",
|
||||
"version": "v2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
||||
"reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb"
|
||||
"reference": "47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/55af0dc01992b4d0da7f6372e2eac097bbbaffdb",
|
||||
"reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb",
|
||||
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2",
|
||||
"reference": "47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7"
|
||||
"php": "^7|^8"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6|^7",
|
||||
"vimeo/psalm": "^1|^2"
|
||||
"vimeo/psalm": "^1|^2|^3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -2544,15 +2554,15 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Paragon Initiative Enterprises",
|
||||
"role": "Maintainer",
|
||||
"email": "security@paragonie.com",
|
||||
"homepage": "https://paragonie.com"
|
||||
"homepage": "https://paragonie.com",
|
||||
"role": "Maintainer"
|
||||
},
|
||||
{
|
||||
"name": "Steve 'Sc00bz' Thomas",
|
||||
"role": "Original Developer",
|
||||
"email": "steve@tobtu.com",
|
||||
"homepage": "https://www.tobtu.com"
|
||||
"homepage": "https://www.tobtu.com",
|
||||
"role": "Original Developer"
|
||||
}
|
||||
],
|
||||
"description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
|
||||
@@ -2570,7 +2580,7 @@
|
||||
"hex2bin",
|
||||
"rfc4648"
|
||||
],
|
||||
"time": "2019-01-03T20:26:31+00:00"
|
||||
"time": "2019-11-06T19:20:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
@@ -2619,28 +2629,28 @@
|
||||
},
|
||||
{
|
||||
"name": "phpoption/phpoption",
|
||||
"version": "1.5.0",
|
||||
"version": "1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/schmittjoh/php-option.git",
|
||||
"reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed"
|
||||
"reference": "2ba2586380f8d2b44ad1b9feb61c371020b27793"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",
|
||||
"reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed",
|
||||
"url": "https://api.github.com/repos/schmittjoh/php-option/zipball/2ba2586380f8d2b44ad1b9feb61c371020b27793",
|
||||
"reference": "2ba2586380f8d2b44ad1b9feb61c371020b27793",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.7.*"
|
||||
"phpunit/phpunit": "^4.7|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3-dev"
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -2650,7 +2660,7 @@
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache2"
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
@@ -2665,7 +2675,7 @@
|
||||
"php",
|
||||
"type"
|
||||
],
|
||||
"time": "2015-07-25T16:39:46+00:00"
|
||||
"time": "2019-11-06T22:27:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpseclib/phpseclib",
|
||||
@@ -3513,16 +3523,16 @@
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v6.2.1",
|
||||
"version": "v6.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
||||
"reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a"
|
||||
"reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
|
||||
"reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
|
||||
"reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3571,20 +3581,20 @@
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2019-04-21T09:21:45+00:00"
|
||||
"time": "2019-11-12T09:31:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "136c4bd62ea871d00843d1bc0316de4c4a84bb78"
|
||||
"reference": "d2e39dbddae68560fa6be0c576da6ad4e945b90d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/136c4bd62ea871d00843d1bc0316de4c4a84bb78",
|
||||
"reference": "136c4bd62ea871d00843d1bc0316de4c4a84bb78",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/d2e39dbddae68560fa6be0c576da6ad4e945b90d",
|
||||
"reference": "d2e39dbddae68560fa6be0c576da6ad4e945b90d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3646,11 +3656,11 @@
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-10-30T12:58:49+00:00"
|
||||
"time": "2019-11-05T15:00:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
@@ -3703,7 +3713,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
@@ -3759,16 +3769,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "6229f58993e5a157f6096fc7145c0717d0be8807"
|
||||
"reference": "0df002fd4f500392eabd243c2947061a50937287"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6229f58993e5a157f6096fc7145c0717d0be8807",
|
||||
"reference": "6229f58993e5a157f6096fc7145c0717d0be8807",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0df002fd4f500392eabd243c2947061a50937287",
|
||||
"reference": "0df002fd4f500392eabd243c2947061a50937287",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3825,7 +3835,7 @@
|
||||
],
|
||||
"description": "Symfony EventDispatcher Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-10-01T16:40:32+00:00"
|
||||
"time": "2019-11-03T09:04:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
@@ -3887,7 +3897,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
@@ -3936,16 +3946,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "38f63e471cda9d37ac06e76d14c5ea2ec5887051"
|
||||
"reference": "514e5bbcbc783465c6fce5a7b2e28657f2e114b7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/38f63e471cda9d37ac06e76d14c5ea2ec5887051",
|
||||
"reference": "38f63e471cda9d37ac06e76d14c5ea2ec5887051",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/514e5bbcbc783465c6fce5a7b2e28657f2e114b7",
|
||||
"reference": "514e5bbcbc783465c6fce5a7b2e28657f2e114b7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3987,20 +3997,20 @@
|
||||
],
|
||||
"description": "Symfony HttpFoundation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-10-30T12:58:49+00:00"
|
||||
"time": "2019-11-05T14:48:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "56acfda9e734e8715b3b0e6859cdb4f5b28757bf"
|
||||
"reference": "9f493716a89635b64ae15b01cb2a8fc093a95bce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/56acfda9e734e8715b3b0e6859cdb4f5b28757bf",
|
||||
"reference": "56acfda9e734e8715b3b0e6859cdb4f5b28757bf",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/9f493716a89635b64ae15b01cb2a8fc093a95bce",
|
||||
"reference": "9f493716a89635b64ae15b01cb2a8fc093a95bce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4079,11 +4089,11 @@
|
||||
],
|
||||
"description": "Symfony HttpKernel Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-11-01T10:00:03+00:00"
|
||||
"time": "2019-11-11T16:38:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
@@ -4601,7 +4611,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
@@ -4715,16 +4725,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "63a9920cc86fcc745e5ea254e362f02b615290b9"
|
||||
"reference": "533fd12a41fb9ce8d4e861693365427849487c0e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/63a9920cc86fcc745e5ea254e362f02b615290b9",
|
||||
"reference": "63a9920cc86fcc745e5ea254e362f02b615290b9",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/533fd12a41fb9ce8d4e861693365427849487c0e",
|
||||
"reference": "533fd12a41fb9ce8d4e861693365427849487c0e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4787,20 +4797,20 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2019-10-30T12:58:49+00:00"
|
||||
"time": "2019-11-04T20:23:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
"version": "v1.1.7",
|
||||
"version": "v1.1.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "ffcde9615dc5bb4825b9f6aed07716f1f57faae0"
|
||||
"reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffcde9615dc5bb4825b9f6aed07716f1f57faae0",
|
||||
"reference": "ffcde9615dc5bb4825b9f6aed07716f1f57faae0",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf",
|
||||
"reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4845,20 +4855,20 @@
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"time": "2019-09-17T11:12:18+00:00"
|
||||
"time": "2019-10-14T12:27:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "a3aa590ce944afb3434d7a55f81b00927144d5ec"
|
||||
"reference": "bbce239b35b0cd47bd75848b23e969f17dd970e7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/a3aa590ce944afb3434d7a55f81b00927144d5ec",
|
||||
"reference": "a3aa590ce944afb3434d7a55f81b00927144d5ec",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/bbce239b35b0cd47bd75848b23e969f17dd970e7",
|
||||
"reference": "bbce239b35b0cd47bd75848b23e969f17dd970e7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4921,7 +4931,7 @@
|
||||
],
|
||||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-10-30T12:53:54+00:00"
|
||||
"time": "2019-11-06T23:21:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
@@ -4982,7 +4992,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
@@ -5058,16 +5068,16 @@
|
||||
},
|
||||
{
|
||||
"name": "tightenco/collect",
|
||||
"version": "v6.4.1",
|
||||
"version": "v6.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tightenco/collect.git",
|
||||
"reference": "9796fcd7ad3286dda60d0cf5120afbff8e3b9db6"
|
||||
"reference": "afe2597c5ca6344dc47905743a0b73220f6cca8a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tightenco/collect/zipball/9796fcd7ad3286dda60d0cf5120afbff8e3b9db6",
|
||||
"reference": "9796fcd7ad3286dda60d0cf5120afbff8e3b9db6",
|
||||
"url": "https://api.github.com/repos/tightenco/collect/zipball/afe2597c5ca6344dc47905743a0b73220f6cca8a",
|
||||
"reference": "afe2597c5ca6344dc47905743a0b73220f6cca8a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5104,7 +5114,7 @@
|
||||
"collection",
|
||||
"laravel"
|
||||
],
|
||||
"time": "2019-10-23T21:04:40+00:00"
|
||||
"time": "2019-11-13T04:13:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tijsverkoyen/css-to-inline-styles",
|
||||
@@ -5157,16 +5167,16 @@
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v1.42.3",
|
||||
"version": "v1.42.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "201baee843e0ffe8b0b956f336dd42b2a92fae4e"
|
||||
"reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/201baee843e0ffe8b0b956f336dd42b2a92fae4e",
|
||||
"reference": "201baee843e0ffe8b0b956f336dd42b2a92fae4e",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152",
|
||||
"reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5199,19 +5209,19 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"role": "Lead Developer",
|
||||
"email": "fabien@symfony.com",
|
||||
"homepage": "http://fabien.potencier.org"
|
||||
"homepage": "http://fabien.potencier.org",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "Twig Team",
|
||||
"role": "Contributors",
|
||||
"homepage": "https://twig.symfony.com/contributors"
|
||||
"homepage": "https://twig.symfony.com/contributors",
|
||||
"role": "Contributors"
|
||||
},
|
||||
{
|
||||
"name": "Armin Ronacher",
|
||||
"role": "Project Founder",
|
||||
"email": "armin.ronacher@active-4.com"
|
||||
"email": "armin.ronacher@active-4.com",
|
||||
"role": "Project Founder"
|
||||
}
|
||||
],
|
||||
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||
@@ -5219,7 +5229,7 @@
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2019-08-24T12:51:03+00:00"
|
||||
"time": "2019-11-11T16:49:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
@@ -5280,16 +5290,16 @@
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-diactoros",
|
||||
"version": "2.1.5",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-diactoros.git",
|
||||
"reference": "6dcf9e760a6b476f3e9d80abbc9ce9c4aa921f9c"
|
||||
"reference": "66eded992a75bfe75a829005a2884aae5ca86daa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/6dcf9e760a6b476f3e9d80abbc9ce9c4aa921f9c",
|
||||
"reference": "6dcf9e760a6b476f3e9d80abbc9ce9c4aa921f9c",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/66eded992a75bfe75a829005a2884aae5ca86daa",
|
||||
"reference": "66eded992a75bfe75a829005a2884aae5ca86daa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5343,7 +5353,7 @@
|
||||
"psr",
|
||||
"psr-7"
|
||||
],
|
||||
"time": "2019-10-10T17:38:20+00:00"
|
||||
"time": "2019-11-12T17:26:16+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@@ -5727,24 +5737,24 @@
|
||||
},
|
||||
{
|
||||
"name": "composer/xdebug-handler",
|
||||
"version": "1.3.3",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/xdebug-handler.git",
|
||||
"reference": "46867cbf8ca9fb8d60c506895449eb799db1184f"
|
||||
"reference": "cbe23383749496fe0f373345208b79568e4bc248"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f",
|
||||
"reference": "46867cbf8ca9fb8d60c506895449eb799db1184f",
|
||||
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248",
|
||||
"reference": "cbe23383749496fe0f373345208b79568e4bc248",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0",
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -5762,25 +5772,25 @@
|
||||
"email": "john-stevenson@blueyonder.co.uk"
|
||||
}
|
||||
],
|
||||
"description": "Restarts a process without xdebug.",
|
||||
"description": "Restarts a process without Xdebug.",
|
||||
"keywords": [
|
||||
"Xdebug",
|
||||
"performance"
|
||||
],
|
||||
"time": "2019-05-27T17:52:04+00:00"
|
||||
"time": "2019-11-06T16:40:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.2.0",
|
||||
"version": "1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/instantiator.git",
|
||||
"reference": "a2c590166b2133a4633738648b6b064edae0814a"
|
||||
"reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
|
||||
"reference": "a2c590166b2133a4633738648b6b064edae0814a",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
|
||||
"reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5823,7 +5833,7 @@
|
||||
"constructor",
|
||||
"instantiate"
|
||||
],
|
||||
"time": "2019-03-17T17:37:11+00:00"
|
||||
"time": "2019-10-21T16:45:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
@@ -6780,16 +6790,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "8.4.2",
|
||||
"version": "8.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "a142a7e66c0ea7b5b6c04ee27f08d10d1137cd9b"
|
||||
"reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a142a7e66c0ea7b5b6c04ee27f08d10d1137cd9b",
|
||||
"reference": "a142a7e66c0ea7b5b6c04ee27f08d10d1137cd9b",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/67f9e35bffc0dd52d55d565ddbe4230454fd6a4e",
|
||||
"reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6859,7 +6869,7 @@
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2019-10-28T10:39:51+00:00"
|
||||
"time": "2019-11-06T09:42:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "roave/security-advisories",
|
||||
@@ -6867,12 +6877,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
||||
"reference": "f8c8349a4b12a26edfa8b21d07d3dbeb6dcedcfa"
|
||||
"reference": "15eb463aecc9e315b89b744ee0feb0bb1b4c6787"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/f8c8349a4b12a26edfa8b21d07d3dbeb6dcedcfa",
|
||||
"reference": "f8c8349a4b12a26edfa8b21d07d3dbeb6dcedcfa",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/15eb463aecc9e315b89b744ee0feb0bb1b4c6787",
|
||||
"reference": "15eb463aecc9e315b89b744ee0feb0bb1b4c6787",
|
||||
"shasum": ""
|
||||
},
|
||||
"conflict": {
|
||||
@@ -6961,7 +6971,7 @@
|
||||
"propel/propel": ">=2-alpha.1,<=2-alpha.7",
|
||||
"propel/propel1": ">=1,<=1.7.1",
|
||||
"pusher/pusher-php-server": "<2.2.1",
|
||||
"robrichards/xmlseclibs": ">=1,<3.0.2",
|
||||
"robrichards/xmlseclibs": ">=1,<3.0.4",
|
||||
"sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9",
|
||||
"sensiolabs/connect": "<4.2.3",
|
||||
"serluck/phpwhois": "<=4.2.6",
|
||||
@@ -7075,7 +7085,7 @@
|
||||
}
|
||||
],
|
||||
"description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
|
||||
"time": "2019-10-29T22:11:03+00:00"
|
||||
"time": "2019-11-07T10:12:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/code-unit-reverse-lookup",
|
||||
@@ -7787,7 +7797,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v4.3.6",
|
||||
"version": "v4.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
|
||||
@@ -125,7 +125,7 @@ return [
|
||||
'is_demo_site' => false,
|
||||
],
|
||||
'encryption' => null === env('USE_ENCRYPTION') || env('USE_ENCRYPTION') === true,
|
||||
'version' => '4.8.2-alpha.2',
|
||||
'version' => '4.8.2-alpha.3',
|
||||
'api_version' => '0.10.5',
|
||||
'db_version' => 11,
|
||||
'maxUploadSize' => 15242880,
|
||||
|
||||
2
public/v1/js/app.js
vendored
2
public/v1/js/app.js
vendored
File diff suppressed because one or more lines are too long
6
public/v1/js/ff/rules/create-edit.js
vendored
6
public/v1/js/ff/rules/create-edit.js
vendored
@@ -252,11 +252,11 @@ function updateActionInput(selectList) {
|
||||
break;
|
||||
case 'set_source_account':
|
||||
console.log('Select list value is ' + selectList.val() + ', so input needs auto complete.');
|
||||
createAutoComplete(inputResult, 'json/all-accounts');
|
||||
createAutoComplete(inputResult, 'json/accounts');
|
||||
break;
|
||||
case 'set_destination_account':
|
||||
console.log('Select list value is ' + selectList.val() + ', so input needs auto complete.');
|
||||
createAutoComplete(inputResult, 'json/all-accounts');
|
||||
createAutoComplete(inputResult, 'json/accounts');
|
||||
break;
|
||||
case 'convert_withdrawal':
|
||||
console.log('Select list value is ' + selectList.val() + ', so input needs expense accounts auto complete.');
|
||||
@@ -434,4 +434,4 @@ function testRuleTriggers() {
|
||||
alert('Cannot get transactions for given triggers.');
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,11 +95,13 @@
|
||||
}
|
||||
},
|
||||
ready() {
|
||||
// console.log('ready(): this.name = this.accountName (' + this.accountName + ')');
|
||||
this.name = this.accountName;
|
||||
},
|
||||
mounted() {
|
||||
this.target = this.$refs.input;
|
||||
let types = this.allowedTypes.join(',');
|
||||
// console.log('mounted(): this.name = this.accountName (' + this.accountName + ')');
|
||||
this.name = this.accountName;
|
||||
this.accountAutoCompleteURI = document.getElementsByTagName('base')[0].href + "json/accounts?types=" + types + "&search=";
|
||||
this.triggerTransactionType();
|
||||
@@ -115,6 +117,10 @@
|
||||
types = this.defaultAccountTypeFilters.join(',');
|
||||
}
|
||||
this.accountAutoCompleteURI = document.getElementsByTagName('base')[0].href + "json/accounts?types=" + types + "&search=";
|
||||
},
|
||||
name() {
|
||||
// console.log('Watch: name()');
|
||||
// console.log(this.name);
|
||||
}
|
||||
},
|
||||
methods:
|
||||
@@ -123,7 +129,16 @@
|
||||
return this.error.length > 0;
|
||||
},
|
||||
triggerTransactionType: function () {
|
||||
// console.log('On triggerTransactionType(' + this.inputName + ')');
|
||||
if(null === this.name) {
|
||||
// console.log('this.name is NULL.');
|
||||
}
|
||||
if (null === this.transactionType) {
|
||||
// console.log('Transaction type is NULL.');
|
||||
return;
|
||||
}
|
||||
if ('' === this.transactionType) {
|
||||
// console.log('Transaction type is "".');
|
||||
return;
|
||||
}
|
||||
this.inputDisabled = false;
|
||||
@@ -148,21 +163,24 @@
|
||||
}
|
||||
},
|
||||
selectedItem: function (e) {
|
||||
//console.log('In SelectedItem()');
|
||||
// console.log('In SelectedItem()');
|
||||
if (typeof this.name === 'undefined') {
|
||||
//console.log('Is undefined');
|
||||
// console.log('Is undefined');
|
||||
return;
|
||||
}
|
||||
if(typeof this.name === 'string') {
|
||||
//console.log('Is a string.');
|
||||
// console.log('Is a string.');
|
||||
//this.trType = null;
|
||||
this.$emit('clear:value');
|
||||
}
|
||||
// emit the fact that the user selected a type of account
|
||||
// (influencing the destination)
|
||||
// console.log('Is some object maybe:');
|
||||
// console.log(this.name);
|
||||
this.$emit('select:account', this.name);
|
||||
},
|
||||
clearSource: function (e) {
|
||||
// console.log('clearSource()');
|
||||
//props.value = '';
|
||||
this.name = '';
|
||||
// some event?
|
||||
|
||||
@@ -22,10 +22,9 @@
|
||||
<div class="form-group" v-bind:class="{ 'has-error': hasError()}">
|
||||
<label class="col-sm-4 control-label" ref="cur"></label>
|
||||
<div class="col-sm-8">
|
||||
<input type="number" ref="amount" :value="value" @input="handleInput" step="any"
|
||||
class="form-control"
|
||||
<input type="number" @input="handleInput" ref="amount" :value="value" step="any" class="form-control"
|
||||
name="amount[]"
|
||||
title="amount" autocomplete="off" v-bind:placeholder="$t('firefly.amount')">
|
||||
title="$t('firefly.amount')" autocomplete="off" v-bind:placeholder="$t('firefly.amount')">
|
||||
<ul class="list-unstyled" v-for="error in this.error">
|
||||
<li class="text-danger">{{ error }}</li>
|
||||
</ul>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
{{ $t('firefly.split_title_help')}}
|
||||
{{ $t('firefly.split_transaction_title')}}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
@@ -219,6 +219,7 @@
|
||||
},
|
||||
methods: {
|
||||
convertData: function () {
|
||||
// console.log('Now in convertData()');
|
||||
let data = {
|
||||
'transactions': [],
|
||||
};
|
||||
@@ -254,6 +255,7 @@
|
||||
return data;
|
||||
},
|
||||
convertDataRow(row, index, transactionType) {
|
||||
// console.log('Now in convertDataRow()');
|
||||
let tagList = [];
|
||||
let foreignAmount = null;
|
||||
let foreignCurrency = null;
|
||||
@@ -371,6 +373,7 @@
|
||||
},
|
||||
// submit transaction
|
||||
submit(e) {
|
||||
// console.log('Now in submit()');
|
||||
const uri = './api/v1/transactions?_token=' + document.head.querySelector('meta[name="csrf-token"]').content;
|
||||
const data = this.convertData();
|
||||
|
||||
@@ -378,10 +381,11 @@
|
||||
button.prop("disabled", true);
|
||||
|
||||
axios.post(uri, data).then(response => {
|
||||
|
||||
// console.log('Did a succesfull POST');
|
||||
// this method will ultimately send the user on (or not).
|
||||
if (0 === this.collectAttachmentData(response)) {
|
||||
this.redirectUser(response.data.data.id, button);
|
||||
// console.log('Will now go to redirectUser()');
|
||||
this.redirectUser(response.data.data.id, button, response.data.data);
|
||||
}
|
||||
}).catch(error => {
|
||||
// give user errors things back.
|
||||
@@ -397,19 +401,27 @@
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
redirectUser(groupId, button) {
|
||||
//console.log('In redirectUser()');
|
||||
escapeHTML(unsafeText) {
|
||||
let div = document.createElement('div');
|
||||
div.innerText = unsafeText;
|
||||
return div.innerHTML;
|
||||
},
|
||||
redirectUser(groupId, button, transactionData) {
|
||||
// console.log('In redirectUser()');
|
||||
// console.log(transactionData);
|
||||
let title = null === transactionData.attributes.group_title ? transactionData.attributes.transactions[0].description : transactionData.attributes.group_title;
|
||||
// console.log('Title is "' + title + '"');
|
||||
// if count is 0, send user onwards.
|
||||
if (this.createAnother) {
|
||||
//console.log('Will create another.');
|
||||
|
||||
// do message:
|
||||
this.success_message = '<a href="transactions/show/' + groupId + '">Transaction #' + groupId + '</a> has been stored.';
|
||||
this.success_message = '<a href="transactions/show/' + groupId + '">Transaction #' + groupId + ' ("' + this.escapeHTML(title) + '")</a> has been stored.';
|
||||
this.error_message = '';
|
||||
if (this.resetFormAfter) {
|
||||
// also clear form.
|
||||
this.resetTransactions();
|
||||
this.addTransactionToArray();
|
||||
// do a short time out?
|
||||
setTimeout(() => this.addTransactionToArray(), 50);
|
||||
//this.addTransactionToArray();
|
||||
}
|
||||
|
||||
// clear errors:
|
||||
@@ -472,7 +484,7 @@
|
||||
}
|
||||
);
|
||||
if (fileData.length === count) {
|
||||
theParent.uploadFiles(fileData, groupId);
|
||||
theParent.uploadFiles(fileData, groupId, response.data.data);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -483,7 +495,7 @@
|
||||
return count;
|
||||
},
|
||||
|
||||
uploadFiles(fileData, groupId) {
|
||||
uploadFiles(fileData, groupId, transactionData) {
|
||||
let count = fileData.length;
|
||||
let uploads = 0;
|
||||
for (const key in fileData) {
|
||||
@@ -502,13 +514,13 @@
|
||||
// console.log('Uploading attachment #' + key);
|
||||
const uploadUri = './api/v1/attachments/' + response.data.data.id + '/upload';
|
||||
axios.post(uploadUri, fileData[key].content)
|
||||
.then(response => {
|
||||
.then(attachmentResponse => {
|
||||
// console.log('Uploaded attachment #' + key);
|
||||
uploads++;
|
||||
if (uploads === count) {
|
||||
// finally we can redirect the user onwards.
|
||||
// console.log('FINAL UPLOAD');
|
||||
this.redirectUser(groupId);
|
||||
this.redirectUser(groupId, null, transactionData);
|
||||
}
|
||||
// console.log('Upload complete!');
|
||||
return true;
|
||||
@@ -520,7 +532,7 @@
|
||||
if (uploads === count) {
|
||||
// finally we can redirect the user onwards.
|
||||
// console.log('FINAL UPLOAD');
|
||||
this.redirectUser(groupId);
|
||||
this.redirectUser(groupId, null, transactionData);
|
||||
}
|
||||
// console.log('Upload complete!');
|
||||
return false;
|
||||
@@ -619,9 +631,11 @@
|
||||
}
|
||||
},
|
||||
resetTransactions: function () {
|
||||
// console.log('Now in resetTransactions()');
|
||||
this.transactions = [];
|
||||
},
|
||||
addTransactionToArray: function (e) {
|
||||
// console.log('Now in addTransactionToArray()');
|
||||
this.transactions.push({
|
||||
description: "",
|
||||
date: "",
|
||||
@@ -693,9 +707,13 @@
|
||||
}
|
||||
});
|
||||
if (this.transactions.length === 1) {
|
||||
// console.log('Length == 1, set date to today.');
|
||||
// set first date.
|
||||
let today = new Date();
|
||||
this.transactions[0].date = today.getFullYear() + '-' + ("0" + (today.getMonth() + 1)).slice(-2) + '-' + ("0" + today.getDate()).slice(-2);
|
||||
// call for extra clear thing:
|
||||
// this.clearSource(0);
|
||||
//this.clearDestination(0);
|
||||
}
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
@@ -735,6 +753,7 @@
|
||||
},
|
||||
|
||||
selectedSourceAccount: function (index, model) {
|
||||
// console.log('Now in selectedSourceAccount()');
|
||||
if (typeof model === 'string') {
|
||||
// cant change types, only name.
|
||||
this.transactions[index].source_account.name = model;
|
||||
@@ -756,6 +775,7 @@
|
||||
}
|
||||
},
|
||||
selectedDestinationAccount: function (index, model) {
|
||||
// console.log('Now in selectedDestinationAccount()');
|
||||
if (typeof model === 'string') {
|
||||
// cant change types, only name.
|
||||
this.transactions[index].destination_account.name = model;
|
||||
|
||||
@@ -76,13 +76,13 @@
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<transaction-description
|
||||
<transaction-description v-if="transactionType.toLowerCase() !== 'reconciliation'"
|
||||
v-model="transaction.description"
|
||||
:index="index"
|
||||
:error="transaction.errors.description"
|
||||
>
|
||||
</transaction-description>
|
||||
<account-select
|
||||
<account-select v-if="transactionType.toLowerCase() !== 'reconciliation'"
|
||||
inputName="source[]"
|
||||
v-bind:title="$t('firefly.source_account')"
|
||||
:accountName="transaction.source_account.name"
|
||||
@@ -93,7 +93,7 @@
|
||||
v-on:select:account="selectedSourceAccount(index, $event)"
|
||||
:error="transaction.errors.source_account"
|
||||
></account-select>
|
||||
<account-select
|
||||
<account-select v-if="transactionType.toLowerCase() !== 'reconciliation'"
|
||||
inputName="destination[]"
|
||||
v-bind:title="$t('firefly.destination_account')"
|
||||
:accountName="transaction.destination_account.name"
|
||||
@@ -104,7 +104,7 @@
|
||||
v-on:select:account="selectedDestinationAccount(index, $event)"
|
||||
:error="transaction.errors.destination_account"
|
||||
></account-select>
|
||||
<standard-date
|
||||
<standard-date v-if="transactionType.toLowerCase() !== 'reconciliation'"
|
||||
v-model="transaction.date"
|
||||
:index="index"
|
||||
:error="transaction.errors.date"
|
||||
@@ -162,7 +162,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer" v-if="transactions.length-1 === index">
|
||||
<div class="box-footer" v-if="transactions.length-1 === index && transactionType.toLowerCase() !== 'reconciliation'">
|
||||
<button class="btn btn-primary" type="button" @click="addTransaction">{{ $t('firefly.add_another_split') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,7 +19,11 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="form-group" v-bind:class="{ 'has-error': hasError()}" v-if="null == this.transactionType || null != this.transactionType && (this.enabledCurrencies.length > 2 && this.transactionType === 'Deposit') || this.transactionType.toLowerCase() === 'transfer'">
|
||||
<div class="form-group" v-bind:class="{ 'has-error': hasError()}" v-if="
|
||||
null == this.transactionType ||
|
||||
null != this.transactionType && (this.enabledCurrencies.length > 2 && (this.transactionType.toLowerCase() === 'deposit' || this.transactionType.toLowerCase() === 'withdrawal')) ||
|
||||
this.liability ||
|
||||
(null != this.transactionType && this.transactionType.toLowerCase() === 'transfer')">
|
||||
<div class="col-sm-4">
|
||||
<select class="form-control" ref="currency_select" name="foreign_currency[]" @input="handleInput">
|
||||
<option
|
||||
@@ -49,43 +53,68 @@
|
||||
<script>
|
||||
export default {
|
||||
name: "ForeignAmountSelect",
|
||||
props: ['source', 'destination', 'transactionType', 'value', 'error', 'no_currency', 'title'],
|
||||
|
||||
props: ['source', 'destination', 'transactionType', 'value', 'error', 'no_currency', 'title',],
|
||||
mounted() {
|
||||
//console.log('loadCurrencies()');
|
||||
this.liability = false;
|
||||
this.loadCurrencies();
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currencies: [],
|
||||
enabledCurrencies: [],
|
||||
exclude: null
|
||||
exclude: null,
|
||||
// liability overrules the drop down list if the source or dest is a liability
|
||||
liability: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
source: function () {
|
||||
// console.log('watch source in foreign currency');
|
||||
this.changeData();
|
||||
},
|
||||
destination: function () {
|
||||
// console.log('watch destination in foreign currency');
|
||||
this.changeData();
|
||||
},
|
||||
transactionType: function () {
|
||||
// console.log('watch transaction type in foreign currency');
|
||||
this.changeData();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
hasError: function () {
|
||||
// console.log('Has error');
|
||||
return this.error.length > 0;
|
||||
},
|
||||
handleInput(e) {
|
||||
this.$emit('input', {
|
||||
amount: +this.$refs.amount.value,
|
||||
// console.log('handleInput');
|
||||
let obj = {
|
||||
amount: this.$refs.amount.value,
|
||||
currency_id: this.$refs.currency_select.value,
|
||||
}
|
||||
};
|
||||
// console.log(obj);
|
||||
this.$emit('input', obj
|
||||
);
|
||||
},
|
||||
changeData: function () {
|
||||
//console.log('Now in changeData()');
|
||||
this.enabledCurrencies = [];
|
||||
if (this.transactionType === 'Transfer') {
|
||||
// lock source on currencyID of destination
|
||||
let destType = this.destination.type ? this.destination.type.toLowerCase() : 'invalid';
|
||||
let srcType = this.source.type ? this.source.type.toLowerCase() : 'invalid';
|
||||
let tType =this.transactionType ? this.transactionType.toLowerCase() : 'invalid';
|
||||
let liabilities = ['loan','debt','mortgage'];
|
||||
let sourceIsLiability = liabilities.indexOf(srcType) !== -1;
|
||||
let destIsLiability = liabilities.indexOf(destType) !== -1;
|
||||
|
||||
// console.log(srcType + ' (source) is a liability: ' + sourceIsLiability);
|
||||
// console.log(destType + ' (dest) is a liability: ' + destIsLiability);
|
||||
|
||||
if (tType === 'transfer' || destIsLiability || sourceIsLiability) {
|
||||
//console.log('Source is liability OR dest is liability, OR transfer. Lock list on currency of destination.');
|
||||
this.liability = true;
|
||||
// lock dropdown list on on currencyID of destination.
|
||||
for (const key in this.currencies) {
|
||||
if (this.currencies.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
|
||||
if (this.currencies[key].id === this.destination.currency_id) {
|
||||
@@ -93,11 +122,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('Enabled currencies length is now ' + this.enabledCurrencies.length);
|
||||
//console.log('Enabled currencies length is now ' + this.enabledCurrencies.length);
|
||||
return;
|
||||
}
|
||||
|
||||
// if type is withdrawal, list all but skip the source account ID.
|
||||
if (this.transactionType === 'Withdrawal' && this.source) {
|
||||
if (tType === 'withdrawal' && this.source && false === sourceIsLiability) {
|
||||
for (const key in this.currencies) {
|
||||
if (this.currencies.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
|
||||
if (this.source.currency_id !== this.currencies[key].id) {
|
||||
@@ -109,7 +139,7 @@
|
||||
}
|
||||
|
||||
// if type is deposit, list all but skip the source account ID.
|
||||
if (this.transactionType === 'Deposit' && this.destination) {
|
||||
if (tType === 'deposit' && this.destination) {
|
||||
for (const key in this.currencies) {
|
||||
if (this.currencies.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
|
||||
if (this.destination.currency_id !== this.currencies[key].id) {
|
||||
@@ -126,6 +156,7 @@
|
||||
}
|
||||
},
|
||||
loadCurrencies: function () {
|
||||
// console.log('loadCurrencies');
|
||||
let URI = document.getElementsByTagName('base')[0].href + "json/currencies";
|
||||
axios.get(URI, {}).then((res) => {
|
||||
this.currencies = [
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
v-if="typeof this.transactionType !== 'undefined' && this.transactionType === 'Transfer'">
|
||||
<div class="col-sm-12">
|
||||
<select name="piggy_bank[]" ref="piggy" @input="handleInput" class="form-control" v-if="this.piggies.length > 0">
|
||||
<option v-for="piggy in this.piggies" :label="piggy.name" :value="piggy.id">{{piggy.name}}</option>
|
||||
<option v-for="piggy in this.piggies" :label="piggy.name_with_amount" :value="piggy.id">{{piggy.name_with_amount}}</option>
|
||||
</select>
|
||||
<ul class="list-unstyled" v-for="error in this.error">
|
||||
<li class="text-danger">{{ error }}</li>
|
||||
@@ -57,7 +57,7 @@
|
||||
axios.get(URI, {}).then((res) => {
|
||||
this.piggies = [
|
||||
{
|
||||
name: this.no_piggy_bank,
|
||||
name_with_amount: this.no_piggy_bank,
|
||||
id: 0,
|
||||
}
|
||||
];
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Pokud vytvo\u0159\u00edte roz\u00fa\u010dtov\u00e1n\u00ed, je t\u0159eba, aby zde byl celkov\u00fd popis pro v\u0161echna roz\u00fa\u010dtov\u00e1n\u00ed dan\u00e9 transakce.",
|
||||
"none_in_select_list": "(\u017e\u00e1dn\u00e9)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Popis"
|
||||
"description": "Popis",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "\u00darokov\u00e9 datum",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Wenn Sie eine Splittbuchung anlegen, muss es eine eindeutige Beschreibung f\u00fcr alle Aufteilungen der Buchhaltung geben.",
|
||||
"none_in_select_list": "(Keine)",
|
||||
"no_piggy_bank": "(kein Sparschwein)",
|
||||
"description": "Beschreibung"
|
||||
"description": "Beschreibung",
|
||||
"split_transaction_title_help": "Wenn Sie eine Splittbuchung anlegen, muss es eine eindeutige Beschreibung f\u00fcr alle Aufteilungen der Buchung geben."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Zinstermin",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction.",
|
||||
"none_in_select_list": "(\u03c4\u03af\u03c0\u03bf\u03c4\u03b1)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Description"
|
||||
"description": "Description",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03c4\u03bf\u03ba\u03b9\u03c3\u03bc\u03bf\u03cd",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction.",
|
||||
"none_in_select_list": "(none)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Description"
|
||||
"description": "Description",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Interest date",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Si crea una transacci\u00f3n dividida, debe haber una descripci\u00f3n global para todos los fragmentos de la transacci\u00f3n.",
|
||||
"none_in_select_list": "(ninguno)",
|
||||
"no_piggy_bank": "(sin alcanc\u00eda)",
|
||||
"description": "Descripci\u00f3n"
|
||||
"description": "Descripci\u00f3n",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Fecha de inter\u00e9s",
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
"flash_success": "Termin\u00e9 avec succ\u00e8s !",
|
||||
"close": "Fermer",
|
||||
"split_transaction_title": "Description de l'op\u00e9ration ventil\u00e9e",
|
||||
"errors_submission": "There was something wrong with your submission. Please check out the errors below.",
|
||||
"errors_submission": "Certaines informations ne sont pas correctes dans votre formulaire. Veuillez v\u00e9rifier les erreurs ci-dessous.",
|
||||
"split": "Ventiler",
|
||||
"transaction_journal_information": "Informations sur les transactions",
|
||||
"source_account": "Compte d'origine",
|
||||
"destination_account": "Compte de destination",
|
||||
"add_another_split": "Ajouter une autre fraction",
|
||||
"submission": "Submission",
|
||||
"create_another": "After storing, return here to create another one.",
|
||||
"reset_after": "Reset form after submission",
|
||||
"submission": "Soumission",
|
||||
"create_another": "Apr\u00e8s enregistrement, revenir ici pour en cr\u00e9er un nouveau.",
|
||||
"reset_after": "R\u00e9initialiser le formulaire apr\u00e8s soumission",
|
||||
"submit": "Soumettre",
|
||||
"amount": "Montant",
|
||||
"date": "Date",
|
||||
@@ -22,13 +22,14 @@
|
||||
"category": "Cat\u00e9gorie",
|
||||
"attachments": "Pi\u00e8ces jointes",
|
||||
"notes": "Notes",
|
||||
"update_transaction": "Update transaction",
|
||||
"after_update_create_another": "After updating, return here to continue editing.",
|
||||
"store_as_new": "Store as a new transaction instead of updating.",
|
||||
"update_transaction": "Mettre \u00e0 jour la transaction",
|
||||
"after_update_create_another": "Apr\u00e8s la mise \u00e0 jour, revenir ici pour continuer l'\u00e9dition.",
|
||||
"store_as_new": "Enregistrer comme une nouvelle transaction au lieu de mettre \u00e0 jour.",
|
||||
"split_title_help": "Si vous cr\u00e9ez une op\u00e9ration ventil\u00e9e, il doit y avoir une description globale pour chaque fractions de l'op\u00e9ration.",
|
||||
"none_in_select_list": "(aucun)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Description"
|
||||
"no_piggy_bank": "(aucune tirelire)",
|
||||
"description": "Description",
|
||||
"split_transaction_title_help": "Si vous cr\u00e9ez une op\u00e9ration ventil\u00e9e, il doit y avoir une description globale pour chaque fraction de l'op\u00e9ration."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Date de l\u2019int\u00e9r\u00eat",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Felosztott tranzakci\u00f3 l\u00e9trehoz\u00e1sakor meg kell adni egy glob\u00e1lis le\u00edr\u00e1st a tranzakci\u00f3 \u00f6sszes feloszt\u00e1sa r\u00e9sz\u00e9re.",
|
||||
"none_in_select_list": "(nincs)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Le\u00edr\u00e1s"
|
||||
"description": "Le\u00edr\u00e1s",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Kamatfizet\u00e9si id\u0151pont",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction.",
|
||||
"none_in_select_list": "(none)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Deskripsi"
|
||||
"description": "Deskripsi",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Tanggal bunga",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Se crei una transazione suddivisa \u00e8 necessario che ci sia una descrizione globale per tutte le suddivisioni della transazione.",
|
||||
"none_in_select_list": "(nessuna)",
|
||||
"no_piggy_bank": "(nessun salvadanaio)",
|
||||
"description": "Descrizione"
|
||||
"description": "Descrizione",
|
||||
"split_transaction_title_help": "Se crei una transazione suddivisa, \u00e8 necessario che ci sia una descrizione globale per tutte le suddivisioni della transazione."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Data interesse",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction.",
|
||||
"none_in_select_list": "(ingen)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Beskrivelse"
|
||||
"description": "Beskrivelse",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Rentedato",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Als je een gesplitste transactie maakt, moet er een algemene beschrijving zijn voor alle splitsingen van de transactie.",
|
||||
"none_in_select_list": "(geen)",
|
||||
"no_piggy_bank": "(geen spaarpotje)",
|
||||
"description": "Omschrijving"
|
||||
"description": "Omschrijving",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Rentedatum",
|
||||
|
||||
@@ -27,8 +27,9 @@
|
||||
"store_as_new": "Zapisz jako now\u0105 zamiast aktualizowa\u0107.",
|
||||
"split_title_help": "Podzielone transakcje musz\u0105 posiada\u0107 globalny opis.",
|
||||
"none_in_select_list": "(\u017cadne)",
|
||||
"no_piggy_bank": "(brak skarbonek)",
|
||||
"description": "Opis"
|
||||
"no_piggy_bank": "(brak skarbonki)",
|
||||
"description": "Opis",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Data odsetek",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "Se voc\u00ea criar uma transa\u00e7\u00e3o dividida, \u00e9 necess\u00e1rio haver uma descri\u00e7\u00e3o global para todas as partes da transa\u00e7\u00e3o.",
|
||||
"none_in_select_list": "(nenhum)",
|
||||
"no_piggy_bank": "(nenhum cofrinho)",
|
||||
"description": "Descri\u00e7\u00e3o"
|
||||
"description": "Descri\u00e7\u00e3o",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Data de interesse",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction.",
|
||||
"none_in_select_list": "(nici unul)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "Descriere"
|
||||
"description": "Descriere",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Data de interes",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u0442\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043b\u0435 \u0432\u0441\u0435\u0445 \u0435\u0451 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445.",
|
||||
"none_in_select_list": "(\u043d\u0435\u0442)",
|
||||
"no_piggy_bank": "(\u043d\u0435\u0442 \u043a\u043e\u043f\u0438\u043b\u043a\u0438)",
|
||||
"description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435"
|
||||
"description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
|
||||
"split_transaction_title_help": "\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u0442\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0435\u0451 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "\u0414\u0430\u0442\u0430 \u0432\u044b\u043f\u043b\u0430\u0442\u044b",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction.",
|
||||
"none_in_select_list": "(Yok)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "A\u00e7\u0131klama"
|
||||
"description": "A\u00e7\u0131klama",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "Faiz tarihi",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "\u5982\u679c\u60a8\u521b\u5efa\u4e00\u4e2a\u62c6\u5206\u4ea4\u6613\uff0c\u5fc5\u987b\u6709\u4e00\u4e2a\u5168\u5c40\u7684\u4ea4\u6613\u63cf\u8ff0\u3002",
|
||||
"none_in_select_list": "\uff08\u7a7a\uff09",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "\u63cf\u8ff0"
|
||||
"description": "\u63cf\u8ff0",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "\u5229\u7387\u65e5\u671f",
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"split_title_help": "\u82e5\u60a8\u5efa\u7acb\u4e00\u7b46\u62c6\u5206\u4ea4\u6613\uff0c\u9808\u6709\u4e00\u500b\u6709\u95dc\u4ea4\u6613\u6240\u6709\u62c6\u5206\u7684\u6574\u9ad4\u63cf\u8ff0\u3002",
|
||||
"none_in_select_list": "(\u7a7a)",
|
||||
"no_piggy_bank": "(no piggy bank)",
|
||||
"description": "\u63cf\u8ff0"
|
||||
"description": "\u63cf\u8ff0",
|
||||
"split_transaction_title_help": "If you create a split transaction, there must be a global description for all splits of the transaction."
|
||||
},
|
||||
"form": {
|
||||
"interest_date": "\u5229\u7387\u65e5\u671f",
|
||||
|
||||
@@ -715,7 +715,7 @@ return [
|
||||
'deleted_ab' => 'The available budget amount has been deleted',
|
||||
'deleted_bl' => 'The budgeted amount has been removed',
|
||||
'alt_currency_ab_create' => 'Set the available budget in another currency',
|
||||
'bl_create_btn' => 'Set budget in another currency',
|
||||
'bl_create_btn' => 'Ustaw budżet w innej walucie',
|
||||
'inactiveBudgets' => 'Nieaktywne budżety',
|
||||
'without_budget_between' => 'Transakcje bez budżetu między :start i :end',
|
||||
'delete_budget' => 'Usuń budżet ":name"',
|
||||
@@ -1284,7 +1284,7 @@ return [
|
||||
'send_test_triggered' => 'Test został uruchomiony. Sprawdź swoją skrzynkę odbiorczą i pliki dziennika.',
|
||||
|
||||
'split_transaction_title' => 'Opis podzielonej transakcji',
|
||||
'split_transaction_title_help' => 'If you create a split transaction, there must be a global description for all splits of the transaction.',
|
||||
'split_transaction_title_help' => 'Jeśli tworzysz podzieloną transakcję, musi ona posiadać globalny opis dla wszystkich podziałów w transakcji.',
|
||||
'split_title_help' => 'Podzielone transakcje muszą posiadać globalny opis.',
|
||||
'transaction_information' => 'Informacje o transakcji',
|
||||
'you_create_transfer' => 'Tworzysz <strong>przelew</strong>.',
|
||||
|
||||
@@ -1284,7 +1284,7 @@ return [
|
||||
'send_test_triggered' => 'Тест был выполнен. Проверьте ваш почтовый ящик и log-файлы.',
|
||||
|
||||
'split_transaction_title' => 'Описание разделённой транзакции',
|
||||
'split_transaction_title_help' => 'If you create a split transaction, there must be a global description for all splits of the transaction.',
|
||||
'split_transaction_title_help' => 'Если вы создаёте разделённую транзакцию, то должны указать общее описание для всех её составляющих.',
|
||||
'split_title_help' => 'Если вы создаёте разделённую транзакцию, то должны указать общее описание дле всех её составляющих.',
|
||||
'transaction_information' => 'Информация о транзакции',
|
||||
'you_create_transfer' => 'Вы создаёте <strong>перевод</strong>.',
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
{{ ExpandedForm.text('name') }}
|
||||
{% if account.accountType.type == 'Default account' or account.accountType.type == 'Asset account' or objectType == 'liabilities' %}
|
||||
{{ CurrencyForm.currencyList('currency_id', null, {helpText:'account_default_currency'|_}) }}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if objectType == 'liabilities' %}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.date('date', tag.date.format('Y-m-d')) }}
|
||||
{{ ExpandedForm.textarea('description') }}
|
||||
{{ ExpandedForm.textarea('description', tag.description) }}
|
||||
{{ ExpandedForm.location('tag_position') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -556,6 +556,7 @@ Route::group(
|
||||
Route::get('accounts', ['uses' => 'Json\AutoCompleteController@accounts', 'as' => 'autocomplete.accounts']);
|
||||
Route::get('revenue-accounts', ['uses' => 'Json\AutoCompleteController@revenueAccounts', 'as' => 'autocomplete.revenue-accounts']);
|
||||
Route::get('expense-accounts', ['uses' => 'Json\AutoCompleteController@expenseAccounts', 'as' => 'autocomplete.expense-accounts']);
|
||||
Route::get('asset-accounts', ['uses' => 'Json\AutoCompleteController@assetAccounts', 'as' => 'autocomplete.asset-accounts']);
|
||||
Route::get('budgets', ['uses' => 'Json\AutoCompleteController@budgets', 'as' => 'autocomplete.budgets']);
|
||||
Route::get('categories', ['uses' => 'Json\AutoCompleteController@categories', 'as' => 'autocomplete.categories']);
|
||||
Route::get('currencies', ['uses' => 'Json\AutoCompleteController@currencies', 'as' => 'autocomplete.currencies']);
|
||||
|
||||
Reference in New Issue
Block a user