Sortable account list.

This commit is contained in:
James Cole 2021-03-27 10:19:22 +01:00
parent fbed65d464
commit 381b09d68b
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
50 changed files with 485 additions and 212 deletions

View File

@ -21,9 +21,16 @@
"resolve-url-loader": "^3.1.2", "resolve-url-loader": "^3.1.2",
"sass": "^1.32.8", "sass": "^1.32.8",
"sass-loader": "^10.1.1", "sass-loader": "^10.1.1",
"sortablejs": "^1.13.0",
"vue": "^2.6.12", "vue": "^2.6.12",
"vue-chartjs": "^3.5.1",
"vue-i18n": "^8.22.2", "vue-i18n": "^8.22.2",
"vue-template-compiler": "^2.6.12" "vue-router": "^3.4.9",
"vue-simple-suggest": "^1.10.3",
"vue-template-compiler": "^2.6.12",
"vue-typeahead-bootstrap": "^2.5.5",
"vue2-leaflet": "^2.6.0",
"vuex": "^3.6.0"
}, },
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "^5.15.1", "@fortawesome/fontawesome-free": "^5.15.1",
@ -39,12 +46,6 @@
"overlayscrollbars": "^1.13.1", "overlayscrollbars": "^1.13.1",
"popper.js": "^1.16.1", "popper.js": "^1.16.1",
"tempusdominus": "^5.16.0", "tempusdominus": "^5.16.0",
"v-calendar": "^2.2.4", "v-calendar": "^2.2.4"
"vue-chartjs": "^3.5.1",
"vue-router": "^3.4.9",
"vue-simple-suggest": "^1.10.3",
"vue-typeahead-bootstrap": "^2.5.5",
"vue2-leaflet": "^2.6.0",
"vuex": "^3.6.0"
} }
} }

View File

