add new openDatabse function

This commit is contained in:
Adrian Zürcher
2026-02-19 10:50:40 +01:00
parent 6392877dc1
commit ab88acd740
6 changed files with 29 additions and 19 deletions

View File

@@ -130,13 +130,14 @@ import DateDaySelect from 'src/components/DateDaySelect.vue';
import { computed, onMounted, ref } from 'vue'; import { computed, onMounted, ref } from 'vue';
import { useNotify } from 'src/vueLib/general/useNotify'; import { useNotify } from 'src/vueLib/general/useNotify';
import { i18n } from 'src/boot/lang'; 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 type { Amount } from 'src/vueLib/models/report';
import ReportStat from 'src/components/ReportStat.vue'; import ReportStat from 'src/components/ReportStat.vue';
import type { Group, Groups } from 'src/vueLib/models/group'; import type { Group, Groups } from 'src/vueLib/models/group';
import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage'; import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage';
import html2pdf from 'html2pdf.js'; import html2pdf from 'html2pdf.js';
import type { PageDefault } from 'src/vueLib/models/pageDefaults'; import type { PageDefault } from 'src/vueLib/models/pageDefaults';
import { openDatabase } from 'src/vueLib/components/DatabaseCall';
const filter = ref<string>(''); const filter = ref<string>('');
const group = ref<Group[]>([]); const group = ref<Group[]>([]);
@@ -168,10 +169,9 @@ const columns = computed(() => [
}, },
]); ]);
onMounted(() => { onMounted(async () => {
loading.value = true; loading.value = true;
appApi await openDatabase()
.post('database/open', { dbPath: databaseName.value })
.catch((err) => NotifyResponse(err, 'error')) .catch((err) => NotifyResponse(err, 'error'))
.finally(() => { .finally(() => {

View File

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

View File

@@ -123,13 +123,13 @@ import EditAllDialog from 'src/components/EventEditAllDialog.vue';
import OkDialog from 'src/components/dialog/OkDialog.vue'; import OkDialog from 'src/components/dialog/OkDialog.vue';
import { useNotify } from 'src/vueLib/general/useNotify'; import { useNotify } from 'src/vueLib/general/useNotify';
import { useEventTable } from './EventsTable'; import { useEventTable } from './EventsTable';
import { databaseName } from 'src/vueLib/models/settings';
import { useUserStore } from 'src/vueLib/login/userStore'; import { useUserStore } from 'src/vueLib/login/userStore';
import AttendeesTableDialog from '../attendees/AttendeesTableDialog.vue'; import AttendeesTableDialog from '../attendees/AttendeesTableDialog.vue';
import type { Members } from 'src/vueLib/models/member'; import type { Members } from 'src/vueLib/models/member';
import { i18n } from 'src/boot/lang'; import { i18n } from 'src/boot/lang';
import SearchableInput from '../components/SearchableInput.vue'; import SearchableInput from '../components/SearchableInput.vue';
import TopButtonGroup from '../components/TopButtonGroup.vue'; import TopButtonGroup from '../components/TopButtonGroup.vue';
import { openDatabase } from 'src/vueLib/components/DatabaseCall';
export interface EventDialog { export interface EventDialog {
getSelected: () => Events; getSelected: () => Events;
@@ -150,11 +150,10 @@ const user = useUserStore();
const { Events, pagination, loading, columns, updateEvents } = useEventTable(); const { Events, pagination, loading, columns, updateEvents } = useEventTable();
//load on mounting page //load on mounting page
onMounted(() => { onMounted(async () => {
loading.value = true; loading.value = true;
appApi await openDatabase()
.post('database/open', { dbPath: databaseName.value, create: true })
.then(() => { .then(() => {
updateEvents(); updateEvents();
}) })

View File

@@ -116,7 +116,6 @@ import DialogFrame from 'src/vueLib/dialog/DialogFrame.vue';
import OkDialog from 'src/components/dialog/OkDialog.vue'; import OkDialog from 'src/components/dialog/OkDialog.vue';
import { useNotify } from 'src/vueLib/general/useNotify'; import { useNotify } from 'src/vueLib/general/useNotify';
import { useGroupTable } from './GroupTable'; import { useGroupTable } from './GroupTable';
import { databaseName } from 'src/vueLib/models/settings';
import { useUserStore } from 'src/vueLib/login/userStore'; import { useUserStore } from 'src/vueLib/login/userStore';
import { i18n } from 'src/boot/lang'; import { i18n } from 'src/boot/lang';
import type { Group, Groups } from 'src/vueLib/models/group'; 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 TopButtonGroup from '../components/TopButtonGroup.vue';
import { getAllMembers } from '../members/MembersTable'; import { getAllMembers } from '../members/MembersTable';
import type { Members } from 'src/vueLib/models/member'; import type { Members } from 'src/vueLib/models/member';
import { openDatabase } from 'src/vueLib/components/DatabaseCall';
const { NotifyResponse } = useNotify(); const { NotifyResponse } = useNotify();
const groupDialog = ref(); const groupDialog = ref();
@@ -147,8 +147,7 @@ onMounted(async () => {
members.value = await getAllMembers(); members.value = await getAllMembers();
appApi await openDatabase()
.post('database/open', { dbPath: databaseName.value, create: true })
.then(() => { .then(() => {
updateGroups().catch((err) => { updateGroups().catch((err) => {
NotifyResponse(err, 'error'); NotifyResponse(err, 'error');

View File

@@ -206,7 +206,6 @@ import { useNotify } from 'src/vueLib/general/useNotify';
import { useMemberTable } from './MembersTable'; import { useMemberTable } from './MembersTable';
import UploadDialog from 'src/components/UploadDialog.vue'; import UploadDialog from 'src/components/UploadDialog.vue';
import AddToEvent from 'src/components/AddToEvent.vue'; import AddToEvent from 'src/components/AddToEvent.vue';
import { databaseName } from 'src/vueLib/models/settings';
import { useUserStore } from 'src/vueLib/login/userStore'; import { useUserStore } from 'src/vueLib/login/userStore';
import { i18n } from 'src/boot/lang'; import { i18n } from 'src/boot/lang';
import type { Responsible } from 'src/vueLib/models/responsible'; 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 TopButtonGroup from '../components/TopButtonGroup.vue';
import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage'; import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage';
import type { PageDefault } from 'src/vueLib/models/pageDefaults'; import type { PageDefault } from 'src/vueLib/models/pageDefaults';
import { openDatabase } from 'src/vueLib/components/DatabaseCall';
const inProps = defineProps({ const inProps = defineProps({
addAttendees: { type: Boolean }, addAttendees: { type: Boolean },
@@ -263,7 +263,7 @@ const {
} = useMemberTable(); } = useMemberTable();
//load on mounting page //load on mounting page
onMounted(() => { onMounted(async () => {
page.value = 'members'; page.value = 'members';
if (inProps.addAttendees || inProps.addResponsible) { if (inProps.addAttendees || inProps.addResponsible) {
selectOption.value = true; selectOption.value = true;
@@ -295,8 +295,7 @@ onMounted(() => {
// set custom filter // set custom filter
setNewFilter(selectedColumnFilter.value, ...selectedColumnOptions.value); setNewFilter(selectedColumnFilter.value, ...selectedColumnOptions.value);
appApi await openDatabase()
.post('database/open', { dbPath: databaseName.value, create: true })
.then(() => { .then(() => {
updateTable().catch((err) => NotifyResponse(err, 'error')); updateTable().catch((err) => NotifyResponse(err, 'error'));
}) })

View File

@@ -108,12 +108,12 @@ import type { Members } from 'src/vueLib/models/member';
import OkDialog from 'src/components/dialog/OkDialog.vue'; import OkDialog from 'src/components/dialog/OkDialog.vue';
import { useNotify } from 'src/vueLib/general/useNotify'; import { useNotify } from 'src/vueLib/general/useNotify';
import { useResponsibleTable } from './ResponsibleTable'; import { useResponsibleTable } from './ResponsibleTable';
import { databaseName } from 'src/vueLib/models/settings';
import { useUserStore } from 'src/vueLib/login/userStore'; import { useUserStore } from 'src/vueLib/login/userStore';
import { i18n } from 'src/boot/lang'; import { i18n } from 'src/boot/lang';
import type { Responsible, Responsibles } from 'src/vueLib/models/responsible'; import type { Responsible, Responsibles } from 'src/vueLib/models/responsible';
import SearchableInput from '../components/SearchableInput.vue'; import SearchableInput from '../components/SearchableInput.vue';
import TopButtonGroup from '../components/TopButtonGroup.vue'; import TopButtonGroup from '../components/TopButtonGroup.vue';
import { openDatabase } from 'src/vueLib/components/DatabaseCall';
const { NotifyResponse } = useNotify(); const { NotifyResponse } = useNotify();
const responsibleDialog = ref(); const responsibleDialog = ref();
@@ -129,11 +129,10 @@ const { responsibleMember, pagination, loading, columns, updateResponsibles } =
useResponsibleTable(); useResponsibleTable();
//load on mounting page //load on mounting page
onMounted(() => { onMounted(async () => {
loading.value = true; loading.value = true;
appApi await openDatabase()
.post('database/open', { dbPath: databaseName.value, create: true })
.then(() => { .then(() => {
updateResponsibles().catch((err) => { updateResponsibles().catch((err) => {
NotifyResponse(err, 'error'); NotifyResponse(err, 'error');