apply linter

This commit is contained in:
Simon Vieille 2025-03-26 12:34:05 +01:00
commit 3ca85251f4
Signed by: deblan
GPG key ID: 579388D585F70417
26 changed files with 61 additions and 307 deletions

View file

@ -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"

View file

@ -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) => {

View file

@ -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 = []

View file

@ -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
}

View file

@ -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({

View file

@ -18,7 +18,7 @@ defineProps({
title: {
type: [String, null],
required: true,
}
},
})
</script>

View file

@ -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: {

View file

@ -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 = [

View file

@ -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: {

View file

@ -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)"
/>

View file

@ -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>

View file

@ -20,7 +20,7 @@ defineProps({
data: {
type: Array,
required: true,
}
},
})
const options = () => {

View file

@ -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 }

View file

@ -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)

View file

@ -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>

View file

@ -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 = () => {

View file

@ -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'

View file

@ -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'

View file

@ -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}`,

View file

@ -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) {

View file

@ -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'],

View file

@ -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'

View file

@ -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'

View file

@ -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`))

View file

@ -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'

View file

@ -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;
}