mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2024-11-22 08:56:39 -06:00
Update frontend.
This commit is contained in:
parent
0ac0dbc774
commit
5e7c57744c
@ -49,7 +49,7 @@ class PreferencesController extends Controller
|
||||
|
||||
$this->middleware(
|
||||
function ($request, $next) {
|
||||
app('view')->share('title', (string) trans('firefly.preferences'));
|
||||
app('view')->share('title', (string)trans('firefly.preferences'));
|
||||
app('view')->share('mainTitleIcon', 'fa-gear');
|
||||
|
||||
return $next($request);
|
||||
@ -111,7 +111,7 @@ class PreferencesController extends Controller
|
||||
Log::error($e->getMessage());
|
||||
$locales = [];
|
||||
}
|
||||
$locales = ['equal' => (string) trans('firefly.equal_to_language')] + $locales;
|
||||
$locales = ['equal' => (string)trans('firefly.equal_to_language')] + $locales;
|
||||
// an important fallback is that the frontPageAccount array gets refilled automatically
|
||||
// when it turns up empty.
|
||||
if (0 === count($frontPageAccounts->data)) {
|
||||
@ -151,7 +151,7 @@ class PreferencesController extends Controller
|
||||
$frontPageAccounts = [];
|
||||
if (is_array($request->get('frontPageAccounts')) && count($request->get('frontPageAccounts')) > 0) {
|
||||
foreach ($request->get('frontPageAccounts') as $id) {
|
||||
$frontPageAccounts[] = (int) $id;
|
||||
$frontPageAccounts[] = (int)$id;
|
||||
}
|
||||
app('preferences')->set('frontPageAccounts', $frontPageAccounts);
|
||||
}
|
||||
@ -164,14 +164,14 @@ class PreferencesController extends Controller
|
||||
session()->forget('range');
|
||||
|
||||
// custom fiscal year
|
||||
$customFiscalYear = 1 === (int) $request->get('customFiscalYear');
|
||||
$fiscalYearStart = date('m-d', strtotime((string) $request->get('fiscalYearStart')));
|
||||
$customFiscalYear = 1 === (int)$request->get('customFiscalYear');
|
||||
$fiscalYearStart = date('m-d', strtotime((string)$request->get('fiscalYearStart')));
|
||||
app('preferences')->set('customFiscalYear', $customFiscalYear);
|
||||
app('preferences')->set('fiscalYearStart', $fiscalYearStart);
|
||||
|
||||
// save page size:
|
||||
app('preferences')->set('listPageSize', 50);
|
||||
$listPageSize = (int) $request->get('listPageSize');
|
||||
$listPageSize = (int)$request->get('listPageSize');
|
||||
if ($listPageSize > 0 && $listPageSize < 1337) {
|
||||
app('preferences')->set('listPageSize', $listPageSize);
|
||||
}
|
||||
@ -207,10 +207,12 @@ class PreferencesController extends Controller
|
||||
'notes' => isset($setOptions['notes']),
|
||||
'attachments' => isset($setOptions['attachments']),
|
||||
'external_uri' => isset($setOptions['external_uri']),
|
||||
'location' => isset($setOptions['location']),
|
||||
'links' => isset($setOptions['links']),
|
||||
];
|
||||
app('preferences')->set('transaction_journal_optional_fields', $optionalTj);
|
||||
|
||||
session()->flash('success', (string) trans('firefly.saved_preferences'));
|
||||
session()->flash('success', (string)trans('firefly.saved_preferences'));
|
||||
app('preferences')->mark();
|
||||
|
||||
// telemetry: user language preference + default language.
|
||||
|
@ -19,7 +19,7 @@
|
||||
"node-forge": ">=0.10.0",
|
||||
"resolve-url-loader": "^3.1.2",
|
||||
"sass": "^1.32.2",
|
||||
"sass-loader": "^11.0.1",
|
||||
"sass-loader": "^10.1.1",
|
||||
"vue": "^2.6.12",
|
||||
"vue-i18n": "^8.22.2",
|
||||
"vue-template-compiler": "^2.6.12"
|
||||
|
@ -55,7 +55,8 @@ const state = () => ({
|
||||
piggy_bank: [],
|
||||
internal_reference: [],
|
||||
external_url: [],
|
||||
notes: []
|
||||
notes: [],
|
||||
location: []
|
||||
},
|
||||
defaultTransaction: {
|
||||
// basic
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div>
|
||||
<alert :message="errorMessage" type="danger"/>
|
||||
<alert :message="successMessage" type="success"/>
|
||||
<SplitPills :transactions="transactions" />
|
||||
<SplitPills :transactions="transactions"/>
|
||||
<div class="tab-content">
|
||||
<SplitForm
|
||||
v-for="(transaction, index) in this.transactions"
|
||||
@ -30,6 +30,7 @@
|
||||
:transaction="transaction"
|
||||
:index="index"
|
||||
:count="transactions.length"
|
||||
:custom-fields="customFields"
|
||||
:submitted-transaction="submittedTransaction"
|
||||
v-on:uploaded-attachments="uploadedAttachment($event)"
|
||||
/>
|
||||
@ -116,7 +117,7 @@ export default {
|
||||
created() {
|
||||
this.storeAllowedOpposingTypes();
|
||||
this.storeAccountToTransaction();
|
||||
this.storeCustomDateFields();
|
||||
this.storeCustomFields();
|
||||
this.addTransaction();
|
||||
},
|
||||
data() {
|
||||
@ -125,6 +126,9 @@ export default {
|
||||
errorMessage: '',
|
||||
successMessage: '',
|
||||
|
||||
// custom fields, useful for components:
|
||||
customFields: [],
|
||||
|
||||
// states for the form (makes sense right)
|
||||
enableSubmit: true,
|
||||
createAnother: false,
|
||||
@ -155,7 +159,6 @@ export default {
|
||||
...mapGetters([
|
||||
'transactionType',
|
||||
'transactions',
|
||||
'customDateFields',
|
||||
'date',
|
||||
'groupTitle'
|
||||
])
|
||||
@ -203,27 +206,9 @@ export default {
|
||||
* it should be done via the create.js Vue store because multiple components are interested in the
|
||||
* user's custom transaction fields.
|
||||
*/
|
||||
storeCustomDateFields: function () {
|
||||
storeCustomFields: function () {
|
||||
axios.get('./api/v1/preferences/transaction_journal_optional_fields').then(response => {
|
||||
let fields = response.data.data.attributes.data;
|
||||
let allDateFields = ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date'];
|
||||
let selectedDateFields = {
|
||||
interest_date: false,
|
||||
book_date: false,
|
||||
process_date: false,
|
||||
due_date: false,
|
||||
payment_date: false,
|
||||
invoice_date: false,
|
||||
};
|
||||
for (let key in fields) {
|
||||
if (fields.hasOwnProperty(key)) {
|
||||
if (-1 !== allDateFields.indexOf(key)) {
|
||||
selectedDateFields[key] = fields[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
// see we already store it in the store, so this would be an easy change.
|
||||
this.$store.commit('transactions/create/setCustomDateFields', selectedDateFields);
|
||||
this.customFields = response.data.data.attributes.data;
|
||||
});
|
||||
},
|
||||
/**
|
||||
|
@ -100,6 +100,7 @@
|
||||
<div class="col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12 offset-xl-2 offset-lg-2">
|
||||
<TransactionCustomDates
|
||||
:index="index"
|
||||
:custom-fields.sync="customFields"
|
||||
:errors="transaction.errors.custom_dates"
|
||||
/>
|
||||
</div>
|
||||
@ -164,12 +165,12 @@
|
||||
</div>
|
||||
<!-- end card for meta -->
|
||||
<!-- card for extra -->
|
||||
<div class="row">
|
||||
<div class="row" v-if="hasMetaFields">
|
||||
<div class="col">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">
|
||||
{{ $t('firefly.transaction_journal_meta') }}
|
||||
{{ $t('firefly.transaction_journal_extra') }}
|
||||
<span v-if="count > 1">({{ index + 1 }} / {{ count }}) </span>
|
||||
</h3>
|
||||
</div>
|
||||
@ -182,17 +183,20 @@
|
||||
:index="index"
|
||||
v-model="transaction.internal_reference"
|
||||
:errors="transaction.errors.internal_reference"
|
||||
:custom-fields.sync="customFields"
|
||||
/>
|
||||
|
||||
<TransactionExternalUrl
|
||||
:index="index"
|
||||
v-model="transaction.external_url"
|
||||
:errors="transaction.errors.external_url"
|
||||
:custom-fields.sync="customFields"
|
||||
/>
|
||||
<TransactionNotes
|
||||
:index="index"
|
||||
v-model="transaction.notes"
|
||||
:errors="transaction.errors.notes"
|
||||
:custom-fields.sync="customFields"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
|
||||
@ -204,9 +208,20 @@
|
||||
:transaction_journal_id="transaction.transaction_journal_id"
|
||||
:submitted_transaction="submittedTransaction"
|
||||
v-model="transaction.attachments"
|
||||
:custom-fields.sync="customFields"
|
||||
/>
|
||||
<TransactionLocation
|
||||
:index="index"
|
||||
v-model="transaction.notes"
|
||||
:errors="transaction.errors.location"
|
||||
:custom-fields.sync="customFields"
|
||||
/>
|
||||
|
||||
<TransactionLinks :index="index" v-model="transaction.links" />
|
||||
<TransactionLinks
|
||||
:index="index"
|
||||
v-model="transaction.links"
|
||||
:custom-fields.sync="customFields"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -242,6 +257,7 @@ import TransactionLinks from "./TransactionLinks";
|
||||
import TransactionAttachments from "./TransactionAttachments";
|
||||
import SplitPills from "./SplitPills";
|
||||
import {createNamespacedHelpers} from "vuex";
|
||||
import TransactionLocation from "./TransactionLocation";
|
||||
|
||||
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('transactions/create')
|
||||
|
||||
@ -251,13 +267,35 @@ export default {
|
||||
'transaction',
|
||||
'split',
|
||||
'count',
|
||||
'customFields', // for custom transaction form fields.
|
||||
'index',
|
||||
'submittedTransaction' // need to know if transaction is submitted.
|
||||
],
|
||||
computed: {
|
||||
...mapGetters(['transactionType',])
|
||||
...mapGetters(['transactionType',]),
|
||||
hasMetaFields: function () {
|
||||
let requiredFields = [
|
||||
'internal_reference',
|
||||
'notes',
|
||||
'attachments',
|
||||
'external_uri',
|
||||
'location',
|
||||
'links',
|
||||
];
|
||||
for (let field in this.customFields) {
|
||||
if (this.customFields.hasOwnProperty(field)) {
|
||||
if (requiredFields.includes(field)) {
|
||||
if (true === this.customFields[field]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
components: {
|
||||
TransactionLocation,
|
||||
SplitPills,
|
||||
TransactionAttachments,
|
||||
TransactionNotes,
|
||||
|
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="form-group">
|
||||
<div class="form-group" v-if="showField">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block">
|
||||
{{ $t('firefly.attachments') }}
|
||||
</div>
|
||||
@ -38,16 +38,35 @@
|
||||
<script>
|
||||
export default {
|
||||
name: "TransactionAttachments",
|
||||
props: ['transaction_journal_id'],
|
||||
props: ['transaction_journal_id', 'customFields'],
|
||||
data() {
|
||||
return {
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
customFields: function (value) {
|
||||
this.availableFields = value;
|
||||
},
|
||||
transaction_journal_id: function (value) {
|
||||
console.log('transaction_journal_id changed to ' + value);
|
||||
if (!this.showField) {
|
||||
return;
|
||||
}
|
||||
// console.log('transaction_journal_id changed to ' + value);
|
||||
// do upload!
|
||||
if (0 !== value) {
|
||||
this.doUpload();
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showField: function () {
|
||||
if ('attachments' in this.availableFields) {
|
||||
return this.availableFields.attachments;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doUpload: function () {
|
||||
console.log('Now in doUpload() for ' + this.$refs.att.files.length + ' files.');
|
||||
|
@ -20,11 +20,11 @@
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div class="form-group" v-for="(enabled, name) in enabledDates">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block" v-if="enabled">
|
||||
<div class="form-group" v-for="(enabled, name) in availableFields">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block" v-if="enabled && isDateField(name)">
|
||||
{{ $t('form.' + name) }}
|
||||
</div>
|
||||
<div class="input-group" v-if="enabled">
|
||||
<div class="input-group" v-if="enabled && isDateField(name)">
|
||||
<input
|
||||
class="form-control"
|
||||
type="date"
|
||||
@ -44,52 +44,37 @@
|
||||
|
||||
<script>
|
||||
// TODO: error handling
|
||||
// TODO dont use store?
|
||||
import {createNamespacedHelpers} from "vuex";
|
||||
|
||||
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('transactions/create')
|
||||
export default {
|
||||
name: "TransactionCustomDates",
|
||||
props: ['index', 'errors'],
|
||||
props: ['index', 'errors', 'customFields'],
|
||||
data() {
|
||||
return {
|
||||
enabledDates: {},
|
||||
dateFields: ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date'],
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getCustomDates();
|
||||
watch: {
|
||||
customFields: function(value) {
|
||||
this.availableFields = value;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['transactions']),
|
||||
...mapMutations(['updateField',],
|
||||
),
|
||||
isDateField: function (name) {
|
||||
return this.dateFields.includes(name)
|
||||
},
|
||||
getFieldValue(field) {
|
||||
return this.transactions()[parseInt(this.index)][field] ?? '';
|
||||
},
|
||||
setFieldValue(event, field) {
|
||||
this.updateField({index: this.index, field: field, value: event.target.value});
|
||||
},
|
||||
getCustomDates: function () {
|
||||
axios.get('./api/v1/preferences/transaction_journal_optional_fields').then(response => {
|
||||
let fields = response.data.data.attributes.data;
|
||||
let allDateFields = ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date'];
|
||||
let selectedDateFields = {
|
||||
interest_date: false,
|
||||
book_date: false,
|
||||
process_date: false,
|
||||
due_date: false,
|
||||
payment_date: false,
|
||||
invoice_date: false,
|
||||
};
|
||||
for (let key in fields) {
|
||||
if (fields.hasOwnProperty(key)) {
|
||||
if (-1 !== allDateFields.indexOf(key)) {
|
||||
selectedDateFields[key] = fields[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
this.enabledDates = selectedDateFields;
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="form-group">
|
||||
<div class="form-group" v-if="showField">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block">
|
||||
{{ $t('firefly.external_url') }}
|
||||
</div>
|
||||
@ -44,11 +44,20 @@ import {createNamespacedHelpers} from "vuex";
|
||||
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('transactions/create')
|
||||
|
||||
export default {
|
||||
props: ['index', 'value', 'errors'],
|
||||
props: ['index', 'value', 'errors', 'customFields'],
|
||||
name: "TransactionExternalUrl",
|
||||
data() {
|
||||
return {
|
||||
url: this.value
|
||||
url: this.value,
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showField: function () {
|
||||
if ('external_uri' in this.availableFields) {
|
||||
return this.availableFields.external_uri;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -59,6 +68,9 @@ export default {
|
||||
),
|
||||
},
|
||||
watch: {
|
||||
customFields: function (value) {
|
||||
this.availableFields = value;
|
||||
},
|
||||
url: function (value) {
|
||||
this.updateField({field: 'external_url', index: this.index, value: value});
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="form-group">
|
||||
<div class="form-group" v-if="showField">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block">
|
||||
{{ $t('firefly.internal_reference') }}
|
||||
</div>
|
||||
@ -44,11 +44,20 @@ import {createNamespacedHelpers} from "vuex";
|
||||
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('transactions/create')
|
||||
|
||||
export default {
|
||||
props: ['index', 'value', 'errors'],
|
||||
props: ['index', 'value', 'errors', 'customFields'],
|
||||
name: "TransactionInternalReference",
|
||||
data() {
|
||||
return {
|
||||
reference: this.value
|
||||
reference: this.value,
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showField: function () {
|
||||
if ('internal_reference' in this.availableFields) {
|
||||
return this.availableFields.internal_reference;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -59,6 +68,9 @@ export default {
|
||||
),
|
||||
},
|
||||
watch: {
|
||||
customFields: function (value) {
|
||||
this.availableFields = value;
|
||||
},
|
||||
reference: function (value) {
|
||||
this.updateField({field: 'internal_reference', index: this.index, value: value});
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="showField">
|
||||
<div class="form-group">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block">
|
||||
{{ $t('firefly.journal_links') }}
|
||||
@ -191,7 +191,7 @@ const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers
|
||||
const lodashClonedeep = require('lodash.clonedeep');
|
||||
// TODO error handling
|
||||
export default {
|
||||
props: ['index', 'value', 'errors'],
|
||||
props: ['index', 'value', 'errors', 'customFields'],
|
||||
name: "TransactionLinks",
|
||||
data() {
|
||||
return {
|
||||
@ -202,6 +202,7 @@ export default {
|
||||
query: '',
|
||||
searching: false,
|
||||
links: [],
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@ -209,9 +210,20 @@ export default {
|
||||
this.links = lodashClonedeep(this.value);
|
||||
this.getLinkTypes();
|
||||
},
|
||||
computed: {
|
||||
showField: function () {
|
||||
if ('links' in this.availableFields) {
|
||||
return this.availableFields.links;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
links: function (value) {
|
||||
this.updateField({index: this.index, field: 'links', value: lodashClonedeep(value)});
|
||||
},
|
||||
customFields: function (value) {
|
||||
this.availableFields = value;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
59
frontend/src/components/transactions/TransactionLocation.vue
Normal file
59
frontend/src/components/transactions/TransactionLocation.vue
Normal file
@ -0,0 +1,59 @@
|
||||
<!--
|
||||
- TransactionLocation.vue
|
||||
- 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/>.
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="form-group" v-if="showField">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block">
|
||||
{{ $t('firefly.location') }}
|
||||
</div>
|
||||
<div class="input-group">
|
||||
(TODO)
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "TransactionLocation",
|
||||
props: ['index', 'value', 'errors', 'customFields'],
|
||||
data() {
|
||||
return {
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showField: function () {
|
||||
if ('location' in this.availableFields) {
|
||||
return this.availableFields.location;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
customFields: function (value) {
|
||||
this.availableFields = value;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -20,7 +20,7 @@
|
||||
|
||||
<template>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="form-group" v-if="showField">
|
||||
<div class="text-xs d-none d-lg-block d-xl-block">
|
||||
{{ $t('firefly.notes') }}
|
||||
</div>
|
||||
@ -41,11 +41,20 @@ import {createNamespacedHelpers} from "vuex";
|
||||
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('transactions/create')
|
||||
|
||||
export default {
|
||||
props: ['index', 'value', 'errors'],
|
||||
props: ['index', 'value', 'errors', 'customFields'],
|
||||
name: "TransactionNotes",
|
||||
data() {
|
||||
return {
|
||||
notes: this.value
|
||||
notes: this.value,
|
||||
availableFields: this.customFields
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showField: function () {
|
||||
if ('notes' in this.availableFields) {
|
||||
return this.availableFields.notes;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -56,6 +65,9 @@ export default {
|
||||
),
|
||||
},
|
||||
watch: {
|
||||
customFields: function (value) {
|
||||
this.availableFields = value;
|
||||
},
|
||||
notes: function (value) {
|
||||
this.updateField({field: 'notes', index: this.index, value: value});
|
||||
}
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "\u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435",
|
||||
"other_budgets": "\u0412\u0440\u0435\u043c\u0435\u0432\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438",
|
||||
"journal_links": "\u0412\u0440\u044a\u0437\u043a\u0438 \u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
|
||||
"go_to_withdrawals": "\u0412\u0438\u0436\u0442\u0435 \u0442\u0435\u0433\u043b\u0435\u043d\u0438\u044f\u0442\u0430 \u0441\u0438",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Um\u00edst\u011bn\u00ed",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Transaction links",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Standort",
|
||||
"other_budgets": "Zeitlich befristete Budgets",
|
||||
"journal_links": "Buchungsverkn\u00fcpfungen",
|
||||
"go_to_withdrawals": "Ausgaben anzeigen",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "\u03a4\u03bf\u03c0\u03bf\u03b8\u03b5\u03c3\u03af\u03b1",
|
||||
"other_budgets": "\u03a0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af \u03bc\u03b5 \u03c7\u03c1\u03bf\u03bd\u03b9\u03ba\u03ae \u03c0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae",
|
||||
"journal_links": "\u03a3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03b9\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ce\u03bd",
|
||||
"go_to_withdrawals": "\u03a0\u03b7\u03b3\u03b1\u03af\u03bd\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b9\u03c2 \u03b1\u03bd\u03b1\u03bb\u03ae\u03c8\u03b5\u03b9\u03c2 \u03c3\u03b1\u03c2",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Location",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Transaction links",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Location",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Transaction links",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Ubicaci\u00f3n",
|
||||
"other_budgets": "Presupuestos de tiempo personalizado",
|
||||
"journal_links": "Enlaces de transacciones",
|
||||
"go_to_withdrawals": "Ir a tus retiradas",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Sijainti",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Tapahtuman linkit",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Emplacement",
|
||||
"other_budgets": "Budgets \u00e0 p\u00e9riode personnalis\u00e9e",
|
||||
"journal_links": "Liens d'op\u00e9ration",
|
||||
"go_to_withdrawals": "Acc\u00e9der \u00e0 vos retraits",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Hely",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Tranzakci\u00f3 \u00f6sszekapcsol\u00e1sok",
|
||||
"go_to_withdrawals": "Ugr\u00e1s a k\u00f6lts\u00e9gekhez",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Posizione",
|
||||
"other_budgets": "Budget a periodi personalizzati",
|
||||
"journal_links": "Collegamenti della transazione",
|
||||
"go_to_withdrawals": "Vai ai tuoi prelievi",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Sted",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Transaksjonskoblinger",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Plaats",
|
||||
"other_budgets": "Aangepaste budgetten",
|
||||
"journal_links": "Transactiekoppelingen",
|
||||
"go_to_withdrawals": "Ga naar je uitgaven",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Lokalizacja",
|
||||
"other_budgets": "Bud\u017cety niestandardowe",
|
||||
"journal_links": "Powi\u0105zane transakcje",
|
||||
"go_to_withdrawals": "Przejd\u017a do swoich wydatk\u00f3w",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Localiza\u00e7\u00e3o",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Transa\u00e7\u00f5es ligadas",
|
||||
"go_to_withdrawals": "V\u00e1 para seus saques",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Localiza\u00e7\u00e3o",
|
||||
"other_budgets": "Or\u00e7amentos de tempo personalizado",
|
||||
"journal_links": "Liga\u00e7\u00f5es de transac\u00e7\u00e3o",
|
||||
"go_to_withdrawals": "Ir para os seus levantamentos",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Loca\u021bie",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Link-uri de tranzac\u021bii",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435",
|
||||
"other_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438",
|
||||
"journal_links": "\u0421\u0432\u044f\u0437\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",
|
||||
"go_to_withdrawals": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0432\u0430\u0448\u0438\u043c \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Poloha",
|
||||
"other_budgets": "\u0160pecifick\u00e9 \u010dasovan\u00e9 rozpo\u010dty",
|
||||
"journal_links": "Prepojenia transakcie",
|
||||
"go_to_withdrawals": "Zobrazi\u0165 v\u00fdbery",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "Plats",
|
||||
"other_budgets": "Anpassade tidsinst\u00e4llda budgetar",
|
||||
"journal_links": "Transaktionsl\u00e4nkar",
|
||||
"go_to_withdrawals": "G\u00e5 till dina uttag",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "V\u1ecb tr\u00ed",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "Li\u00ean k\u1ebft giao d\u1ecbch",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "\u4f4d\u7f6e",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "\u4ea4\u6613\u8fde\u7ed3",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -79,6 +79,7 @@
|
||||
"custom_period": "Custom period",
|
||||
"reset_to_current": "Reset to current period",
|
||||
"select_period": "Select a period",
|
||||
"location": "\u4f4d\u7f6e",
|
||||
"other_budgets": "Custom timed budgets",
|
||||
"journal_links": "\u4ea4\u6613\u9023\u7d50",
|
||||
"go_to_withdrawals": "Go to your withdrawals",
|
||||
|
@ -858,7 +858,7 @@
|
||||
"@types/minimatch" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/json-schema@^7.0.5":
|
||||
"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
|
||||
version "7.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
|
||||
integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
|
||||
@ -869,9 +869,9 @@
|
||||
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
|
||||
|
||||
"@types/node@*":
|
||||
version "14.14.27"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.27.tgz#c7127f8da0498993e13b1a42faf1303d3110d2f2"
|
||||
integrity sha512-Ecfmo4YDQPwuqTCl1yBxLV5ihKfRlkBmzUEDcfIRvDxOTGQEeikr317Ln7Gcv0tjA8dVgKI3rniqW2G1OyKDng==
|
||||
version "14.14.28"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.28.tgz#cade4b64f8438f588951a6b35843ce536853f25b"
|
||||
integrity sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==
|
||||
|
||||
"@types/q@^1.5.1":
|
||||
version "1.5.4"
|
||||
@ -1098,7 +1098,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
||||
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
||||
|
||||
ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4:
|
||||
ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5:
|
||||
version "6.12.6"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
||||
@ -2626,9 +2626,9 @@ ejs@^2.6.1:
|
||||
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
|
||||
|
||||
electron-to-chromium@^1.3.649:
|
||||
version "1.3.664"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.664.tgz#8fb039e2fa8ef3ab2568308464a28425d4f6e2a3"
|
||||
integrity sha512-yb8LrTQXQnh9yhnaIHLk6CYugF/An50T20+X0h++hjjhVfgSp1DGoMSYycF8/aD5eiqS4QwaNhiduFvK8rifRg==
|
||||
version "1.3.665"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.665.tgz#6d0937376f6a919c0f289202c4be77790a6175e5"
|
||||
integrity sha512-LIjx1JheOz7LM8DMEQ2tPnbBzJ4nVG1MKutsbEMLnJfwfVdPIsyagqfLp56bOWhdBrYGXWHaTayYkllIU2TauA==
|
||||
|
||||
elliptic@^6.5.3:
|
||||
version "6.5.4"
|
||||
@ -5943,13 +5943,16 @@ safe-regex@^1.1.0:
|
||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sass-loader@^11.0.1:
|
||||
version "11.0.1"
|
||||
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-11.0.1.tgz#8672f896593466573b904f47693e0695368e38c9"
|
||||
integrity sha512-Vp1LcP4slTsTNLEiDkTcm8zGN/XYYrZz2BZybQbliWA8eXveqA/AxsEjllQTpJbg2MzCsx/qNO48sHdZtOaxTw==
|
||||
sass-loader@^10.1.1:
|
||||
version "10.1.1"
|
||||
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d"
|
||||
integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==
|
||||
dependencies:
|
||||
klona "^2.0.4"
|
||||
loader-utils "^2.0.0"
|
||||
neo-async "^2.6.2"
|
||||
schema-utils "^3.0.0"
|
||||
semver "^7.3.2"
|
||||
|
||||
sass@^1.32.2:
|
||||
version "1.32.7"
|
||||
@ -5989,6 +5992,15 @@ schema-utils@^2.6.5, schema-utils@^2.6.6:
|
||||
ajv "^6.12.4"
|
||||
ajv-keywords "^3.5.2"
|
||||
|
||||
schema-utils@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef"
|
||||
integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.6"
|
||||
ajv "^6.12.5"
|
||||
ajv-keywords "^3.5.2"
|
||||
|
||||
select-hose@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
|
||||
|
2
public/v2/js/transactions/create.js
vendored
2
public/v2/js/transactions/create.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/v2/js/vendor.js
vendored
2
public/v2/js/vendor.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -678,7 +678,7 @@ return [
|
||||
'pref_optional_fields_transaction' => 'Optional fields for transactions',
|
||||
'pref_optional_fields_transaction_help' => 'By default not all fields are enabled when creating a new transaction (because of the clutter). Below, you can enable these fields if you think they could be useful for you. Of course, any field that is disabled, but already filled in, will be visible regardless of the setting.',
|
||||
'optional_tj_date_fields' => 'Date fields',
|
||||
'optional_tj_business_fields' => 'Business fields',
|
||||
'optional_tj_other_fields' => 'Other fields',
|
||||
'optional_tj_attachment_fields' => 'Attachment fields',
|
||||
'pref_optional_tj_interest_date' => 'Interest date',
|
||||
'pref_optional_tj_book_date' => 'Book date',
|
||||
@ -689,12 +689,14 @@ return [
|
||||
'pref_optional_tj_internal_reference' => 'Internal reference',
|
||||
'pref_optional_tj_notes' => 'Notes',
|
||||
'pref_optional_tj_attachments' => 'Attachments',
|
||||
'pref_optional_tj_external_uri' => 'External URI',
|
||||
'pref_optional_tj_external_uri' => 'External URL',
|
||||
'pref_optional_tj_location' => 'Location',
|
||||
'pref_optional_tj_links' => 'Transaction links',
|
||||
'optional_field_meta_dates' => 'Dates',
|
||||
'optional_field_meta_business' => 'Business',
|
||||
'optional_field_attachments' => 'Attachments',
|
||||
'optional_field_meta_data' => 'Optional meta data',
|
||||
'external_uri' => 'External URI',
|
||||
'external_uri' => 'External URL',
|
||||
|
||||
// profile:
|
||||
'delete_stuff_header' => 'Delete data',
|
||||
|
@ -107,10 +107,12 @@
|
||||
{{ ExpandedForm.checkbox('tj[payment_date]','1', tjOptionalFields.payment_date,{ 'label' : 'pref_optional_tj_payment_date'|_ }) }}
|
||||
{{ ExpandedForm.checkbox('tj[invoice_date]','1', tjOptionalFields.invoice_date,{ 'label' : 'pref_optional_tj_invoice_date'|_ }) }}
|
||||
|
||||
<h4>{{ 'optional_tj_business_fields'|_ }}</h4>
|
||||
<h4>{{ 'optional_tj_other_fields'|_ }}</h4>
|
||||
{{ ExpandedForm.checkbox('tj[internal_reference]','1', tjOptionalFields.internal_reference,{ 'label' : 'pref_optional_tj_internal_reference'|_ }) }}
|
||||
{{ ExpandedForm.checkbox('tj[external_uri]','1', tjOptionalFields.external_uri,{ 'label' : 'pref_optional_tj_external_uri'|_ }) }}
|
||||
{{ ExpandedForm.checkbox('tj[notes]','1', tjOptionalFields.notes,{ 'label' : 'pref_optional_tj_notes'|_ }) }}
|
||||
{{ ExpandedForm.checkbox('tj[location]','1', tjOptionalFields.location,{ 'label' : 'pref_optional_tj_location'|_ }) }}
|
||||
{{ ExpandedForm.checkbox('tj[links]','1', tjOptionalFields.links,{ 'label' : 'pref_optional_tj_links'|_ }) }}
|
||||
|
||||
<h4>{{ 'optional_tj_attachment_fields'|_ }}</h4>
|
||||
{{ ExpandedForm.checkbox('tj[attachments]','1', tjOptionalFields.attachments,{ 'label' : 'pref_optional_tj_attachments'|_ }) }}
|
||||
|
Loading…
Reference in New Issue
Block a user