diff --git a/src/pages/ReportPage.vue b/src/pages/ReportPage.vue index dccf50e..9c8b0b3 100644 --- a/src/pages/ReportPage.vue +++ b/src/pages/ReportPage.vue @@ -130,13 +130,14 @@ import DateDaySelect from 'src/components/DateDaySelect.vue'; import { computed, onMounted, ref } from 'vue'; import { useNotify } from 'src/vueLib/general/useNotify'; import { i18n } from 'src/boot/lang'; -import { appName, databaseName } from 'src/vueLib/models/settings'; +import { appName } from 'src/vueLib/models/settings'; import type { Amount } from 'src/vueLib/models/report'; import ReportStat from 'src/components/ReportStat.vue'; import type { Group, Groups } from 'src/vueLib/models/group'; import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage'; import html2pdf from 'html2pdf.js'; import type { PageDefault } from 'src/vueLib/models/pageDefaults'; +import { openDatabase } from 'src/vueLib/components/DatabaseCall'; const filter = ref(''); const group = ref([]); @@ -168,10 +169,9 @@ const columns = computed(() => [ }, ]); -onMounted(() => { +onMounted(async () => { loading.value = true; - appApi - .post('database/open', { dbPath: databaseName.value }) + await openDatabase() .catch((err) => NotifyResponse(err, 'error')) .finally(() => { diff --git a/src/vueLib/components/DatabaseCall.ts b/src/vueLib/components/DatabaseCall.ts new file mode 100644 index 0000000..e757bce --- /dev/null +++ b/src/vueLib/components/DatabaseCall.ts @@ -0,0 +1,14 @@ +import { appApi } from 'src/boot/axios'; +import { databaseName, workspace } from '../models/settings'; + +export async function openDatabase() { + let path = databaseName.value; + if (workspace.value !== '') { + path = workspace.value + '/' + path; + } + + return appApi.post('database/open', { + dbPath: path, + create: true, + }); +} diff --git a/src/vueLib/tables/events/EventsTable.vue b/src/vueLib/tables/events/EventsTable.vue index 23d9f48..ed7d1b5 100644 --- a/src/vueLib/tables/events/EventsTable.vue +++ b/src/vueLib/tables/events/EventsTable.vue @@ -123,13 +123,13 @@ import EditAllDialog from 'src/components/EventEditAllDialog.vue'; import OkDialog from 'src/components/dialog/OkDialog.vue'; import { useNotify } from 'src/vueLib/general/useNotify'; import { useEventTable } from './EventsTable'; -import { databaseName } from 'src/vueLib/models/settings'; import { useUserStore } from 'src/vueLib/login/userStore'; import AttendeesTableDialog from '../attendees/AttendeesTableDialog.vue'; import type { Members } from 'src/vueLib/models/member'; import { i18n } from 'src/boot/lang'; import SearchableInput from '../components/SearchableInput.vue'; import TopButtonGroup from '../components/TopButtonGroup.vue'; +import { openDatabase } from 'src/vueLib/components/DatabaseCall'; export interface EventDialog { getSelected: () => Events; @@ -150,11 +150,10 @@ const user = useUserStore(); const { Events, pagination, loading, columns, updateEvents } = useEventTable(); //load on mounting page -onMounted(() => { +onMounted(async () => { loading.value = true; - appApi - .post('database/open', { dbPath: databaseName.value, create: true }) + await openDatabase() .then(() => { updateEvents(); }) diff --git a/src/vueLib/tables/group/GroupTable.vue b/src/vueLib/tables/group/GroupTable.vue index 7a103c5..e47c515 100644 --- a/src/vueLib/tables/group/GroupTable.vue +++ b/src/vueLib/tables/group/GroupTable.vue @@ -116,7 +116,6 @@ import DialogFrame from 'src/vueLib/dialog/DialogFrame.vue'; import OkDialog from 'src/components/dialog/OkDialog.vue'; import { useNotify } from 'src/vueLib/general/useNotify'; import { useGroupTable } from './GroupTable'; -import { databaseName } from 'src/vueLib/models/settings'; import { useUserStore } from 'src/vueLib/login/userStore'; import { i18n } from 'src/boot/lang'; import type { Group, Groups } from 'src/vueLib/models/group'; @@ -124,6 +123,7 @@ import SearchableInput from '../components/SearchableInput.vue'; import TopButtonGroup from '../components/TopButtonGroup.vue'; import { getAllMembers } from '../members/MembersTable'; import type { Members } from 'src/vueLib/models/member'; +import { openDatabase } from 'src/vueLib/components/DatabaseCall'; const { NotifyResponse } = useNotify(); const groupDialog = ref(); @@ -147,8 +147,7 @@ onMounted(async () => { members.value = await getAllMembers(); - appApi - .post('database/open', { dbPath: databaseName.value, create: true }) + await openDatabase() .then(() => { updateGroups().catch((err) => { NotifyResponse(err, 'error'); diff --git a/src/vueLib/tables/members/MembersTable.vue b/src/vueLib/tables/members/MembersTable.vue index d18f3fe..1fd08a2 100644 --- a/src/vueLib/tables/members/MembersTable.vue +++ b/src/vueLib/tables/members/MembersTable.vue @@ -206,7 +206,6 @@ import { useNotify } from 'src/vueLib/general/useNotify'; import { useMemberTable } from './MembersTable'; import UploadDialog from 'src/components/UploadDialog.vue'; import AddToEvent from 'src/components/AddToEvent.vue'; -import { databaseName } from 'src/vueLib/models/settings'; import { useUserStore } from 'src/vueLib/login/userStore'; import { i18n } from 'src/boot/lang'; import type { Responsible } from 'src/vueLib/models/responsible'; @@ -216,6 +215,7 @@ import FilterSelect from '../components/FilterSelect.vue'; import TopButtonGroup from '../components/TopButtonGroup.vue'; import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage'; import type { PageDefault } from 'src/vueLib/models/pageDefaults'; +import { openDatabase } from 'src/vueLib/components/DatabaseCall'; const inProps = defineProps({ addAttendees: { type: Boolean }, @@ -263,7 +263,7 @@ const { } = useMemberTable(); //load on mounting page -onMounted(() => { +onMounted(async () => { page.value = 'members'; if (inProps.addAttendees || inProps.addResponsible) { selectOption.value = true; @@ -295,8 +295,7 @@ onMounted(() => { // set custom filter setNewFilter(selectedColumnFilter.value, ...selectedColumnOptions.value); - appApi - .post('database/open', { dbPath: databaseName.value, create: true }) + await openDatabase() .then(() => { updateTable().catch((err) => NotifyResponse(err, 'error')); }) diff --git a/src/vueLib/tables/responsible/ResponsibleTable.vue b/src/vueLib/tables/responsible/ResponsibleTable.vue index 86cc3e8..eb39810 100644 --- a/src/vueLib/tables/responsible/ResponsibleTable.vue +++ b/src/vueLib/tables/responsible/ResponsibleTable.vue @@ -108,12 +108,12 @@ import type { Members } from 'src/vueLib/models/member'; import OkDialog from 'src/components/dialog/OkDialog.vue'; import { useNotify } from 'src/vueLib/general/useNotify'; import { useResponsibleTable } from './ResponsibleTable'; -import { databaseName } from 'src/vueLib/models/settings'; import { useUserStore } from 'src/vueLib/login/userStore'; import { i18n } from 'src/boot/lang'; import type { Responsible, Responsibles } from 'src/vueLib/models/responsible'; import SearchableInput from '../components/SearchableInput.vue'; import TopButtonGroup from '../components/TopButtonGroup.vue'; +import { openDatabase } from 'src/vueLib/components/DatabaseCall'; const { NotifyResponse } = useNotify(); const responsibleDialog = ref(); @@ -129,11 +129,10 @@ const { responsibleMember, pagination, loading, columns, updateResponsibles } = useResponsibleTable(); //load on mounting page -onMounted(() => { +onMounted(async () => { loading.value = true; - appApi - .post('database/open', { dbPath: databaseName.value, create: true }) + await openDatabase() .then(() => { updateResponsibles().catch((err) => { NotifyResponse(err, 'error');