First edit that works locally. Rebuilt CSS.

This commit is contained in:
James Cole
2021-03-03 07:03:44 +01:00
parent df9c9ce044
commit 4f76ea560d
46 changed files with 1586 additions and 277 deletions

View File

@@ -10,6 +10,7 @@
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"admin-lte": "^3.0",
"axios": "^0.21",
"cross-env": "^7.0",
"laravel-mix": "^5.0.9",

59
frontend/src/app.scss vendored
View File

@@ -25,10 +25,59 @@
// iCheck
@import '~icheck-bootstrap/icheck-bootstrap.css';
// AdminLTE
@import 'dist/css/adminlte.css';
//@import 'dist/css/adminlte.css';
//@import 'adminlte/scss/adminlte.css'
//@import '~admin-lte/build/scss/AdminLTE';
// ADMIN LTE
@import '~bootstrap/scss/functions';
@import '~admin-lte/build/scss/bootstrap-variables';
@import '~bootstrap/scss/bootstrap';
// Variables and Mixins
// ---------------------------------------------------
@import '~admin-lte/build/scss/variables';
// Firefly III colors (?)
@import 'scss/variables';
@import '~admin-lte/build/scss/mixins';
@import '~admin-lte/build/scss/parts/core';
// admin LTE components
@import '~admin-lte/build/scss/forms';
@import '~admin-lte/build/scss/progress-bars';
@import '~admin-lte/build/scss/cards';
@import '~admin-lte/build/scss/modals';
//@import '../toasts';
@import '~admin-lte/build/scss/buttons';
//@import '../callout';
@import '~admin-lte/build/scss/alerts';
@import '~admin-lte/build/scss/table';
//@import '../carousel';
// admin LTE extra components
//@import '../small-box';
@import '~admin-lte/build/scss/info-box';
//@import '../timeline';
//@import '../products';
//@import '../direct-chat';
//@import '../users-list';
//@import '../social-widgets';
// admin LTE pages (unused)
// @import 'parts/pages';
// admin LTE plugins (unused)
// @import 'parts/plugins';
// admin LTE misc
@import '~admin-lte/build/scss/miscellaneous';
@import '~admin-lte/build/scss/print';
@import '~admin-lte/build/scss/text';
@import '~admin-lte/build/scss/elevation';
@import '~admin-lte/build/scss/colors';
// Bootstrap
// Already imported by AdminLTE
//@import '~bootstrap/scss/bootstrap';

View File

@@ -67,7 +67,7 @@
</div>
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12">
<!-- buttons -->
<div class="card">
<div class="card card-primary">
<div class="card-body">
<div class="row">
<div class="col">

View File