@ -34,52 +34,17 @@
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<!--
<div class="card-tools">
<div class="input-group input-group-sm" style="width: 150px;">
<input class="form-control float-right" name="table_search" :placeholder="$t('firefly.search')" type="text">
<div class="input-group-append">
<button class="btn btn-default" type="submit">
<i class="fas fa-search"></i>
</button>
</div>
</div>
</div>
-->
</div> </div>
<div class="card-body p-0"> <div class="card-body p-0">
<!--
<td style="text-align: right;">
</td>
<td>
<div class="btn-group btn-group-sm dropleft">
<div class="dropdown">
<button class="btn btn-light btn-sm dropdown-toggle" type="button" :id="'dropdownMenuButton' + account.id" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ $t('firefly.actions') }}
</button>
<div class="dropdown-menu" :aria-labelledby="'dropdownMenuButton' + account.id">
<a class="dropdown-item" :href="'./accounts/edit/' + account.id"><i class="fa fas fa-pencil-alt"></i> {{ $t('firefly.edit') }}</a>
<a class="dropdown-item" :href="'./accounts/delete/' + account.id"><i class="fa far fa-trash"></i> {{ $t('firefly.delete') }}</a>
<a v-if="'asset' === type" class="dropdown-item" :href="'./accounts/reconcile/' + account.id"><i class="fas fa-check"></i> {{ $t('firefly.reconcile_this_account') }}</a>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
-->
<b-table id="my-table" striped hover primary-key="id" <b-table id="my-table" striped hover primary-key="id"
:items="accounts" :fields="fields" :items="accounts" :fields="fields"
:per-page="perPage" :per-page="perPage"
sort-icon-left
ref="table"
:current-page="currentPage" :current-page="currentPage"
:busy.sync="loading"
:sort-by.sync="sortBy"
:sort-desc.sync="sortDesc"
> >
<template #cell(title)="data"> <template #cell(title)="data">
<a :href="'./accounts/show/' + data.item.id" :title="data.value">{{ data.value }}</a> <a :href="'./accounts/show/' + data.item.id" :title="data.value">{{ data.value }}</a>
@ -135,13 +100,25 @@
data.item.currency_code data.item.currency_code
}).format(data.item.balance_diff) }).format(data.item.balance_diff)
}}</span>) }}</span>)
</span> </span>
</template> </template>
<template #cell(menu)="data">
<div class="btn-group btn-group-sm">
<div class="dropdown">
<button class="btn btn-light btn-sm dropdown-toggle" type="button" :id="'dropdownMenuButton' + data.item.id" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
{{ $t('firefly.actions') }}
</button>
<div class="dropdown-menu" :aria-labelledby="'dropdownMenuButton' + data.item.id">
<a class="dropdown-item" :href="'./accounts/edit/' + data.item.id"><i class="fa fas fa-pencil-alt"></i> {{ $t('firefly.edit') }}</a>
<a class="dropdown-item" :href="'./accounts/delete/' + data.item.id"><i class="fa far fa-trash"></i> {{ $t('firefly.delete') }}</a>
<a v-if="'asset' === type" class="dropdown-item" :href="'./accounts/reconcile/' + data.item.id"><i class="fas fa-check"></i>
{{ $t('firefly.reconcile_this_account') }}</a>
</div>
</div>
</div>
</template>
</b-table> </b-table>
</div> </div>
<div class="card-footer"> <div class="card-footer">
<a :href="'./accounts/create/' + type" class="btn btn-success" :title="$t('firefly.create_new_' + type)">{{ $t('firefly.create_new_' + type) }}</a> <a :href="'./accounts/create/' + type" class="btn btn-success" :title="$t('firefly.create_new_' + type)">{{ $t('firefly.create_new_' + type) }}</a>
@ -154,11 +131,8 @@
<script> <script>
import {createNamespacedHelpers} from "vuex";
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
// import {createNamespacedHelpers} import Sortable from "sortablejs";
//const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('');
//const {rootMapState, rootMapGetters, rootMapActions, rootMapMutations} = createNamespacedHelpers('')
export default { export default {
name: "Index", name: "Index",
@ -169,29 +143,52 @@ export default {
return { return {
accounts: [], accounts: [],
type: 'all', type: 'all',
loading: true, loading: false,
ready: false, ready: false,
fields: [], fields: [],
currentPage: 1, currentPage: 1,
perPage: 50, perPage: 5,
total: 0 total: 0,
sortBy: 'order',
sortDesc: false,
sortableOptions: {
disabled: false,
chosenClass: 'is-selected',
onEnd: null
},
sortable: null
} }
}, },
watch: { watch: {
datesReady: function (value) { storeReady: function () {
if (true === value) { this.getAccountList();
this.getAccountList();
}
}, },
start: function () {
this.getAccountList();
},
end: function () {
this.getAccountList();
},
orderMode: function (value) {
this.updateFieldList();
this.sortableOptions.disabled = !value;
this.sortableOptions.onEnd = this.saveAccountSort;
if (true === value) {
this.reorderAccountList();
}
// make sortable of table:
if (null === this.sortable) {
this.sortable = Sortable.create(this.$refs.table.$el.querySelector('tbody'), this.sortableOptions);
}
this.sortable.option('disabled', this.sortableOptions.disabled);
}
}, },
computed: { computed: {
...mapGetters('', ['listPageSize']), ...mapGetters('root', ['listPageSize']),
...mapGetters('dashboard/index', [ ...mapGetters('accounts/index', ['orderMode']),
'start', ...mapGetters('dashboard/index', ['start', 'end',]),
'end', 'indexReady': function () {
]), return null !== this.start && null !== this.end && null !== this.listPageSize && this.ready;
'datesReady': function () {
return null !== this.start && null !== this.end && this.ready;
}, },
cardTitle: function () { cardTitle: function () {
return this.$t('firefly.' + this.type + '_accounts'); return this.$t('firefly.' + this.type + '_accounts');
@ -204,66 +201,54 @@ export default {
let params = new URLSearchParams(window.location.search); let params = new URLSearchParams(window.location.search);
this.currentPage = params.get('page') ? parseInt(params.get('page')) : 1; this.currentPage = params.get('page') ? parseInt(params.get('page')) : 1;
this.updateFieldList();
// per page:
//this.perPage = this.get
this.fields = [
{
key: 'title',
label: this.$t('list.name'),
sortable: true
}
];
// TODO sortable handle
// TODO menu.
// add extra field
if ('asset' === this.type) {
this.fields.push(
{
key: 'role',
label: this.$t('list.role'),
sortable: true
}
);
}
// add the rest
this.fields.push(
{
key: 'number',
label: this.$t('list.iban'),
sortable: false
}
);
this.fields.push(
{
key: 'current_balance',
label: this.$t('list.currentBalance'),
sortable: true
}
);
this.fields.push(
{
key: 'menu',
label: ' ',
sortable: false
}
);
this.ready = true; this.ready = true;
}, },
methods: { methods: {
getAccountList: function () { saveAccountSort: function (event) {
this.perPage = this.listPageSize; let oldIndex = parseInt(event.oldIndex);
this.accounts = []; let newIndex = parseInt(event.newIndex);
// needs to be async so call itself again: let identifier = parseInt(event.item.attributes.getNamedItem('data-pk').value);
this.downloadAccountList(1); for (let i in this.accounts) {
if (this.accounts.hasOwnProperty(i) && /^0$|^[1-9]\d*$/.test(i) && i <= 4294967294) {
let current = this.accounts[i];
if (current.id === identifier) {
let newOrder = parseInt(current.order) + (newIndex - oldIndex);
let url = './api/v1/accounts/' + current.id;
axios.put(url, {order: newOrder}).then(response => {
// TODO should update local account list, not refresh the whole thing.
this.getAccountList();
});
}
}
}
}, },
reorderAccountList() {
this.sortBy = 'order';
this.sortDesc = false;
},
updateFieldList() {
this.fields = [];
this.fields = [{key: 'title', label: this.$t('list.name'), sortable: !this.orderMode}];
if ('asset' === this.type) {
this.fields.push({key: 'role', label: this.$t('list.role'), sortable: !this.orderMode});
}
// add the rest
this.fields.push({key: 'number', label: this.$t('list.iban'), sortable: !this.orderMode});
this.fields.push({key: 'current_balance', label: this.$t('list.currentBalance'), sortable: !this.orderMode});
this.fields.push({key: 'menu', label: ' ', sortable: false});
},
getAccountList: function () {
if (this.indexReady && !this.loading) {
this.loading = true;
this.perPage = this.listPageSize ?? 51;
this.accounts = [];
this.downloadAccountList(1);
}
},
downloadAccountList(page) { downloadAccountList(page) {
console.log('Downloading page ' + page);
axios.get('./api/v1/accounts?type=' + this.type + '&page=' + page) axios.get('./api/v1/accounts?type=' + this.type + '&page=' + page)
.then(response => { .then(response => {
let currentPage = parseInt(response.data.meta.pagination.current_page); let currentPage = parseInt(response.data.meta.pagination.current_page);
@ -273,6 +258,8 @@ export default {
if (currentPage < totalPage) { if (currentPage < totalPage) {
let nextPage = currentPage + 1; let nextPage = currentPage + 1;
this.downloadAccountList(nextPage); this.downloadAccountList(nextPage);
} else {
this.loading = false;
} }
} }
); );
@ -291,15 +278,19 @@ export default {
if (data.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) { if (data.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
let current = data[key]; let current = data[key];
let acct = {}; let acct = {};
acct.id = current.id; acct.id = parseInt(current.id);
acct.order = current.attributes.order;
acct.title = current.attributes.name; acct.title = current.attributes.name;
acct.role = this.roleTranslate(current.attributes.account_role); acct.role = this.roleTranslate(current.attributes.account_role);
acct.iban = current.attributes.iban;
acct.account_number = current.attributes.account_number; acct.account_number = current.attributes.account_number;
acct.current_balance = current.attributes.current_balance; acct.current_balance = current.attributes.current_balance;
acct.currency_code = current.attributes.currency_code; acct.currency_code = current.attributes.currency_code;
acct.balance_diff = 'loading'; acct.balance_diff = 'loading';
if (null !== current.attributes.iban) {
acct.iban = current.attributes.iban.match(/.{1,4}/g).join(' ');
}
this.accounts.push(acct); this.accounts.push(acct);
if ('asset' === this.type) { if ('asset' === this.type) {

View File

@ -0,0 +1,59 @@
<!--
- IndexOptions.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>
<p v-if="'asset' === type">
<input type="checkbox" name="order_mode" id="order_mode" v-model="orderMode"> <label for="order_mode">Enable order mode</label>
</p>
</div>
</template>
<script>
export default {
name: "IndexOptions",
data() {
return {
type: 'invalid'
}
},
computed: {
orderMode: {
get() {
return this.$store.getters["accounts/index/orderMode"];
},
set(value) {
this.$store.commit('accounts/index/setOrderMode', value);
}
},
},
created() {
let pathName = window.location.pathname;
let parts = pathName.split('/');
this.type = parts[parts.length - 1];
}
}
</script>
<style scoped>
</style>

View File

@ -76,9 +76,13 @@
<script> <script>
import {createNamespacedHelpers} from "vuex"; import {createNamespacedHelpers} from "vuex";
import Vue from "vue";
import DatePicker from "v-calendar/lib/components/date-picker.umd";
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index') const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')
Vue.component('date-picker', DatePicker)
export default { export default {
name: "Calendar", name: "Calendar",
created() { created() {

View File

@ -23,13 +23,17 @@ import Vuex, {createLogger} from 'vuex'
import transactions_create from './modules/transactions/create'; import transactions_create from './modules/transactions/create';
import transactions_edit from './modules/transactions/edit'; import transactions_edit from './modules/transactions/edit';
import dashboard_index from './modules/dashboard/index'; import dashboard_index from './modules/dashboard/index';
import root_store from './modules/root';
import accounts_index from './modules/accounts/index';
Vue.use(Vuex) Vue.use(Vuex)
const debug = process.env.NODE_ENV !== 'production' const debug = process.env.NODE_ENV !== 'production'
export default new Vuex.Store( export default new Vuex.Store(
{ {
namespaced: true,
modules: { modules: {
root: root_store,
transactions: { transactions: {
namespaced: true, namespaced: true,
modules: { modules: {
@ -37,6 +41,12 @@ export default new Vuex.Store(
edit: transactions_edit edit: transactions_edit
} }
}, },
accounts: {
namespaced: true,
modules: {
index: accounts_index
},
},
dashboard: { dashboard: {
namespaced: true, namespaced: true,
modules: { modules: {
@ -53,18 +63,15 @@ export default new Vuex.Store(
}, },
mutations: { mutations: {
setCurrencyPreference(state, payload) { setCurrencyPreference(state, payload) {
//console.log('setCurrencyPreference', payload);
state.currencyPreference = payload.payload; state.currencyPreference = payload.payload;
}, },
setListPageSizePreference(state, payload) {
state.listPageSize = payload.length;
},
initialiseStore(state) { initialiseStore(state) {
// if locale in local storage: // if locale in local storage:
if (localStorage.locale) { if (localStorage.locale) {
state.locale = localStorage.locale; state.locale = localStorage.locale;
return; return;
} }
// set locale from HTML: // set locale from HTML:
let localeToken = document.head.querySelector('meta[name="locale"]'); let localeToken = document.head.querySelector('meta[name="locale"]');
if (localeToken) { if (localeToken) {
@ -85,29 +92,12 @@ export default new Vuex.Store(
}, },
locale: state => { locale: state => {
return state.locale; return state.locale;
}
}, },
listPageSize: state => {
return state.listPageSize
},
},
actions: { actions: {
updateListPageSizePreference: function (context) {
if (localStorage.listPageSize) {
context.commit('updateListPageSizePreference', {payload: JSON.parse(localStorage.listPageSize)});
return;
}
axios.get('./api/v1/preferences/listPageSize')
.then(response => {
console.log('listPageSize is ' + parseInt(response.data.data.attributes.data));
context.commit('setListPageSizePreference', {length: parseInt(response.data.data.attributes.data)});
}
);
},
updateCurrencyPreference(context) { updateCurrencyPreference(context) {
if (localStorage.currencyPreference) { if (localStorage.currencyPreference) {
//console.log('set from local storage.');
//console.log(localStorage.currencyPreference);
//console.log({payload: JSON.parse(localStorage.currencyPreference)});
context.commit('setCurrencyPreference', {payload: JSON.parse(localStorage.currencyPreference)}); context.commit('setCurrencyPreference', {payload: JSON.parse(localStorage.currencyPreference)});
return; return;
} }

View File

@ -0,0 +1,52 @@
/*
* index.js
* 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/>.
*/
// initial state
const state = () => (
{
orderMode: false
}
)
// getters
const getters = {
orderMode: state => {
return state.orderMode;
},
}
// actions
const actions = {}
// mutations
const mutations = {
setOrderMode(state, payload) {
state.orderMode = payload;
},
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}

View File

@ -0,0 +1,79 @@
/*
* root.js
* 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/>.
*/
// initial state
const state = () => (
{
listPageSize: 33,
}
)
// getters
const getters = {
listPageSize: state => {
// console.log('Wil return ' + state.listPageSize);
return state.listPageSize;
},
}
// actions
const actions = {
initialiseStore(context) {
// console.log('Now in root initialiseStore');
// if list length in local storage:
if (localStorage.listPageSize) {
// console.log('listPageSize is in localStorage')
// console.log('Init list page size with value ');
// console.log(localStorage.listPageSize);
state.listPageSize = localStorage.listPageSize;
context.commit('setListPageSize', {length: localStorage.listPageSize});
}
if (!localStorage.listPageSize) {
axios.get('./api/v1/preferences/listPageSize')
.then(response => {
// console.log('from API: listPageSize is ' + parseInt(response.data.data.attributes.data));
context.commit('setListPageSize', {length: parseInt(response.data.data.attributes.data)});
}
);
}
}
}
// mutations
const mutations = {
setListPageSize(state, payload) {
// console.log('Got a payload in setListPageSize');
// console.log(payload);
let number = parseInt(payload.length);
if (0 !== number) {
state.listPageSize = number;
}
},
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}

View File

@ -66,6 +66,8 @@
"monthly_budgets": "\u041c\u0435\u0441\u0435\u0447\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438", "monthly_budgets": "\u041c\u0435\u0441\u0435\u0447\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438",
"quarterly_budgets": "\u0422\u0440\u0438\u043c\u0435\u0441\u0435\u0447\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438", "quarterly_budgets": "\u0422\u0440\u0438\u043c\u0435\u0441\u0435\u0447\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438",
"create_new_expense": "\u0421\u044a\u0437\u0434\u0430\u0439 \u043d\u043e\u0432\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u0438", "create_new_expense": "\u0421\u044a\u0437\u0434\u0430\u0439 \u043d\u043e\u0432\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u0438",
"create_new_revenue": "\u0421\u044a\u0437\u0434\u0430\u0439 \u043d\u043e\u0432\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "\u0428\u0435\u0441\u0442\u043c\u0435\u0441\u0435\u0447\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438", "half_year_budgets": "\u0428\u0435\u0441\u0442\u043c\u0435\u0441\u0435\u0447\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438",
"yearly_budgets": "\u0413\u043e\u0434\u0438\u0448\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438", "yearly_budgets": "\u0413\u043e\u0434\u0438\u0448\u043d\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0438",
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f", "split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "Vytvo\u0159it v\u00fddajov\u00fd \u00fa\u010det", "create_new_expense": "Vytvo\u0159it v\u00fddajov\u00fd \u00fa\u010det",
"create_new_revenue": "Vytvo\u0159it nov\u00fd p\u0159\u00edjmov\u00fd \u00fa\u010det",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Popis roz\u00fa\u010dtov\u00e1n\u00ed", "split_transaction_title": "Popis roz\u00fa\u010dtov\u00e1n\u00ed",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monatsbudgets", "monthly_budgets": "Monatsbudgets",
"quarterly_budgets": "Quartalsbudgets", "quarterly_budgets": "Quartalsbudgets",
"create_new_expense": "Neues Ausgabenkonto erstellen", "create_new_expense": "Neues Ausgabenkonto erstellen",
"create_new_revenue": "Neues Einnahmenkonto erstellen",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Halbjahresbudgets", "half_year_budgets": "Halbjahresbudgets",
"yearly_budgets": "Jahresbudgets", "yearly_budgets": "Jahresbudgets",
"split_transaction_title": "Beschreibung der Splittbuchung", "split_transaction_title": "Beschreibung der Splittbuchung",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "\u039c\u03b7\u03bd\u03b9\u03b1\u03af\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af", "monthly_budgets": "\u039c\u03b7\u03bd\u03b9\u03b1\u03af\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af",
"quarterly_budgets": "\u03a4\u03c1\u03b9\u03bc\u03b7\u03bd\u03b9\u03b1\u03af\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af", "quarterly_budgets": "\u03a4\u03c1\u03b9\u03bc\u03b7\u03bd\u03b9\u03b1\u03af\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af",
"create_new_expense": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03bd\u03ad\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03b4\u03b1\u03c0\u03b1\u03bd\u03ce\u03bd", "create_new_expense": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03bd\u03ad\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03b4\u03b1\u03c0\u03b1\u03bd\u03ce\u03bd",
"create_new_revenue": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03bd\u03ad\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03b5\u03c3\u03cc\u03b4\u03c9\u03bd",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "\u0395\u03be\u03b1\u03bc\u03b7\u03bd\u03b9\u03b1\u03af\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af", "half_year_budgets": "\u0395\u03be\u03b1\u03bc\u03b7\u03bd\u03b9\u03b1\u03af\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af",
"yearly_budgets": "\u0395\u03c4\u03ae\u03c3\u03b9\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af", "yearly_budgets": "\u0395\u03c4\u03ae\u03c3\u03b9\u03bf\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af",
"split_transaction_title": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc", "split_transaction_title": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "Create new expense account", "create_new_expense": "Create new expense account",
"create_new_revenue": "Create new revenue account",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Description of the split transaction", "split_transaction_title": "Description of the split transaction",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "Create new expense account", "create_new_expense": "Create new expense account",
"create_new_revenue": "Create new revenue account",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Description of the split transaction", "split_transaction_title": "Description of the split transaction",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Presupuestos mensuales", "monthly_budgets": "Presupuestos mensuales",
"quarterly_budgets": "Presupuestos trimestrales", "quarterly_budgets": "Presupuestos trimestrales",
"create_new_expense": "Crear nueva cuenta de gastos", "create_new_expense": "Crear nueva cuenta de gastos",
"create_new_revenue": "Crear nueva cuenta de ingresos",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Presupuestos semestrales", "half_year_budgets": "Presupuestos semestrales",
"yearly_budgets": "Presupuestos anuales", "yearly_budgets": "Presupuestos anuales",
"split_transaction_title": "Descripci\u00f3n de la transacci\u00f3n dividida", "split_transaction_title": "Descripci\u00f3n de la transacci\u00f3n dividida",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "Luo uusi maksutili", "create_new_expense": "Luo uusi maksutili",
"create_new_revenue": "Luo uusi tuottotili",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Jaetun tapahtuman kuvaus", "split_transaction_title": "Jaetun tapahtuman kuvaus",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Budgets mensuels", "monthly_budgets": "Budgets mensuels",
"quarterly_budgets": "Budgets trimestriels", "quarterly_budgets": "Budgets trimestriels",
"create_new_expense": "Cr\u00e9er nouveau compte de d\u00e9penses", "create_new_expense": "Cr\u00e9er nouveau compte de d\u00e9penses",
"create_new_revenue": "Cr\u00e9er nouveau compte de recettes",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Budgets semestriels", "half_year_budgets": "Budgets semestriels",
"yearly_budgets": "Budgets annuels", "yearly_budgets": "Budgets annuels",
"split_transaction_title": "Description de l'op\u00e9ration ventil\u00e9e", "split_transaction_title": "Description de l'op\u00e9ration ventil\u00e9e",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "\u00daj k\u00f6lts\u00e9gsz\u00e1mla l\u00e9trehoz\u00e1sa", "create_new_expense": "\u00daj k\u00f6lts\u00e9gsz\u00e1mla l\u00e9trehoz\u00e1sa",
"create_new_revenue": "\u00daj j\u00f6vedelemsz\u00e1mla l\u00e9trehoz\u00e1sa",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Felosztott tranzakci\u00f3 le\u00edr\u00e1sa", "split_transaction_title": "Felosztott tranzakci\u00f3 le\u00edr\u00e1sa",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Budget mensili", "monthly_budgets": "Budget mensili",
"quarterly_budgets": "Bilanci trimestrali", "quarterly_budgets": "Bilanci trimestrali",
"create_new_expense": "Crea un nuovo conto di spesa", "create_new_expense": "Crea un nuovo conto di spesa",
"create_new_revenue": "Crea un nuovo conto entrate",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Bilanci semestrali", "half_year_budgets": "Bilanci semestrali",
"yearly_budgets": "Budget annuali", "yearly_budgets": "Budget annuali",
"split_transaction_title": "Descrizione della transazione suddivisa", "split_transaction_title": "Descrizione della transazione suddivisa",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "Opprett ny utgiftskonto", "create_new_expense": "Opprett ny utgiftskonto",
"create_new_revenue": "Opprett ny inntektskonto",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Description of the split transaction", "split_transaction_title": "Description of the split transaction",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Maandelijkse budgetten", "monthly_budgets": "Maandelijkse budgetten",
"quarterly_budgets": "Driemaandelijkse budgetten", "quarterly_budgets": "Driemaandelijkse budgetten",
"create_new_expense": "Nieuwe crediteur", "create_new_expense": "Nieuwe crediteur",
"create_new_revenue": "Nieuwe debiteur",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Halfjaarlijkse budgetten", "half_year_budgets": "Halfjaarlijkse budgetten",
"yearly_budgets": "Jaarlijkse budgetten", "yearly_budgets": "Jaarlijkse budgetten",
"split_transaction_title": "Beschrijving van de gesplitste transactie", "split_transaction_title": "Beschrijving van de gesplitste transactie",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Bud\u017cety miesi\u0119czne", "monthly_budgets": "Bud\u017cety miesi\u0119czne",
"quarterly_budgets": "Bud\u017cety kwartalne", "quarterly_budgets": "Bud\u017cety kwartalne",
"create_new_expense": "Utw\u00f3rz nowe konto wydatk\u00f3w", "create_new_expense": "Utw\u00f3rz nowe konto wydatk\u00f3w",
"create_new_revenue": "Utw\u00f3rz nowe konto przychod\u00f3w",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Bud\u017cety p\u00f3\u0142roczne", "half_year_budgets": "Bud\u017cety p\u00f3\u0142roczne",
"yearly_budgets": "Bud\u017cety roczne", "yearly_budgets": "Bud\u017cety roczne",
"split_transaction_title": "Opis podzielonej transakcji", "split_transaction_title": "Opis podzielonej transakcji",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Or\u00e7amentos mensais", "monthly_budgets": "Or\u00e7amentos mensais",
"quarterly_budgets": "Or\u00e7amentos trimestrais", "quarterly_budgets": "Or\u00e7amentos trimestrais",
"create_new_expense": "Criar nova conta de despesa", "create_new_expense": "Criar nova conta de despesa",
"create_new_revenue": "Criar nova conta de receita",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Or\u00e7amentos semestrais", "half_year_budgets": "Or\u00e7amentos semestrais",
"yearly_budgets": "Or\u00e7amentos anuais", "yearly_budgets": "Or\u00e7amentos anuais",
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida", "split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Or\u00e7amento mensal", "monthly_budgets": "Or\u00e7amento mensal",
"quarterly_budgets": "Or\u00e7amento trimestral", "quarterly_budgets": "Or\u00e7amento trimestral",
"create_new_expense": "Criar nova conta de despesas", "create_new_expense": "Criar nova conta de despesas",
"create_new_revenue": "Criar nova conta de receitas",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Or\u00e7amento semestral", "half_year_budgets": "Or\u00e7amento semestral",
"yearly_budgets": "Or\u00e7amento anual", "yearly_budgets": "Or\u00e7amento anual",
"split_transaction_title": "Descri\u00e7\u00e3o da transac\u00e7\u00e3o dividida", "split_transaction_title": "Descri\u00e7\u00e3o da transac\u00e7\u00e3o dividida",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "Crea\u021bi un nou cont de cheltuieli", "create_new_expense": "Crea\u021bi un nou cont de cheltuieli",
"create_new_revenue": "Crea\u021bi un nou cont de venituri",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "Descrierea tranzac\u021biei divizate", "split_transaction_title": "Descrierea tranzac\u021biei divizate",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043c\u0435\u0441\u044f\u0446", "monthly_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043c\u0435\u0441\u044f\u0446",
"quarterly_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "quarterly_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043a\u0432\u0430\u0440\u0442\u0430\u043b",
"create_new_expense": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0447\u0451\u0442 \u0440\u0430\u0441\u0445\u043e\u0434\u0430", "create_new_expense": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0447\u0451\u0442 \u0440\u0430\u0441\u0445\u043e\u0434\u0430",
"create_new_revenue": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0447\u0451\u0442 \u0434\u043e\u0445\u043e\u0434\u0430",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430", "half_year_budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430",
"yearly_budgets": "\u0413\u043e\u0434\u043e\u0432\u044b\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u044b", "yearly_budgets": "\u0413\u043e\u0434\u043e\u0432\u044b\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u044b",
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438", "split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Mesa\u010dn\u00e9 rozpo\u010dty", "monthly_budgets": "Mesa\u010dn\u00e9 rozpo\u010dty",
"quarterly_budgets": "\u0160tvr\u0165ro\u010dn\u00e9 rozpo\u010dty", "quarterly_budgets": "\u0160tvr\u0165ro\u010dn\u00e9 rozpo\u010dty",
"create_new_expense": "Vytvori\u0165 v\u00fddavko\u00fd \u00fa\u010det", "create_new_expense": "Vytvori\u0165 v\u00fddavko\u00fd \u00fa\u010det",
"create_new_revenue": "Vytvori\u0165 nov\u00fd pr\u00edjmov\u00fd \u00fa\u010det",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Polro\u010dn\u00e9 rozpo\u010dty", "half_year_budgets": "Polro\u010dn\u00e9 rozpo\u010dty",
"yearly_budgets": "Ro\u010dn\u00e9 rozpo\u010dty", "yearly_budgets": "Ro\u010dn\u00e9 rozpo\u010dty",
"split_transaction_title": "Popis roz\u00fa\u010dtovania", "split_transaction_title": "Popis roz\u00fa\u010dtovania",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "M\u00e5natliga budgetar", "monthly_budgets": "M\u00e5natliga budgetar",
"quarterly_budgets": "Kvartalsbudgetar", "quarterly_budgets": "Kvartalsbudgetar",
"create_new_expense": "Skapa ett nytt utgiftskonto", "create_new_expense": "Skapa ett nytt utgiftskonto",
"create_new_revenue": "Skapa ett nytt int\u00e4ktskonto",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Halv\u00e5rsbudgetar", "half_year_budgets": "Halv\u00e5rsbudgetar",
"yearly_budgets": "\u00c5rliga budgetar", "yearly_budgets": "\u00c5rliga budgetar",
"split_transaction_title": "Beskrivning av delad transaktion", "split_transaction_title": "Beskrivning av delad transaktion",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "T\u1ea1o t\u00e0i kho\u1ea3n chi ph\u00ed m\u1edbi", "create_new_expense": "T\u1ea1o t\u00e0i kho\u1ea3n chi ph\u00ed m\u1edbi",
"create_new_revenue": "T\u1ea1o t\u00e0i kho\u1ea3n doanh thu m\u1edbi",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch", "split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "\u6bcf\u6708\u9884\u7b97", "monthly_budgets": "\u6bcf\u6708\u9884\u7b97",
"quarterly_budgets": "\u6bcf\u5b63\u5ea6\u9884\u7b97", "quarterly_budgets": "\u6bcf\u5b63\u5ea6\u9884\u7b97",
"create_new_expense": "\u521b\u5efa\u65b0\u652f\u51fa\u8d26\u6237", "create_new_expense": "\u521b\u5efa\u65b0\u652f\u51fa\u8d26\u6237",
"create_new_revenue": "\u521b\u5efa\u65b0\u6536\u5165\u8d26\u6237",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "\u6bcf\u534a\u5e74\u9884\u7b97", "half_year_budgets": "\u6bcf\u534a\u5e74\u9884\u7b97",
"yearly_budgets": "\u6bcf\u5e74\u9884\u7b97", "yearly_budgets": "\u6bcf\u5e74\u9884\u7b97",
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0", "split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",

View File

@ -66,6 +66,8 @@
"monthly_budgets": "Monthly budgets", "monthly_budgets": "Monthly budgets",
"quarterly_budgets": "Quarterly budgets", "quarterly_budgets": "Quarterly budgets",
"create_new_expense": "\u5efa\u7acb\u65b0\u652f\u51fa\u5e33\u6236", "create_new_expense": "\u5efa\u7acb\u65b0\u652f\u51fa\u5e33\u6236",
"create_new_revenue": "\u5efa\u7acb\u65b0\u6536\u5165\u5e33\u6236",
"create_new_liabilities": "Create new liability",
"half_year_budgets": "Half-yearly budgets", "half_year_budgets": "Half-yearly budgets",
"yearly_budgets": "Yearly budgets", "yearly_budgets": "Yearly budgets",
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0", "split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",

View File

@ -17,23 +17,23 @@
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
require('../../bootstrap');
import Vue from "vue"; import Vue from "vue";
import Index from "../../components/accounts/Index"; import Index from "../../components/accounts/Index";
import store from "../../components/store"; import store from "../../components/store";
import {BTable, BPagination} from 'bootstrap-vue'; import {BPagination, BTable} from 'bootstrap-vue';
import Calendar from "../../components/dashboard/Calendar";
require('../../bootstrap'); import IndexOptions from "../../components/accounts/IndexOptions";
//import Vuex from "vuex";
// i18n // i18n
let i18n = require('../../i18n'); let i18n = require('../../i18n');
let props = {}; let props = {};
Vue.component('b-table', BTable); Vue.component('b-table', BTable);
Vue.component('b-pagination', BPagination); Vue.component('b-pagination', BPagination);
//Vue.use(Vuex);
new Vue({ new Vue({
i18n, i18n,
@ -43,10 +43,34 @@ new Vue({
return createElement(Index, {props: props}); return createElement(Index, {props: props});
}, },
beforeCreate() { beforeCreate() {
// init the old root store (TODO remove me)
this.$store.commit('initialiseStore'); this.$store.commit('initialiseStore');
this.$store.dispatch('updateCurrencyPreference'); this.$store.dispatch('updateCurrencyPreference');
this.$store.dispatch('updateListPageSizePreference');
// init the new root store (dont care about results)
this.$store.dispatch('root/initialiseStore');
// also init the dashboard store. // also init the dashboard store.
this.$store.dispatch('dashboard/index/initialiseStore'); this.$store.dispatch('dashboard/index/initialiseStore');
}, },
}); });
new Vue({
i18n,
store,
el: "#calendar",
render: (createElement) => {
return createElement(Calendar, {props: props});
},
// TODO init store as well?
});
new Vue({
i18n,
store,
el: "#indexOptions",
render: (createElement) => {
return createElement(IndexOptions, {props: props});
},
// TODO init store as well?
});

View File

@ -30,7 +30,6 @@ import MainPiggyList from "../components/dashboard/MainPiggyList";
import TransactionListLarge from "../components/transactions/TransactionListLarge"; import TransactionListLarge from "../components/transactions/TransactionListLarge";
import TransactionListMedium from "../components/transactions/TransactionListMedium"; import TransactionListMedium from "../components/transactions/TransactionListMedium";
import TransactionListSmall from "../components/transactions/TransactionListSmall"; import TransactionListSmall from "../components/transactions/TransactionListSmall";
import DatePicker from 'v-calendar/lib/components/date-picker.umd'
import Calendar from "../components/dashboard/Calendar"; import Calendar from "../components/dashboard/Calendar";
import MainCategoryList from "../components/dashboard/MainCategoryList"; import MainCategoryList from "../components/dashboard/MainCategoryList";
import Vue from "vue"; import Vue from "vue";
@ -51,7 +50,7 @@ Vue.component('transaction-list-medium', TransactionListMedium);
Vue.component('transaction-list-small', TransactionListSmall); Vue.component('transaction-list-small', TransactionListSmall);
// components as an example // components as an example
Vue.component('date-picker', DatePicker)
Vue.component('dashboard', Dashboard); Vue.component('dashboard', Dashboard);
Vue.component('top-boxes', TopBoxes); Vue.component('top-boxes', TopBoxes);
Vue.component('main-account', MainAccount); Vue.component('main-account', MainAccount);

View File

@ -15,19 +15,19 @@
integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==
"@babel/core@^7.0.0-beta.49", "@babel/core@^7.2.0": "@babel/core@^7.0.0-beta.49", "@babel/core@^7.2.0":
version "7.13.10" version "7.13.13"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.13.tgz#bc44c4a2be2288ec4ddf56b66fc718019c76ac29"
integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== integrity sha512-1xEs9jZAyKIouOoCmpsgk/I26PoKyvzQ2ixdRpRzfbcp1fL+ozw7TUgdDgwonbTovqRaTfRh50IXuw4QrWO0GA==
dependencies: dependencies:
"@babel/code-frame" "^7.12.13" "@babel/code-frame" "^7.12.13"
"@babel/generator" "^7.13.9" "@babel/generator" "^7.13.9"
"@babel/helper-compilation-targets" "^7.13.10" "@babel/helper-compilation-targets" "^7.13.13"
"@babel/helper-module-transforms" "^7.13.0" "@babel/helper-module-transforms" "^7.13.12"
"@babel/helpers" "^7.13.10" "@babel/helpers" "^7.13.10"
"@babel/parser" "^7.13.10" "@babel/parser" "^7.13.13"
"@babel/template" "^7.12.13" "@babel/template" "^7.12.13"
"@babel/traverse" "^7.13.0" "@babel/traverse" "^7.13.13"
"@babel/types" "^7.13.0" "@babel/types" "^7.13.13"
convert-source-map "^1.7.0" convert-source-map "^1.7.0"
debug "^4.1.0" debug "^4.1.0"
gensync "^1.0.0-beta.2" gensync "^1.0.0-beta.2"
@ -36,7 +36,7 @@
semver "^6.3.0" semver "^6.3.0"
source-map "^0.5.0" source-map "^0.5.0"
"@babel/generator@^7.13.0", "@babel/generator@^7.13.9": "@babel/generator@^7.13.9":
version "7.13.9" version "7.13.9"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==
@ -60,12 +60,12 @@
"@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/helper-explode-assignable-expression" "^7.12.13"
"@babel/types" "^7.12.13" "@babel/types" "^7.12.13"
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.8": "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8":
version "7.13.10" version "7.13.13"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5"
integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==
dependencies: dependencies:
"@babel/compat-data" "^7.13.8" "@babel/compat-data" "^7.13.12"
"@babel/helper-validator-option" "^7.12.17" "@babel/helper-validator-option" "^7.12.17"
browserslist "^4.14.5" browserslist "^4.14.5"
semver "^6.3.0" semver "^6.3.0"
@ -148,7 +148,7 @@
dependencies: dependencies:
"@babel/types" "^7.13.12" "@babel/types" "^7.13.12"
"@babel/helper-module-transforms@^7.13.0": "@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.12":
version "7.13.12" version "7.13.12"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96"
integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ== integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==
@ -252,10 +252,10 @@
chalk "^2.0.0" chalk "^2.0.0"
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10": "@babel/parser@^7.12.13", "@babel/parser@^7.13.13":
version "7.13.12" version "7.13.13"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.12.tgz#ba320059420774394d3b0c0233ba40e4250b81d1" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"
integrity sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw== integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
version "7.13.12" version "7.13.12"
@ -821,25 +821,24 @@
"@babel/parser" "^7.12.13" "@babel/parser" "^7.12.13"
"@babel/types" "^7.12.13" "@babel/types" "^7.12.13"
"@babel/traverse@^7.13.0": "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13":
version "7.13.0" version "7.13.13"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d"
integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== integrity sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==
dependencies: dependencies:
"@babel/code-frame" "^7.12.13" "@babel/code-frame" "^7.12.13"
"@babel/generator" "^7.13.0" "@babel/generator" "^7.13.9"
"@babel/helper-function-name" "^7.12.13" "@babel/helper-function-name" "^7.12.13"
"@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-split-export-declaration" "^7.12.13"
"@babel/parser" "^7.13.0" "@babel/parser" "^7.13.13"
"@babel/types" "^7.13.0" "@babel/types" "^7.13.13"
debug "^4.1.0" debug "^4.1.0"
globals "^11.1.0" globals "^11.1.0"
lodash "^4.17.19"
"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.4.4": "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.4.4":
version "7.13.12" version "7.13.13"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.13.tgz#dcd8b815b38f537a3697ce84c8e3cc62197df96f"
integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA== integrity sha512-kt+EpC6qDfIaqlP+DIbIJOclYy/A1YXs9dAf/ljbi+39Bcbc073H6jKVpXEr/EoIh5anGn5xq/yRVzKl+uIc9w==
dependencies: dependencies:
"@babel/helper-validator-identifier" "^7.12.11" "@babel/helper-validator-identifier" "^7.12.11"
lodash "^4.17.19" lodash "^4.17.19"
@ -925,9 +924,9 @@
integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
"@types/node@*": "@types/node@*":
version "14.14.36" version "14.14.37"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.36.tgz#5637905dbb15c30a33a3c65b9ef7c20e3c85ebad" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e"
integrity sha512-kjivUwDJfIjngzbhooRnOLhGYz6oRFi+L+EpMjxroDYXwDw9lHrJJ43E+dJ6KAd3V3WxWAJ/qZE9XKYHhjPOFQ== integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==
"@types/q@^1.5.1": "@types/q@^1.5.1":
version "1.5.4" version "1.5.4"
@ -3216,9 +3215,9 @@ ekko-lightbox@^5.3.0:
integrity sha512-mbacwySuVD3Ad6F2hTkjSTvJt59bcVv2l/TmBerp4xZnLak8tPtA4AScUn4DL42c1ksTiAO6sGhJZ52P/1Qgew== integrity sha512-mbacwySuVD3Ad6F2hTkjSTvJt59bcVv2l/TmBerp4xZnLak8tPtA4AScUn4DL42c1ksTiAO6sGhJZ52P/1Qgew==
electron-to-chromium@^1.3.649: electron-to-chromium@^1.3.649:
version "1.3.700" version "1.3.701"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.700.tgz#a6999a954c698dc7da5e84c369d65432dbe895be" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.701.tgz#5e796ed7ce88cd77bc7bf831cf311ef6b067c389"
integrity sha512-wQtaxVZzpOeCjW1CGuC5W3bYjE2jglvk076LcTautBOB9UtHztty7wNzjVsndiMcSsdUsdMy5w76w5J1U7OPTQ== integrity sha512-Zd9ofdIMYHYhG1gvnejQDvC/kqSeXQvtXF0yRURGxgwGqDZm9F9Fm3dYFnm5gyuA7xpXfBlzVLN1sz0FjxpKfw==
elliptic@^6.5.3: elliptic@^6.5.3:
version "6.5.4" version "6.5.4"
@ -7260,6 +7259,11 @@ sockjs@^0.3.21:
uuid "^3.4.0" uuid "^3.4.0"
websocket-driver "^0.7.4" websocket-driver "^0.7.4"
sortablejs@^1.13.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.13.0.tgz#3ab2473f8c69ca63569e80b1cd1b5669b51269e9"
integrity sha512-RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg==
source-list-map@^2.0.0: source-list-map@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
@ -7612,9 +7616,9 @@ svgo@^1.0.0:
util.promisify "~1.0.0" util.promisify "~1.0.0"
sweetalert2@^10.15.6: sweetalert2@^10.15.6:
version "10.15.6" version "10.15.7"
resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-10.15.6.tgz#8fe309af76543f7d8151a2e57a226f1cceb51a4e" resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-10.15.7.tgz#ad4c8f08432952d3283adbaa9a309c534f5a863d"
integrity sha512-elLyVvVwBBsgkT0NrxiiVuEv077gqGhm7WEdBjXRHN+TOX+MoC4LpDW2kbdSeJtjjU1sPdqGKfGLoJElIXfVWA== integrity sha512-imY0MR03NGefPcGzSYjWYz1GMIlniusEBXilswvKrHD/GMiTxA5jnsdjtK2IoRyXfEaqV7GWt6DM4YVjAZU8gw==
tapable@^1.0.0, tapable@^1.1.3: tapable@^1.0.0, tapable@^1.1.3:
version "1.1.3" version "1.1.3"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{332:function(n,e,t){n.exports=t(458)},458:function(n,e,t){"use strict";t.r(e);var o={name:"Show"},r=t(4),s=Object(r.a)(o,(function(){var n=this.$createElement;return(this._self._c||n)("div",[this._v("\n I am a show\n")])}),[],!1,null,"321a1058",null).exports;t(41);var u=t(43),a={};new Vue({i18n:u,render:function(n){return n(s,{props:a})}}).$mount("#accounts_show")}},[[332,0,1]]]); (window.webpackJsonp=window.webpackJsonp||[]).push([[3],{334:function(n,e,t){n.exports=t(460)},460:function(n,e,t){"use strict";t.r(e);var o={name:"Show"},r=t(4),s=Object(r.a)(o,(function(){var n=this.$createElement;return(this._self._c||n)("div",[this._v("\n I am a show\n")])}),[],!1,null,"321a1058",null).exports;t(41);var u=t(43),a={};new Vue({i18n:u,render:function(n){return n(s,{props:a})}}).$mount("#accounts_show")}},[[334,0,1]]]);
//# sourceMappingURL=show.js.map //# sourceMappingURL=show.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{328:function(n,o,p){n.exports=p(329)},329:function(n,o,p){p(41)}},[[328,0,1]]]); (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{330:function(n,o,p){n.exports=p(331)},331:function(n,o,p){p(41)}},[[330,0,1]]]);
//# sourceMappingURL=empty.js.map //# sourceMappingURL=empty.js.map

View File

@ -1,2 +1,2 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{330:function(a,e,t){a.exports=t(456)},456:function(a,e,t){"use strict";t.r(e);var s={name:"Index"},n=t(4),i=Object(n.a)(s,(function(){var a=this.$createElement;this._self._c;return this._m(0)}),[function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("div",{attrs:{id:"accordion"}},[t("div",{staticClass:"card card-primary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseOne"}},[a._v("\n Create new accounts\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse show",attrs:{id:"collapseOne"}},[t("div",{staticClass:"card-body"},[t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("p",[a._v("Explain")])])]),a._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"col-lg-4"},[a._v("\n A\n ")]),a._v(" "),t("div",{staticClass:"col-lg-8"},[a._v("\n B\n ")])])])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseTwo"}},[a._v("\n Collapsible Group Danger\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseTwo"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseThree"}},[a._v("\n Collapsible Group Success\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseThree"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])])])])])}],!1,null,"2d2bc9db",null).exports;t(41);var c=t(43),r={};new Vue({i18n:c,render:function(a){return a(i,{props:r})}}).$mount("#newuser")}},[[330,0,1]]]); (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{332:function(a,e,t){a.exports=t(459)},459:function(a,e,t){"use strict";t.r(e);var s={name:"Index"},n=t(4),i=Object(n.a)(s,(function(){var a=this.$createElement;this._self._c;return this._m(0)}),[function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("div",{attrs:{id:"accordion"}},[t("div",{staticClass:"card card-primary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseOne"}},[a._v("\n Create new accounts\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse show",attrs:{id:"collapseOne"}},[t("div",{staticClass:"card-body"},[t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("p",[a._v("Explain")])])]),a._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"col-lg-4"},[a._v("\n A\n ")]),a._v(" "),t("div",{staticClass:"col-lg-8"},[a._v("\n B\n ")])])])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseTwo"}},[a._v("\n Collapsible Group Danger\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseTwo"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseThree"}},[a._v("\n Collapsible Group Success\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseThree"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])])])])])}],!1,null,"2d2bc9db",null).exports;t(41);var c=t(43),r={};new Vue({i18n:c,render:function(a){return a(i,{props:r})}}).$mount("#newuser")}},[[332,0,1]]]);
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

