Rebuild frontend

This commit is contained in:
James Cole
2021-02-05 06:45:27 +01:00
parent d69843d4bc
commit 8e42f25a1e
38 changed files with 187 additions and 66 deletions

View File

@@ -34,7 +34,7 @@
<script>
export default {
name: "BudgetRow",
mounted() {
created() {
this.locale = localStorage.locale ?? 'en-US';
},
data() {

View File

@@ -26,7 +26,7 @@
extends: Line,
props: ['options', 'chartData'],
mounted() {
created() {
// this.chartData is created in the mixin.
// If you want to pass options please create a local options object
this.renderChart(this.chartData, this.options)

View File

@@ -35,17 +35,22 @@
<tbody>
<tr v-for="bill in this.bills">
<td><a :href="'./bills/show/' + bill.id" :title="bill.attributes.name">{{ bill.attributes.name }}</a>
~{{
Intl.NumberFormat(locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +
parseFloat(bill.attributes.amount_max)) / 2)
}}
<br />
(~ <span class="text-danger">{{
Intl.NumberFormat(locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +
parseFloat(bill.attributes.amount_max)) / -2)
}}</span>)
<small v-if="bill.attributes.object_group_title" class="text-muted">
<br/>
{{ bill.attributes.object_group_title }}
</small>
</td>
<td>
<span v-for="payDate in bill.attributes.pay_dates">
{{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)) }}
<br />
</span>
<span v-for="paidDate in bill.attributes.paid_dates">
<span v-html="renderPaidDate(paidDate)"/><br/>
</span>
<span v-for="payDate in bill.attributes.pay_dates" v-if="0===bill.attributes.paid_dates.length">
{{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)) }}<br/>
</span>
</td>
</tr>
</tbody>
@@ -60,12 +65,8 @@
export default {
name: "MainBillsList",
computed: {
locale() {
return this.$store.getters.locale;
}
},
created() {
this.locale = localStorage.locale ?? 'en-US';
axios.get('./api/v1/bills?start=' + window.sessionStart + '&end=' + window.sessionEnd)
.then(response => {
this.loadBills(response.data.data);
@@ -74,7 +75,13 @@ export default {
},
components: {},
methods: {
loadBills(data) {
renderPaidDate: function (obj) {
console.log(obj);
let dateStr = new Intl.DateTimeFormat(this.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(obj.date));
let str = this.$t('firefly.bill_paid_on', {date: dateStr});
return '<a href="./transactions/show/' + obj.transaction_group_id + '" title="' + str + '">' + str + '</a>';
},
loadBills: function (data) {
for (let key in data) {
if (data.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
@@ -89,7 +96,8 @@ export default {
},
data() {
return {
bills: []
bills: [],
locale: 'en-US'
}
},
}

View File

@@ -34,7 +34,8 @@
</thead>
<tbody>
<tr v-for="piggy in this.piggy_banks">
<td>{{ piggy.attributes.name }}
<td>
<a :href="'./piggy-banks/show/' + piggy.id" :title="piggy.attributes.name">{{ piggy.attributes.name }}</a>
<small v-if="piggy.attributes.object_group_title" class="text-muted">
<br/>
{{ piggy.attributes.object_group_title }}

View File

@@ -148,7 +148,7 @@
<!-- start of body -->
<!-- meta -->
<div class="row">
<div class="col">
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<TransactionBudget
v-model="transaction.budget_id"
:index="index"
@@ -160,7 +160,7 @@
:errors="transaction.errors.category"
/>
</div>
<div class="col">
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<TransactionBill
v-model="transaction.bill_id"
:index="index"
@@ -196,7 +196,7 @@
<div class="card-body">
<!-- start of body -->
<div class="row">
<div class="col">
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<TransactionInternalReference
:index="index"
@@ -215,7 +215,7 @@
:errors="transaction.errors.notes"
/>
</div>
<div class="col">
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<TransactionAttachments
:index="index"
@@ -243,7 +243,7 @@
</div>
<div class="row">
<!-- group title -->
<div class="col">
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="card" v-if="transactions.length > 1">
<div class="card-body">
<div class="row">
@@ -254,24 +254,43 @@
</div>
</div>
</div>
<div class="col">
<div class="row">
<!-- buttons! -->
<div class="col">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col">
<div class="text-xs d-none d-lg-block d-xl-block">
&nbsp;
</div>
<button @click="addTransaction" class="btn btn-primary float-left"><i class="far fa-clone"></i> {{ $t('firefly.add_another_split') }}
</button>
<button class="btn btn-success float-right" @click="submitTransaction" :disabled="isSubmitting && !submitted">
<span v-if="!isSubmitting"><i class="far fa-save"></i> {{ $t('firefly.store_transaction') }}</span>
<span v-if="isSubmitting && !submitted"><i class="fas fa-spinner fa-spin"></i></span>
</button>
</div>
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col">
<div class="text-xs d-none d-lg-block d-xl-block">
&nbsp;
</div>
<button @click="addTransaction" class="btn btn-outline-primary btn-block"><i class="far fa-clone"></i> {{ $t('firefly.add_another_split') }}
</button>
</div>
<div class="col">
<div class="text-xs d-none d-lg-block d-xl-block">
&nbsp;
</div>
<button class="btn btn-success btn-block" @click="submitTransaction" :disabled="isSubmitting && !submitted">
<span v-if="!isSubmitting"><i class="far fa-save"></i> {{ $t('firefly.store_transaction') }}</span>
<span v-if="isSubmitting && !submitted"><i class="fas fa-spinner fa-spin"></i></span>
</button>
</div>
</div>
<div class="row">
<div class="col">
&nbsp;
</div>
<div class="col">
<div class="form-check">
<input class="form-check-input" type="checkbox" v-model="createAnother" id="createAnother">
<label class="form-check-label" for="createAnother">
<span class="small">{{ $t('firefly.create_another') }}</span>
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" v-model="resetFormAfter" id="resetFormAfter" :disabled="!createAnother">
<label class="form-check-label" for="resetFormAfter">
<span class="small">{{ $t('firefly.reset_after') }}</span>
</label>
</div>
</div>
</div>
@@ -359,8 +378,8 @@ export default {
groupTitle: '',
// some button flag things
createAnother: true,
resetFormAfter: true
createAnother: false,
resetFormAfter: false
}
},
computed: {
@@ -436,7 +455,7 @@ export default {
this.successMessage = this.$t('firefly.transaction_stored_link', {ID: this.groupId, title: this.groupTitle});
if (this.resetFormAfter) {
this.submitted = false;
this.resetTransactions();
this.resetTransactions();
// do a short time out?
setTimeout(() => this.addTransaction(), 50);
// reset the form:

View File

@@ -69,6 +69,9 @@
"flash_error": "\u0413\u0440\u0435\u0448\u043a\u0430!",
"store_transaction": "Store transaction",
"flash_success": "\u0423\u0441\u043f\u0435\u0445!",
"create_another": "\u0421\u043b\u0435\u0434 \u0441\u044a\u0445\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0441\u0435 \u0432\u044a\u0440\u043d\u0435\u0442\u0435 \u0442\u0443\u043a, \u0437\u0430 \u0434\u0430 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u043d\u043e\u0432\u0430.",
"reset_after": "\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u044f\u0440\u0430 \u0441\u043b\u0435\u0434 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}(\"{title}\")<\/a> \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430.",
"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",

View File

@@ -69,6 +69,9 @@
"flash_error": "Chyba!",
"store_transaction": "Store transaction",
"flash_success": "\u00dasp\u011b\u0161n\u011b dokon\u010deno!",
"create_another": "After storing, return here to create another one.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "Transaction links",

View File

@@ -69,6 +69,9 @@
"flash_error": "Fehler!",
"store_transaction": "Buchung speichern",
"flash_success": "Geschafft!",
"create_another": "Nach dem Speichern hierher zur\u00fcckkehren, um ein weiteres zu erstellen.",
"reset_after": "Formular nach der \u00dcbermittlung zur\u00fccksetzen",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Buchung #{ID} (\"{title}\")<\/a> wurde gespeichert.",
"other_budgets": "Zeitlich befristete Budgets",
"journal_links": "Buchungsverkn\u00fcpfungen",

View File

@@ -69,6 +69,9 @@
"flash_error": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1!",
"store_transaction": "Store transaction",
"flash_success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1!",
"create_another": "\u039c\u03b5\u03c4\u03ac \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7, \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03ba\u03cc\u03bc\u03b7 \u03ad\u03bd\u03b1.",
"reset_after": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c6\u03cc\u03c1\u03bc\u03b1\u03c2 \u03bc\u03b5\u03c4\u03ac \u03c4\u03b7\u03bd \u03c5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID} (\"{title}\")<\/a> \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af.",
"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",

View File

@@ -69,6 +69,9 @@
"flash_error": "Error!",
"store_transaction": "Store transaction",
"flash_success": "Success!",
"create_another": "After storing, return here to create another one.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "Transaction links",

View File

@@ -69,6 +69,9 @@
"flash_error": "Error!",
"store_transaction": "Store transaction",
"flash_success": "Success!",
"create_another": "After storing, return here to create another one.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "Transaction links",

View File

@@ -69,6 +69,9 @@
"flash_error": "\u00a1Error!",
"store_transaction": "Store transaction",
"flash_success": "\u00a1Operaci\u00f3n correcta!",
"create_another": "Despu\u00e9s de guardar, vuelve aqu\u00ed para crear otro.",
"reset_after": "Restablecer formulario despu\u00e9s del env\u00edo",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">La transacci\u00f3n #{ID} (\"{title}\")<\/a> ha sido almacenada.",
"other_budgets": "Presupuestos de tiempo personalizado",
"journal_links": "Enlaces de transacciones",

View File

@@ -69,6 +69,9 @@
"flash_error": "Virhe!",
"store_transaction": "Store transaction",
"flash_success": "Valmista tuli!",
"create_another": "Tallennuksen j\u00e4lkeen, palaa takaisin luomaan uusi tapahtuma.",
"reset_after": "Tyhjenn\u00e4 lomake l\u00e4hetyksen j\u00e4lkeen",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "Tapahtuman linkit",

View File

@@ -69,6 +69,9 @@
"flash_error": "Erreur !",
"store_transaction": "Enregistrer l'op\u00e9ration",
"flash_success": "Super !",
"create_another": "Apr\u00e8s enregistrement, revenir ici pour en cr\u00e9er un nouveau.",
"reset_after": "R\u00e9initialiser le formulaire apr\u00e8s soumission",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">L'op\u00e9ration n\u00b0{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9e.",
"other_budgets": "Budgets \u00e0 p\u00e9riode personnalis\u00e9e",
"journal_links": "Liens d'op\u00e9ration",

View File

@@ -69,6 +69,9 @@
"flash_error": "Hiba!",
"store_transaction": "Store transaction",
"flash_success": "Siker!",
"create_another": "A t\u00e1rol\u00e1s ut\u00e1n t\u00e9rjen vissza ide \u00faj l\u00e9trehoz\u00e1s\u00e1hoz.",
"reset_after": "\u0170rlap t\u00f6rl\u00e9se a bek\u00fcld\u00e9s ut\u00e1n",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> mentve.",
"other_budgets": "Custom timed budgets",
"journal_links": "Tranzakci\u00f3 \u00f6sszekapcsol\u00e1sok",

View File

@@ -69,6 +69,9 @@
"flash_error": "Errore!",
"store_transaction": "Salva transazione",
"flash_success": "Successo!",
"create_another": "Dopo il salvataggio, torna qui per crearne un'altra.",
"reset_after": "Resetta il modulo dopo l'invio",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "La <a href=\"transactions\/show\/{ID}\">transazione #{ID} (\"{title}\")<\/a> \u00e8 stata salvata.",
"other_budgets": "Budget a periodi personalizzati",
"journal_links": "Collegamenti della transazione",

View File

@@ -69,6 +69,9 @@
"flash_error": "Feil!",
"store_transaction": "Store transaction",
"flash_success": "Suksess!",
"create_another": "After storing, return here to create another one.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "Transaksjonskoblinger",

View File

@@ -69,6 +69,9 @@
"flash_error": "Fout!",
"store_transaction": "Store transaction",
"flash_success": "Gelukt!",
"create_another": "Terug naar deze pagina voor een nieuwe transactie.",
"reset_after": "Reset formulier na opslaan",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transactie #{ID} (\"{title}\")<\/a> is opgeslagen.",
"other_budgets": "Aangepaste budgetten",
"journal_links": "Transactiekoppelingen",

View File

@@ -69,6 +69,9 @@
"flash_error": "B\u0142\u0105d!",
"store_transaction": "Zapisz transakcj\u0119",
"flash_success": "Sukces!",
"create_another": "Po zapisaniu wr\u00f3\u0107 tutaj, aby utworzy\u0107 kolejny.",
"reset_after": "Wyczy\u015b\u0107 formularz po zapisaniu",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcja #{ID} (\"{title}\")<\/a> zosta\u0142a zapisana.",
"other_budgets": "Bud\u017cety niestandardowe",
"journal_links": "Powi\u0105zane transakcje",

View File

@@ -69,6 +69,9 @@
"flash_error": "Erro!",
"store_transaction": "Salvar transa\u00e7\u00e3o",
"flash_success": "Sucesso!",
"create_another": "Depois de armazenar, retorne aqui para criar outro.",
"reset_after": "Resetar o formul\u00e1rio ap\u00f3s o envio",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi salva.",
"other_budgets": "Custom timed budgets",
"journal_links": "Transa\u00e7\u00f5es ligadas",

View File

@@ -69,6 +69,9 @@
"flash_error": "Erro!",
"store_transaction": "Guardar transa\u00e7\u00e3o",
"flash_success": "Sucesso!",
"create_another": "Depois de guardar, voltar aqui para criar outra.",
"reset_after": "Repor o formul\u00e1rio ap\u00f3s o envio",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi guardada.",
"other_budgets": "Or\u00e7amentos de tempo personalizado",
"journal_links": "Liga\u00e7\u00f5es de transac\u00e7\u00e3o",

View File

@@ -69,6 +69,9 @@
"flash_error": "Eroare!",
"store_transaction": "Store transaction",
"flash_success": "Succes!",
"create_another": "Dup\u0103 stocare, reveni\u021bi aici pentru a crea alta.",
"reset_after": "Reseta\u021bi formularul dup\u0103 trimitere",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Tranzac\u021bia #{ID} (\"{title}\")<\/a> a fost stocat\u0103.",
"other_budgets": "Custom timed budgets",
"journal_links": "Link-uri de tranzac\u021bii",

View File

@@ -69,6 +69,9 @@
"flash_error": "\u041e\u0448\u0438\u0431\u043a\u0430!",
"store_transaction": "Store transaction",
"flash_success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!",
"create_another": "\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0441\u044e\u0434\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.",
"reset_after": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID} (\"{title}\")<\/a> \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",
"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",

View File

@@ -69,6 +69,9 @@
"flash_error": "Chyba!",
"store_transaction": "Store transaction",
"flash_success": "Hotovo!",
"create_another": "Po ulo\u017een\u00ed sa vr\u00e1ti\u0165 sp\u00e4\u0165 sem a vytvori\u0165 \u010fal\u0161\u00ed.",
"reset_after": "Po odoslan\u00ed vynulova\u0165 formul\u00e1r",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcia #{ID} (\"{title}\")<\/a> bola ulo\u017een\u00e1.",
"other_budgets": "\u0160pecifick\u00e9 \u010dasovan\u00e9 rozpo\u010dty",
"journal_links": "Prepojenia transakcie",

View File

@@ -69,6 +69,9 @@
"flash_error": "Fel!",
"store_transaction": "Store transaction",
"flash_success": "Slutf\u00f6rd!",
"create_another": "Efter sparat, \u00e5terkom hit f\u00f6r att skapa ytterligare en.",
"reset_after": "\u00c5terst\u00e4ll formul\u00e4r efter inskickat",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaktion #{ID} (\"{title}\")<\/a> sparades.",
"other_budgets": "Anpassade tidsinst\u00e4llda budgetar",
"journal_links": "Transaktionsl\u00e4nkar",

View File

@@ -69,6 +69,9 @@
"flash_error": "L\u1ed7i!",
"store_transaction": "Store transaction",
"flash_success": "Th\u00e0nh c\u00f4ng!",
"create_another": "Sau khi l\u01b0u tr\u1eef, quay tr\u1edf l\u1ea1i \u0111\u00e2y \u0111\u1ec3 t\u1ea1o m\u1ed9t c\u00e1i kh\u00e1c.",
"reset_after": "\u0110\u1eb7t l\u1ea1i m\u1eabu sau khi g\u1eedi",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Giao d\u1ecbch #{ID} (\"{title}\")<\/a> \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef.",
"other_budgets": "Custom timed budgets",
"journal_links": "Li\u00ean k\u1ebft giao d\u1ecbch",

View File

@@ -69,6 +69,9 @@
"flash_error": "\u9519\u8bef\uff01",
"store_transaction": "Store transaction",
"flash_success": "\u6210\u529f\uff01",
"create_another": "\u4fdd\u5b58\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u521b\u5efa\u53e6\u4e00\u7b14\u8bb0\u5f55\u3002",
"reset_after": "\u63d0\u4ea4\u540e\u91cd\u7f6e\u8868\u5355",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "\u4ea4\u6613\u8fde\u7ed3",

View File

@@ -69,6 +69,9 @@
"flash_error": "\u932f\u8aa4\uff01",
"store_transaction": "Store transaction",
"flash_success": "\u6210\u529f\uff01",
"create_another": "After storing, return here to create another one.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"other_budgets": "Custom timed budgets",
"journal_links": "\u4ea4\u6613\u9023\u7d50",

View File

@@ -36,9 +36,9 @@
source-map "^0.5.0"
"@babel/generator@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.13.tgz#5f6ebe6c85db99886db2d7b044409196f872a503"
integrity sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==
version "7.12.15"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f"
integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==
dependencies:
"@babel/types" "^7.12.13"
jsesc "^2.5.1"
@@ -238,9 +238,9 @@
js-tokens "^4.0.0"
"@babel/parser@^7.12.13":
version "7.12.14"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.14.tgz#4adb7c5eef1d437ef965ad1569cd826db8c11dc9"
integrity sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==
version "7.12.15"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf"
integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==
"@babel/plugin-proposal-async-generator-functions@^7.12.13":
version "7.12.13"
@@ -631,9 +631,9 @@
"@babel/helper-plugin-utils" "^7.12.13"
"@babel/plugin-transform-runtime@^7.2.0":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.13.tgz#93a47630c80dab152a2b71011d1e1fd37b31b8e1"
integrity sha512-ho1CV2lm8qn2AxD3JdvPgtLVHCYLDaOszlf0gosdHcJAIfgNizag76WI+FoibrvfT+h117fgf8h+wgvo4O2qbA==
version "7.12.15"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.15.tgz#4337b2507288007c2b197059301aa0af8d90c085"
integrity sha512-OwptMSRnRWJo+tJ9v9wgAf72ydXWfYSXWhnQjZing8nGZSDFqU1MBleKM3+DriKkcbv7RagA8gVeB0A1PNlNow==
dependencies:
"@babel/helper-module-imports" "^7.12.13"
"@babel/helper-plugin-utils" "^7.12.13"
@@ -869,9 +869,9 @@
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/node@*":
version "14.14.22"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18"
integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==
version "14.14.25"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.25.tgz#15967a7b577ff81383f9b888aa6705d43fbbae93"
integrity sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==
"@types/q@^1.5.1":
version "1.5.4"
@@ -2626,9 +2626,9 @@ ejs@^2.6.1:
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
electron-to-chromium@^1.3.649:
version "1.3.652"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.652.tgz#9465d884d609acffd131ba71096de7bfabd63670"
integrity sha512-85J5D0Ksxjq2MIHfgwOURRej72UMlexbaa7t+oKTJan3Pa/RBE8vJ4/JzwaQjLCElPvd0XeLWi7+xYTVrq96aA==
version "1.3.654"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.654.tgz#f1b82d59bdeafa65af75794356df54f92b41c4de"
integrity sha512-Zy2gc/c8KYFg2GkNr7Ruzh5tPEZpFm7EyXqZTFasm1YRDJtpyBRGaOuM0H3t6SuIP53qX4kNmtO9t0WjhBjE9A==
elliptic@^6.5.3:
version "6.5.4"

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

File diff suppressed because one or more lines are too long

View File

@@ -1019,6 +1019,7 @@ return [
'list_inactive_rule' => 'inactive rule',
'bill_edit_rules' => 'Firefly III will attempt to edit the rule related to this bill as well. If you\'ve edited this rule yourself however, Firefly III won\'t change anything.|Firefly III will attempt to edit the :count rules related to this bill as well. If you\'ve edited these rules yourself however, Firefly III won\'t change anything.',
'bill_expected_date' => 'Expected :date',
'bill_paid_on' => 'Paid on {date}',
// accounts:
'inactive_account_link' => 'You have :count inactive (archived) account, which you can view on this separate page.|You have :count inactive (archived) accounts, which you can view on this separate page.',

View File

@@ -41,6 +41,8 @@
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<!-- flashes -->
{% include('v2.partials.layout.flashes') %}
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark">{% if mainTitleIcon|default(false) %}<i class="fa fas {{ mainTitleIcon }}"></i>{% endif %}

View File

@@ -0,0 +1,21 @@
{# SUCCESS MESSAGE (ALWAYS SINGULAR) #}
{% if session_has('success') %}
<div class="row">
<div class="col">
<!-- alert from URL -->
<div class="alert alert-success alert-dismissible" v-if="successMessage.length > 0">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-thumbs-up"></i> {{ 'flash_success'|_ }}</h5>
<span>
{% if session_has('success_uri') %}
<a href="{{ session('success_uri') }}">
{% endif %}
{{ session('success') }}
{% if session_has('success_uri') %}
</a>
{% endif %}
</span>
</div>
</div>
</div>
{% endif %}