@@ -144,6 +144,10 @@ export default {
// which custom fields to show TODO
customFields: {},
// group ID + title once submitted:
returnedGroupId: 0,
returnedGroupTitle: '',
// date and time of the transaction, TODO
date: new Date,
time: new Date,
@@ -527,7 +531,7 @@ export default {
if (shouldSubmit) {
this.submitUpdate(submission);
}
console.log(submission);
//console.log(submission);
},
compareLinks: function (array) {
let compare = [];
@@ -550,16 +554,130 @@ export default {
return JSON.stringify(compare);
},
submitUpdate: function (submission) {
console.log('submitUpdate');
const url = './api/v1/transactions/' + this.groupId;
axios.put(url, submission)
.then(response => {
console.log('OK!');
// console.log('Response is OK!');
// report the transaction is submitted.
this.submittedTransaction = true;
// // submit links and attachments (can only be done when the transaction is created)
// this.submitTransactionLinks(data, response);
// this.submitAttachments(data, response);
//
// // meanwhile, store the ID and the title in some easy to access variables.
// this.returnedGroupId = parseInt(response.data.data.id);
// this.returnedGroupTitle = null === response.data.data.attributes.group_title ? response.data.data.attributes.transactions[0].description : response.data.data.attributes.group_title;
}
).catch(error => {
console.log('error :(');
console.log(error);
});
}
)
.catch(error => {
console.log('error :(');
console.log(error.response.data);
// oh noes Firefly III has something to bitch about.
this.enableSubmit = true;
// report the transaction is submitted.
this.submittedTransaction = true;
// // also report attachments and links are submitted:
this.submittedAttachments = true;
this.submittedLinks = true;
//
// but report an error because error:
this.inError = true;
this.parseErrors(error.response.data);
}
);
},
parseErrors: function (errors) {
for (let i in this.transactions) {
if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\d*$/.test(i) && i <= 4294967294) {
this.resetErrors({index: i});
}
}
this.successMessage = '';
this.errorMessage = this.$t('firefly.errors_submission');
if (typeof errors.errors === 'undefined') {
this.successMessage = '';
this.errorMessage = errors.message;
}
let payload;
let transactionIndex;
let fieldName;
// fairly basic way of exploding the error array.
for (const key in errors.errors) {
// console.log('Error index: "' + key + '"');
if (errors.errors.hasOwnProperty(key)) {
if (key === 'group_title') {
this.groupTitleErrors = errors.errors[key];
continue;
}
if (key !== 'group_title') {
// lol dumbest way to explode "transactions.0.something" ever.
transactionIndex = parseInt(key.split('.')[1]);
fieldName = key.split('.')[2];
// set error in this object thing.
// console.log('The errors in key "' + key + '" are');
// console.log(errors.errors[key]);
switch (fieldName) {
case 'amount':
case 'description':
case 'date':
case 'tags':
payload = {index: transactionIndex, field: fieldName, errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'budget_id':
payload = {index: transactionIndex, field: 'budget', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'bill_id':
payload = {index: transactionIndex, field: 'bill', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'piggy_bank_id':
payload = {index: transactionIndex, field: 'piggy_bank', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'category_name':
payload = {index: transactionIndex, field: 'category', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'source_name':
case 'source_id':
payload = {index: transactionIndex, field: 'source', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'destination_name':
case 'destination_id':
payload = {index: transactionIndex, field: 'destination', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
case 'foreign_amount':
case 'foreign_currency':
payload = {index: transactionIndex, field: 'foreign_amount', errors: errors.errors[key]};
this.setTransactionError(payload);
break;
}
}
// unique some things
if (typeof this.transactions[transactionIndex] !== 'undefined') {
//this.transactions[transactionIndex].errors.source = Array.from(new Set(this.transactions[transactionIndex].errors.source));
//this.transactions[transactionIndex].errors.destination = Array.from(new Set(this.transactions[transactionIndex].errors.destination));
}
}
}
},
setTransactionError: function (payload) {
this.transactions[payload.index].errors[payload.field] = payload.errors;
},
resetErrors(payload) {
this.transactions[payload.index].errors = lodashClonedeep(getDefaultErrors());
},
}
}
</script>

View File

@@ -58,7 +58,6 @@ export default {
descriptions: [],
initialSet: [],
description: this.value,
sendEvent: true
}
},
created() {
@@ -87,14 +86,10 @@ export default {
},
watch: {
value: function (value) {
this.sendEvent = false;
this.description = value;
},
description: function (value) {
if (true === this.sendEvent) {
this.$emit('set-field', {field: 'description', index: this.index, value: value});
}
this.sendEvent = true;
this.$emit('set-field', {field: 'description', index: this.index, value: value});
}
},
}

View File

@@ -73,6 +73,8 @@
"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.",
"update_transaction": "\u041e\u0431\u043d\u043e\u0432\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u0442\u0430",
"after_update_create_another": "\u0421\u043b\u0435\u0434 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0441\u0435 \u0432\u044a\u0440\u043d\u0435\u0442\u0435 \u0442\u0443\u043a, \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435 \u0441 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0442\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}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "\u00dasp\u011b\u0161n\u011b dokon\u010deno!",
"create_another": "After storing, return here to create another one.",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Buchung speichern",
"flash_success": "Geschafft!",
"create_another": "Nach dem Speichern hierher zur\u00fcckkehren, um ein weiteres zu erstellen.",
"update_transaction": "Buchung aktualisieren",
"after_update_create_another": "Nach dem Aktualisieren hierher zur\u00fcckkehren, um weiter zu bearbeiten.",
"reset_after": "Formular nach der \u00dcbermittlung zur\u00fccksetzen",
"bill_paid_on": "Bezahlt am {date}",
"first_split_decides": "Die erste Aufteilung bestimmt den Wert dieses Feldes",

View File

@@ -73,6 +73,8 @@
"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.",
"update_transaction": "\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2",
"after_update_create_another": "\u039c\u03b5\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7, \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\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}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Success!",
"create_another": "After storing, return here to create another one.",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Success!",
"create_another": "After storing, return here to create another one.",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Guardar transacci\u00f3n",
"flash_success": "\u00a1Operaci\u00f3n correcta!",
"create_another": "Despu\u00e9s de guardar, vuelve aqu\u00ed para crear otro.",
"update_transaction": "Actualizar transacci\u00f3n",
"after_update_create_another": "Despu\u00e9s de actualizar, vuelve aqu\u00ed para continuar editando.",
"reset_after": "Restablecer formulario despu\u00e9s del env\u00edo",
"bill_paid_on": "Pagado el {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Valmista tuli!",
"create_another": "Tallennuksen j\u00e4lkeen, palaa takaisin luomaan uusi tapahtuma.",
"update_transaction": "P\u00e4ivit\u00e4 tapahtuma",
"after_update_create_another": "P\u00e4ivityksen j\u00e4lkeen, palaa takaisin jatkamaan muokkausta.",
"reset_after": "Tyhjenn\u00e4 lomake l\u00e4hetyksen j\u00e4lkeen",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Enregistrer l'op\u00e9ration",
"flash_success": "Super !",
"create_another": "Apr\u00e8s enregistrement, revenir ici pour en cr\u00e9er un nouveau.",
"update_transaction": "Mettre \u00e0 jour l'op\u00e9ration",
"after_update_create_another": "Apr\u00e8s la mise \u00e0 jour, revenir ici pour continuer l'\u00e9dition.",
"reset_after": "R\u00e9initialiser le formulaire apr\u00e8s soumission",
"bill_paid_on": "Pay\u00e9 le {date}",
"first_split_decides": "La premi\u00e8re ventilation d\u00e9termine la valeur de ce champ",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Siker!",
"create_another": "A t\u00e1rol\u00e1s ut\u00e1n t\u00e9rjen vissza ide \u00faj l\u00e9trehoz\u00e1s\u00e1hoz.",
"update_transaction": "Tranzakci\u00f3 friss\u00edt\u00e9se",
"after_update_create_another": "A friss\u00edt\u00e9s ut\u00e1n t\u00e9rjen vissza ide a szerkeszt\u00e9s folytat\u00e1s\u00e1hoz.",
"reset_after": "\u0170rlap t\u00f6rl\u00e9se a bek\u00fcld\u00e9s ut\u00e1n",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Salva transazione",
"flash_success": "Successo!",
"create_another": "Dopo il salvataggio, torna qui per crearne un'altra.",
"update_transaction": "Aggiorna transazione",
"after_update_create_another": "Dopo l'aggiornamento, torna qui per continuare la modifica.",
"reset_after": "Resetta il modulo dopo l'invio",
"bill_paid_on": "Pagata il {date}",
"first_split_decides": "La prima suddivisione determina il valore di questo campo",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Suksess!",
"create_another": "After storing, return here to create another one.",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Transactie opslaan",
"flash_success": "Gelukt!",
"create_another": "Terug naar deze pagina voor een nieuwe transactie.",
"update_transaction": "Update transactie",
"after_update_create_another": "Na het opslaan terug om door te gaan met wijzigen.",
"reset_after": "Reset formulier na opslaan",
"bill_paid_on": "Betaald op {date}",
"first_split_decides": "De eerste split bepaalt wat hier staat",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Zapisz transakcj\u0119",
"flash_success": "Sukces!",
"create_another": "Po zapisaniu wr\u00f3\u0107 tutaj, aby utworzy\u0107 kolejny.",
"update_transaction": "Zaktualizuj transakcj\u0119",
"after_update_create_another": "Po aktualizacji wr\u00f3\u0107 tutaj, aby kontynuowa\u0107 edycj\u0119.",
"reset_after": "Wyczy\u015b\u0107 formularz po zapisaniu",
"bill_paid_on": "Zap\u0142acone {date}",
"first_split_decides": "Pierwszy podzia\u0142 okre\u015bla warto\u015b\u0107 tego pola",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Salvar transa\u00e7\u00e3o",
"flash_success": "Sucesso!",
"create_another": "Depois de armazenar, retorne aqui para criar outro.",
"update_transaction": "Atualizar transa\u00e7\u00e3o",
"after_update_create_another": "Depois de atualizar, retorne aqui para continuar editando.",
"reset_after": "Resetar o formul\u00e1rio ap\u00f3s o envio",
"bill_paid_on": "Pago em {date}",
"first_split_decides": "A primeira divis\u00e3o determina o valor deste campo",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Guardar transa\u00e7\u00e3o",
"flash_success": "Sucesso!",
"create_another": "Depois de guardar, voltar aqui para criar outra.",
"update_transaction": "Actualizar transac\u00e7\u00e3o",
"after_update_create_another": "Ap\u00f3s a atualiza\u00e7\u00e3o, regresse aqui para continuar a editar.",
"reset_after": "Repor o formul\u00e1rio ap\u00f3s o envio",
"bill_paid_on": "Pago a {date}",
"first_split_decides": "A primeira divis\u00e3o determina o valor deste campo",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Succes!",
"create_another": "Dup\u0103 stocare, reveni\u021bi aici pentru a crea alta.",
"update_transaction": "Actualiza\u021bi tranzac\u021bia",
"after_update_create_another": "Dup\u0103 actualizare, reveni\u021bi aici pentru a continua editarea.",
"reset_after": "Reseta\u021bi formularul dup\u0103 trimitere",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e",
"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.",
"update_transaction": "\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e",
"after_update_create_another": "\u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u0441\u044e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.",
"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": "\u041e\u043f\u043b\u0430\u0447\u0435\u043d\u043e {date}",
"first_split_decides": "\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Ulo\u017ei\u0165 transakciu",
"flash_success": "Hotovo!",
"create_another": "Po ulo\u017een\u00ed sa vr\u00e1ti\u0165 sp\u00e4\u0165 sem a vytvori\u0165 \u010fal\u0161\u00ed.",
"update_transaction": "Upravi\u0165 transakciu",
"after_update_create_another": "Po aktualiz\u00e1cii sa vr\u00e1ti\u0165 sp\u00e4\u0165 a pokra\u010dova\u0165 v \u00faprav\u00e1ch.",
"reset_after": "Po odoslan\u00ed vynulova\u0165 formul\u00e1r",
"bill_paid_on": "Uhraden\u00e9 {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "Slutf\u00f6rd!",
"create_another": "Efter sparat, \u00e5terkom hit f\u00f6r att skapa ytterligare en.",
"update_transaction": "Uppdatera transaktion",
"after_update_create_another": "Efter uppdaterat, \u00e5terkom hit f\u00f6r att forts\u00e4tta redigera.",
"reset_after": "\u00c5terst\u00e4ll formul\u00e4r efter inskickat",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"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.",
"update_transaction": "C\u1eadp nh\u1eadt giao d\u1ecbch",
"after_update_create_another": "Sau khi c\u1eadp nh\u1eadt, quay l\u1ea1i \u0111\u00e2y \u0111\u1ec3 ti\u1ebfp t\u1ee5c ch\u1ec9nh s\u1eeda.",
"reset_after": "\u0110\u1eb7t l\u1ea1i m\u1eabu sau khi g\u1eedi",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

View File

@@ -73,6 +73,8 @@
"store_transaction": "\u4fdd\u5b58\u4ea4\u6613",
"flash_success": "\u6210\u529f\uff01",
"create_another": "\u4fdd\u5b58\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u4ee5\u521b\u5efa\u65b0\u8bb0\u5f55",
"update_transaction": "\u66f4\u65b0\u4ea4\u6613",
"after_update_create_another": "\u66f4\u65b0\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u7ee7\u7eed\u7f16\u8f91\u3002",
"reset_after": "\u63d0\u4ea4\u540e\u91cd\u7f6e\u8868\u5355",
"bill_paid_on": "\u652f\u4ed8\u4e8e {date}",
"first_split_decides": "\u9996\u7b14\u62c6\u5206\u51b3\u5b9a\u6b64\u5b57\u6bb5\u7684\u503c",

View File

@@ -73,6 +73,8 @@
"store_transaction": "Store transaction",
"flash_success": "\u6210\u529f\uff01",
"create_another": "After storing, return here to create another one.",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"reset_after": "Reset form after submission",
"bill_paid_on": "Paid on {date}",
"first_split_decides": "The first split determines the value of this field",

19
frontend/src/scss/_variables.scss vendored Normal file
View File

@@ -0,0 +1,19 @@
/*!
* _variables.scss
* 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/>.
*/

File diff suppressed because it is too large Load Diff