View File

@ -1,2 +1,2 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{452:function(n,o,w){n.exports=w(453)},453:function(n,o,w){w(454)},454:function(n,o,w){window.$=window.jQuery=w(49)}},[[452,0,1]]]); (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{454:function(n,o,w){n.exports=w(455)},455:function(n,o,w){w(456)},456:function(n,o,w){window.$=window.jQuery=w(49)}},[[454,0,1]]]);
//# sourceMappingURL=register.js.map //# sourceMappingURL=register.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -115,6 +115,13 @@
* SOFTWARE. * SOFTWARE.
*/ */
/**!
* Sortable 1.13.0
* @author RubaXa <trash@rubaxa.org>
* @author owenm <owen23355@gmail.com>
* @license MIT
*/
//! moment.js //! moment.js
//! moment.js locale configuration //! moment.js locale configuration

File diff suppressed because one or more lines are too long

View File

@ -886,6 +886,7 @@ return [
'create_new_deposit' => 'Create new deposit', 'create_new_deposit' => 'Create new deposit',
'create_new_transfer' => 'Create new transfer', 'create_new_transfer' => 'Create new transfer',
'create_new_asset' => 'Create new asset account', 'create_new_asset' => 'Create new asset account',
'create_new_liabilities' => 'Create new liability',
'create_new_expense' => 'Create new expense account', 'create_new_expense' => 'Create new expense account',
'create_new_revenue' => 'Create new revenue account', 'create_new_revenue' => 'Create new revenue account',
'create_new_piggy_bank' => 'Create new piggy bank', 'create_new_piggy_bank' => 'Create new piggy bank',
@ -1130,6 +1131,7 @@ return [
'interest_calc_monthly' => 'Per month', 'interest_calc_monthly' => 'Per month',
'interest_calc_yearly' => 'Per year', 'interest_calc_yearly' => 'Per year',
'initial_balance_account' => 'Initial balance account of :account', 'initial_balance_account' => 'Initial balance account of :account',
'list_options' => 'List options',
// categories: // categories:
'new_category' => 'New category', 'new_category' => 'New category',

View File

@ -6,6 +6,21 @@
<div id="accounts"></div> <div id="accounts"></div>
{% endblock %} {% endblock %}
{% block control %}
<div>
<div class="p-3 control-sidebar-content">
<h5>{{ 'date_range'|_ }}</h5>
<hr class="mb-2">
<div id="calendar"></div>
<hr class="mb-2">
<h5>{{ 'list_options'|_ }}</h5>
<div id="indexOptions"></div>
<hr class="mb-2">
</div>
</div>
{% endblock %}
{% block scripts %} {% block scripts %}
<script src="v2/js/accounts/index.js" nonce="{{ JS_NONCE }}"></script> <script src="v2/js/accounts/index.js" nonce="{{ JS_NONCE }}"></script>
{% endblock %} {% endblock %}