apply linter
This commit is contained in:
parent
f9fb6e5786
commit
3ca85251f4
26 changed files with 61 additions and 307 deletions
|
|
@ -20,15 +20,7 @@ import { BNavItem } from 'bootstrap-vue-next'
|
|||
</a>
|
||||
<ul class="nav nav-pills flex-column mb-auto">
|
||||
<RouterLink
|
||||
v-for="url in [
|
||||
'/',
|
||||
'/transactions',
|
||||
'/categories',
|
||||
'/bank_accounts',
|
||||
'/saving_accounts',
|
||||
'/files',
|
||||
'/users',
|
||||
]"
|
||||
v-for="url in ['/', '/transactions', '/categories', '/bank_accounts', '/saving_accounts', '/files', '/users']"
|
||||
v-slot="{ href, route, isActive }"
|
||||
:key="url"
|
||||
:to="url"
|
||||
|
|
|
|||
|
|
@ -64,8 +64,7 @@ const compute = (transactions, dateFrom, dateTo, order) => {
|
|||
|
||||
const monthsValues = Object.values(data[i].months)
|
||||
|
||||
data[i].monthAverage =
|
||||
monthsValues.reduce((a, b) => a + b, 0) / monthsValues.length
|
||||
data[i].monthAverage = monthsValues.reduce((a, b) => a + b, 0) / monthsValues.length
|
||||
}
|
||||
|
||||
data = Object.values(data).sort((a, b) => {
|
||||
|
|
|
|||
|
|
@ -13,13 +13,7 @@ const getDate = (value) => {
|
|||
return `${month}/${year}`
|
||||
}
|
||||
|
||||
const computeBar = (
|
||||
transactions,
|
||||
stacked,
|
||||
dateFrom,
|
||||
dateTo,
|
||||
selectedCategories,
|
||||
) => {
|
||||
const computeBar = (transactions, stacked, dateFrom, dateTo, selectedCategories) => {
|
||||
const indexes = {}
|
||||
const labels = []
|
||||
const bars = {}
|
||||
|
|
@ -78,8 +72,7 @@ const computeBar = (
|
|||
|
||||
let date = getDate(transaction.date)
|
||||
|
||||
bars[category.label].data[indexes[date]] +=
|
||||
transaction.debit - transaction.credit
|
||||
bars[category.label].data[indexes[date]] += transaction.debit - transaction.credit
|
||||
})
|
||||
|
||||
labels.forEach((label, key) => {
|
||||
|
|
@ -110,12 +103,7 @@ const computeBar = (
|
|||
}
|
||||
}
|
||||
|
||||
const computeDoughnut = (
|
||||
transactions,
|
||||
dateFrom,
|
||||
dateTo,
|
||||
selectedCategories,
|
||||
) => {
|
||||
const computeDoughnut = (transactions, dateFrom, dateTo, selectedCategories) => {
|
||||
const indexes = {}
|
||||
const labels = []
|
||||
const data = []
|
||||
|
|
|
|||
|
|
@ -24,10 +24,7 @@ const compute = (transactions, cats, dateFrom, dateTo) => {
|
|||
})
|
||||
|
||||
transactions.forEach((value) => {
|
||||
if (
|
||||
value.category === null ||
|
||||
!Object.hasOwn(categories, value.category.id)
|
||||
) {
|
||||
if (value.category === null || !Object.hasOwn(categories, value.category.id)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,7 @@
|
|||
</div>
|
||||
<div class="col-12 col-md-7 mb-1">
|
||||
<BFormInput
|
||||
v-if="
|
||||
item.type == 'string' && needValue(dataValue[key].comparator)
|
||||
"
|
||||
v-if="item.type == 'string' && needValue(dataValue[key].comparator)"
|
||||
v-model="dataValue[key].value"
|
||||
@change="changed"
|
||||
/>
|
||||
|
|
@ -33,18 +31,14 @@
|
|||
/>
|
||||
|
||||
<BFormInput
|
||||
v-if="
|
||||
item.type == 'number' && needValue(dataValue[key].comparator)
|
||||
"
|
||||
v-if="item.type == 'number' && needValue(dataValue[key].comparator)"
|
||||
v-model="dataValue[key].value"
|
||||
type="number"
|
||||
@change="changed"
|
||||
/>
|
||||
|
||||
<BFormSelect
|
||||
v-if="
|
||||
item.type == 'select' && needValue(dataValue[key].comparator)
|
||||
"
|
||||
v-if="item.type == 'select' && needValue(dataValue[key].comparator)"
|
||||
v-model="dataValue[key].value"
|
||||
:options="item.options"
|
||||
@change="changed"
|
||||
|
|
@ -87,12 +81,7 @@
|
|||
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import {
|
||||
BFormGroup,
|
||||
BFormInput,
|
||||
BFormSelect,
|
||||
BButton,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BFormGroup, BFormInput, BFormSelect, BButton } from 'bootstrap-vue-next'
|
||||
|
||||
const emit = defineEmits(['update'])
|
||||
const props = defineProps({
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ defineProps({
|
|||
title: {
|
||||
type: [String, null],
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -35,9 +35,7 @@
|
|||
v-if="field.widget === 'rules'"
|
||||
id="rules"
|
||||
>
|
||||
<div
|
||||
v-if="form.data[field.key] !== null && form.data[field.key].length > 0"
|
||||
>
|
||||
<div v-if="form.data[field.key] !== null && form.data[field.key].length > 0">
|
||||
<div
|
||||
v-for="(rule, key) in form.data[field.key]"
|
||||
:key="key"
|
||||
|
|
@ -116,9 +114,7 @@
|
|||
</BFormGroup>
|
||||
<BButton
|
||||
variant="none"
|
||||
@click="
|
||||
form.data[field.key] = doRemoveRule(form.data[field.key], key)
|
||||
"
|
||||
@click="form.data[field.key] = doRemoveRule(form.data[field.key], key)"
|
||||
>
|
||||
<i class="fa fa-trash"></i>
|
||||
</BButton>
|
||||
|
|
@ -130,13 +126,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BFormGroup,
|
||||
BFormSelect,
|
||||
BFormInput,
|
||||
BFormFile,
|
||||
BButton,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BFormGroup, BFormSelect, BFormInput, BFormFile, BButton } from 'bootstrap-vue-next'
|
||||
|
||||
defineProps({
|
||||
key: {
|
||||
|
|
|
|||
|
|
@ -19,13 +19,7 @@
|
|||
<BTh
|
||||
width="170px"
|
||||
class="text-end"
|
||||
v-html="
|
||||
renderLabelWithSum(
|
||||
'Total',
|
||||
computed(data, dateFrom, dateTo, order),
|
||||
'sum',
|
||||
)
|
||||
"
|
||||
v-html="renderLabelWithSum('Total', computed(data, dateFrom, dateTo, order), 'sum')"
|
||||
></BTh>
|
||||
<BTh
|
||||
width="250px"
|
||||
|
|
@ -75,21 +69,9 @@
|
|||
<script setup>
|
||||
import { ref, watch } from 'vue'
|
||||
import { getStorage, saveStorage } from '../../lib/storage'
|
||||
import {
|
||||
BFormSelect,
|
||||
BTableSimple,
|
||||
BThead,
|
||||
BTbody,
|
||||
BTr,
|
||||
BTh,
|
||||
BTd,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BFormSelect, BTableSimple, BThead, BTbody, BTr, BTh, BTd } from 'bootstrap-vue-next'
|
||||
import { compute } from '../../chart/debitAverage'
|
||||
import {
|
||||
renderLabelWithSum,
|
||||
renderCategory,
|
||||
renderEuro,
|
||||
} from '../../lib/renderers'
|
||||
import { renderLabelWithSum, renderCategory, renderEuro } from '../../lib/renderers'
|
||||
|
||||
const order = ref(getStorage('dashboard:debitAverage:order', 'sum'))
|
||||
const orders = [
|
||||
|
|
|
|||
|
|
@ -66,12 +66,7 @@
|
|||
import { toRefs } from 'vue'
|
||||
import { BFormInput } from 'bootstrap-vue-next'
|
||||
|
||||
const emit = defineEmits([
|
||||
'update:account',
|
||||
'update:dateFrom',
|
||||
'update:dateTo',
|
||||
'update',
|
||||
])
|
||||
const emit = defineEmits(['update:account', 'update:dateFrom', 'update:dateTo', 'update'])
|
||||
|
||||
const props = defineProps({
|
||||
account: {
|
||||
|
|
|
|||
|
|
@ -52,9 +52,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<Bar
|
||||
:data="
|
||||
computeBar(data, isStacked, dateFrom, dateTo, selectedCategories)
|
||||
"
|
||||
:data="computeBar(data, isStacked, dateFrom, dateTo, selectedCategories)"
|
||||
:options="stackOptions({ plugins: { legend: { display: false } } })"
|
||||
:style="chartStyle(380)"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -39,13 +39,9 @@
|
|||
class="text-start"
|
||||
v-html="renderCategory(row.category)"
|
||||
></BTd>
|
||||
<BTd class="text-end">{{
|
||||
renderEuro(row.category.month_threshold)
|
||||
}}</BTd>
|
||||
<BTd class="text-end">{{ renderEuro(row.category.month_threshold) }}</BTd>
|
||||
<BTd class="text-end">{{ renderEuro(row.amount) }}</BTd>
|
||||
<BTd class="text-end">{{
|
||||
renderEuro(row.amount - row.category.month_threshold)
|
||||
}}</BTd>
|
||||
<BTd class="text-end">{{ renderEuro(row.amount - row.category.month_threshold) }}</BTd>
|
||||
</BTr>
|
||||
</template>
|
||||
</BTbody>
|
||||
|
|
@ -67,6 +63,6 @@ defineProps({
|
|||
data: {
|
||||
type: Array,
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ defineProps({
|
|||
data: {
|
||||
type: Array,
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const options = () => {
|
||||
|
|
|
|||
|
|
@ -62,11 +62,4 @@ const renderLabelWithSum = (label, rows, key) => {
|
|||
return `${label}<br><small class="fw-normal">${renderEuro(sum)}</small>`
|
||||
}
|
||||
|
||||
export {
|
||||
renderDate,
|
||||
renderDateTime,
|
||||
renderCategory,
|
||||
renderBankAccount,
|
||||
renderEuro,
|
||||
renderLabelWithSum,
|
||||
}
|
||||
export { renderDate, renderDateTime, renderCategory, renderBankAccount, renderEuro, renderLabelWithSum }
|
||||
|
|
|
|||
|
|
@ -3,30 +3,9 @@ import { createApp } from 'vue'
|
|||
import App from './App.vue'
|
||||
import router from './router'
|
||||
import { createBootstrap } from 'bootstrap-vue-next'
|
||||
import {
|
||||
Chart as ChartJS,
|
||||
Title,
|
||||
Tooltip,
|
||||
Legend,
|
||||
BarElement,
|
||||
CategoryScale,
|
||||
LinearScale,
|
||||
ArcElement,
|
||||
LineElement,
|
||||
PointElement,
|
||||
} from 'chart.js'
|
||||
import { Chart as ChartJS, Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale, ArcElement, LineElement, PointElement } from 'chart.js'
|
||||
|
||||
ChartJS.register(
|
||||
Title,
|
||||
Tooltip,
|
||||
Legend,
|
||||
BarElement,
|
||||
CategoryScale,
|
||||
LinearScale,
|
||||
ArcElement,
|
||||
LineElement,
|
||||
PointElement,
|
||||
)
|
||||
ChartJS.register(Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale, ArcElement, LineElement, PointElement)
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,6 @@
|
|||
<template>
|
||||
<div class="p-3">
|
||||
<div
|
||||
v-if="
|
||||
!isLoading &&
|
||||
data !== null &&
|
||||
accounts.length > 0 &&
|
||||
categories.length > 0
|
||||
"
|
||||
>
|
||||
<div v-if="!isLoading && data !== null && accounts.length > 0 && categories.length > 0">
|
||||
<div class="float-end">
|
||||
<BButton
|
||||
variant="none"
|
||||
|
|
@ -57,7 +50,10 @@
|
|||
]"
|
||||
:key="i"
|
||||
:variant="i.size == config[key].size ? 'primary' : 'secondary'"
|
||||
@click="config[key].size = i.size; updateConfig()"
|
||||
@click="
|
||||
config[key].size = i.size
|
||||
updateConfig()
|
||||
"
|
||||
>{{ i.label }}</BButton
|
||||
>
|
||||
</BButtonGroup>
|
||||
|
|
@ -156,12 +152,7 @@ const monthThresholdsData = () => {
|
|||
return _monthThresholdsData.value
|
||||
}
|
||||
|
||||
_monthThresholdsData.value = monthThresholds(
|
||||
data.value,
|
||||
categories.value,
|
||||
dateFrom.value,
|
||||
dateTo.value,
|
||||
)
|
||||
_monthThresholdsData.value = monthThresholds(data.value, categories.value, dateFrom.value, dateTo.value)
|
||||
|
||||
return _monthThresholdsData.value
|
||||
}
|
||||
|
|
@ -215,15 +206,10 @@ const refresh = () => {
|
|||
query['bank_account_id__eq'] = account.value
|
||||
}
|
||||
|
||||
fetch(
|
||||
`/api/transaction?${new URLSearchParams(query)}`,
|
||||
createRequestOptions(),
|
||||
)
|
||||
fetch(`/api/transaction?${new URLSearchParams(query)}`, createRequestOptions())
|
||||
.then((response) => response.json())
|
||||
.then((value) => {
|
||||
data.value = value.rows.filter(
|
||||
(row) => !row.category || row.category.ignore_transactions === false,
|
||||
)
|
||||
data.value = value.rows.filter((row) => !row.category || row.category.ignore_transactions === false)
|
||||
isLoading.value = false
|
||||
})
|
||||
}
|
||||
|
|
@ -233,10 +219,7 @@ onMounted(() => {
|
|||
|
||||
refresh()
|
||||
|
||||
fetch(
|
||||
'/api/category?order=label&sort=asc&ignore_transactions__eq=0',
|
||||
createRequestOptions(),
|
||||
)
|
||||
fetch('/api/category?order=label&sort=asc&ignore_transactions__eq=0', createRequestOptions())
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
categories.value = data.rows
|
||||
|
|
@ -260,9 +243,7 @@ onMounted(() => {
|
|||
})
|
||||
|
||||
defaultComponents.forEach((defaultComponent) => {
|
||||
const exists =
|
||||
config.value.filter((c) => defaultComponent.component === c.component)
|
||||
.length !== 0
|
||||
const exists = config.value.filter((c) => defaultComponent.component === c.component).length !== 0
|
||||
|
||||
if (!exists) {
|
||||
config.value.push(defaultComponent)
|
||||
|
|
@ -270,12 +251,7 @@ onMounted(() => {
|
|||
})
|
||||
|
||||
config.value = config.value.filter((configItem) => {
|
||||
return (
|
||||
defaultComponents.filter(
|
||||
(defaultComponent) =>
|
||||
configItem.component === defaultComponent.component,
|
||||
).length > 0
|
||||
)
|
||||
return defaultComponents.filter((defaultComponent) => configItem.component === defaultComponent.component).length > 0
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -177,18 +177,7 @@
|
|||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import CrudHeader from './../components/crud/CrudHeader.vue'
|
||||
import {
|
||||
BModal,
|
||||
BButton,
|
||||
BForm,
|
||||
BFormGroup,
|
||||
BFormInput,
|
||||
BAlert,
|
||||
BFormSelect,
|
||||
BFormFile,
|
||||
BDropdown,
|
||||
BDropdownItem,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BModal, BButton, BForm, BFormGroup, BFormInput, BAlert, BFormSelect, BFormFile, BDropdown, BDropdownItem } from 'bootstrap-vue-next'
|
||||
import { createRequestOptions } from '../lib/request'
|
||||
|
||||
let formFile = false
|
||||
|
|
@ -215,10 +204,7 @@ const withParents = (tree) => {
|
|||
}
|
||||
|
||||
const isEditable = (item) => {
|
||||
return [
|
||||
'application/vnd.oasis.opendocument.spreadsheet',
|
||||
'text/csv',
|
||||
].includes(item.type)
|
||||
return ['application/vnd.oasis.opendocument.spreadsheet', 'text/csv'].includes(item.type)
|
||||
}
|
||||
|
||||
const doAddFile = () => {
|
||||
|
|
|
|||
|
|
@ -44,14 +44,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
|
|
|
|||
|
|
@ -56,14 +56,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
import { ref, onMounted } from 'vue'
|
||||
|
|
|
|||
|
|
@ -44,14 +44,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
|
|
@ -130,19 +123,13 @@ const doSave = (e) => {
|
|||
|
||||
form.value.data.rules = []
|
||||
|
||||
if (
|
||||
form.value.data.month_threshold !== null &&
|
||||
form.value.data.month_threshold !== ''
|
||||
) {
|
||||
form.value.data.month_threshold = parseFloat(
|
||||
form.value.data.month_threshold,
|
||||
)
|
||||
if (form.value.data.month_threshold !== null && form.value.data.month_threshold !== '') {
|
||||
form.value.data.month_threshold = parseFloat(form.value.data.month_threshold)
|
||||
} else {
|
||||
form.value.data.month_threshold = null
|
||||
}
|
||||
|
||||
form.value.data.ignore_transactions =
|
||||
form.value.data.ignore_transactions === 1
|
||||
form.value.data.ignore_transactions = form.value.data.ignore_transactions === 1
|
||||
|
||||
fetch(
|
||||
`${endpoint}`,
|
||||
|
|
|
|||
|
|
@ -58,12 +58,7 @@
|
|||
>
|
||||
<FormView
|
||||
:form="form"
|
||||
:fields="[
|
||||
'label',
|
||||
'month_threshold',
|
||||
'ignore_transactions',
|
||||
'color',
|
||||
]"
|
||||
:fields="['label', 'month_threshold', 'ignore_transactions', 'color']"
|
||||
/>
|
||||
</BCol>
|
||||
<BCol
|
||||
|
|
@ -86,14 +81,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
import { ref, onMounted } from 'vue'
|
||||
|
|
@ -251,19 +239,13 @@ const doSave = (e) => {
|
|||
form.value.data.rules = []
|
||||
}
|
||||
|
||||
if (
|
||||
form.value.data.month_threshold !== null &&
|
||||
form.value.data.month_threshold !== ''
|
||||
) {
|
||||
form.value.data.month_threshold = parseFloat(
|
||||
form.value.data.month_threshold,
|
||||
)
|
||||
if (form.value.data.month_threshold !== null && form.value.data.month_threshold !== '') {
|
||||
form.value.data.month_threshold = parseFloat(form.value.data.month_threshold)
|
||||
} else {
|
||||
form.value.data.month_threshold = null
|
||||
}
|
||||
|
||||
form.value.data.ignore_transactions =
|
||||
form.value.data.ignore_transactions === 1
|
||||
form.value.data.ignore_transactions = form.value.data.ignore_transactions === 1
|
||||
|
||||
form.value.data.rules.forEach((value, key) => {
|
||||
if (value.amount !== null && value.amount !== '') {
|
||||
|
|
@ -271,21 +253,11 @@ const doSave = (e) => {
|
|||
}
|
||||
|
||||
if (value.date_from) {
|
||||
form.value.data.rules[key].date_from = toISODateString(
|
||||
value.date_from,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
)
|
||||
form.value.data.rules[key].date_from = toISODateString(value.date_from, 0, 0, 0)
|
||||
}
|
||||
|
||||
if (value.date_to) {
|
||||
form.value.data.rules[key].date_to = toISODateString(
|
||||
value.date_to,
|
||||
23,
|
||||
59,
|
||||
59,
|
||||
)
|
||||
form.value.data.rules[key].date_to = toISODateString(value.date_to, 23, 59, 59)
|
||||
}
|
||||
|
||||
for (let i in value) {
|
||||
|
|
|
|||
|
|
@ -60,11 +60,7 @@ import CrudPager from '../../components/crud/CrudPager.vue'
|
|||
import DataList from '../../components/crud/DataList.vue'
|
||||
import { ref, onMounted, watch } from 'vue'
|
||||
import { getStorage, saveStorage } from '../../lib/storage'
|
||||
import {
|
||||
renderCategory,
|
||||
renderEuro,
|
||||
renderLabelWithSum,
|
||||
} from '../../lib/renderers'
|
||||
import { renderCategory, renderEuro, renderLabelWithSum } from '../../lib/renderers'
|
||||
import { createRequestOptions } from '../../lib/request'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
|
|
@ -86,10 +82,7 @@ watch(limit, (v) => saveStorage(`${endpoint}:limit`, v))
|
|||
const doApply = () => {
|
||||
applyInProgress.value = true
|
||||
|
||||
fetch(
|
||||
'/api/transactions/update_categories',
|
||||
createRequestOptions({ method: 'POST' }),
|
||||
).then(() => {
|
||||
fetch('/api/transactions/update_categories', createRequestOptions({ method: 'POST' })).then(() => {
|
||||
applyInProgress.value = false
|
||||
})
|
||||
}
|
||||
|
|
@ -147,8 +140,7 @@ const fields = [
|
|||
},
|
||||
{
|
||||
key: 'month_threshold',
|
||||
renderLabel: (rows) =>
|
||||
renderLabelWithSum('Seuil mensuel', rows, 'month_threshold'),
|
||||
renderLabel: (rows) => renderLabelWithSum('Seuil mensuel', rows, 'month_threshold'),
|
||||
width: '150px',
|
||||
thClasses: ['text-end'],
|
||||
tdClasses: ['text-end'],
|
||||
|
|
|
|||
|
|
@ -44,14 +44,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
|
|
|
|||
|
|
@ -56,14 +56,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
import { ref, onMounted } from 'vue'
|
||||
|
|
|
|||
|
|
@ -111,14 +111,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BModal,
|
||||
BButton,
|
||||
BForm,
|
||||
BAlert,
|
||||
BButtonToolbar,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BModal, BButton, BForm, BAlert, BButtonToolbar } from 'bootstrap-vue-next'
|
||||
|
||||
import CrudHeader from '../../components/crud/CrudHeader.vue'
|
||||
import CrudFilter from '../../components/CrudFilter.vue'
|
||||
|
|
@ -130,13 +123,7 @@ import { ref, onMounted, watch } from 'vue'
|
|||
import { getStorage, saveStorage } from '../../lib/storage'
|
||||
import { createRequestOptions } from '../../lib/request'
|
||||
import { queryFilters, appendRequestQueryFilters } from '../../lib/filter'
|
||||
import {
|
||||
renderDate,
|
||||
renderCategory,
|
||||
renderBankAccount,
|
||||
renderEuro,
|
||||
renderLabelWithSum,
|
||||
} from '../../lib/renderers'
|
||||
import { renderDate, renderCategory, renderBankAccount, renderEuro, renderLabelWithSum } from '../../lib/renderers'
|
||||
|
||||
const endpoint = `/api/transaction`
|
||||
const order = ref(getStorage(`${endpoint}:order`))
|
||||
|
|
|
|||
|
|
@ -56,14 +56,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
BContainer,
|
||||
BButton,
|
||||
BForm,
|
||||
BRow,
|
||||
BCol,
|
||||
BAlert,
|
||||
} from 'bootstrap-vue-next'
|
||||
import { BContainer, BButton, BForm, BRow, BCol, BAlert } from 'bootstrap-vue-next'
|
||||
import CrudHeader from './../../components/crud/CrudHeader.vue'
|
||||
import FormView from './../../components/crud/FormView.vue'
|
||||
import { ref, onMounted } from 'vue'
|
||||
|
|
|
|||
|
|
@ -198,16 +198,7 @@ $nav-size-sm: 50px;
|
|||
}
|
||||
|
||||
.header {
|
||||
background-image: linear-gradient(
|
||||
45deg,
|
||||
#fafafa 25%,
|
||||
#f5f6f7 25%,
|
||||
#f5f6f7 50%,
|
||||
#fafafa 50%,
|
||||
#fafafa 75%,
|
||||
#f5f6f7 75%,
|
||||
#f5f6f7 100%
|
||||
);
|
||||
background-image: linear-gradient(45deg, #fafafa 25%, #f5f6f7 25%, #f5f6f7 50%, #fafafa 50%, #fafafa 75%, #f5f6f7 75%, #f5f6f7 100%);
|
||||
background-size: 56.57px 56.57px;
|
||||
color: #47516b;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue