2
0
mirror of https://github.com/frappe/books.git synced 2024-12-24 11:55:46 +00:00
books/src/App.vue

108 lines
2.8 KiB
Vue
Raw Normal View History

2018-06-01 12:35:51 +00:00
<template>
<div id="app" class="h-screen flex flex-col font-sans overflow-hidden">
<WindowsTitleBar
2019-12-17 07:04:49 +00:00
v-if="['Windows', 'Linux'].includes(platform)"
@close="reloadMainWindowOnSettingsClose"
/>
<Desk class="flex-1" v-if="showDesk" />
2018-10-23 12:42:36 +00:00
<database-selector v-if="showDatabaseSelector" @file="connectToDBFile" />
<setup-wizard v-if="showSetupWizard" />
2019-10-19 14:26:13 +00:00
<Settings v-if="showSettings" />
<portal-target name="popovers" multiple></portal-target>
2018-06-01 12:35:51 +00:00
</div>
</template>
<script>
import './styles/index.css';
import 'frappe-charts/dist/frappe-charts.min.css';
2018-10-22 18:02:47 +00:00
import frappe from 'frappejs';
2018-10-23 12:42:36 +00:00
import Desk from './pages/Desk';
2018-10-05 05:35:20 +00:00
import SetupWizard from './pages/SetupWizard/SetupWizard';
2018-10-23 12:42:36 +00:00
import DatabaseSelector from './pages/DatabaseSelector';
2019-11-19 17:50:00 +00:00
import Settings from '@/pages/Settings/Settings.vue';
import WindowsTitleBar from '@/components/WindowsTitleBar';
import { remote } from 'electron';
2018-06-01 12:35:51 +00:00
export default {
name: 'App',
data() {
return {
2018-10-23 12:42:36 +00:00
showDatabaseSelector: false,
showDesk: false,
2019-10-19 14:26:13 +00:00
showSetupWizard: false,
showSettings: false
};
},
watch: {
showDatabaseSelector(newValue) {
if (newValue) {
2019-12-26 18:06:45 +00:00
let win = remote.getCurrentWindow();
win.setSize(600, 600);
win.setResizable(false);
}
},
showSetupWizard(newValue) {
if (newValue) {
2019-12-26 18:06:45 +00:00
let win = remote.getCurrentWindow();
win.setSize(600, 600);
win.setResizable(false);
}
},
2019-10-19 14:26:13 +00:00
showSettings(newValue) {
if (newValue) {
2019-12-26 18:06:45 +00:00
let win = remote.getCurrentWindow();
win.setSize(460, 577);
win.setResizable(false);
2019-10-19 14:26:13 +00:00
}
},
showDesk(newValue) {
if (newValue) {
2019-12-26 18:06:45 +00:00
let win = remote.getCurrentWindow();
win.setSize(1200, 907);
win.setResizable(true);
}
2019-10-19 14:26:13 +00:00
}
},
2018-06-01 12:35:51 +00:00
components: {
2018-10-23 12:42:36 +00:00
Desk,
2018-10-22 18:10:22 +00:00
SetupWizard,
2019-10-19 14:26:13 +00:00
DatabaseSelector,
Settings,
WindowsTitleBar
},
2018-10-23 12:42:36 +00:00
mounted() {
2019-10-24 10:39:57 +00:00
if (!localStorage.dbPath) {
2018-10-23 12:42:36 +00:00
this.showDatabaseSelector = true;
} else {
frappe.events.trigger('connect-database', localStorage.dbPath);
}
2018-10-22 18:02:47 +00:00
frappe.events.on('show-setup-wizard', () => {
2018-10-23 12:42:36 +00:00
this.showSetupWizard = true;
2018-10-05 05:35:20 +00:00
this.showDesk = false;
2018-10-23 12:42:36 +00:00
this.showDatabaseSelector = false;
});
2018-10-05 05:35:20 +00:00
2018-10-22 18:02:47 +00:00
frappe.events.on('show-desk', () => {
2019-11-19 17:50:00 +00:00
if (this.$route.path.startsWith('/settings')) {
2019-10-24 10:39:57 +00:00
this.showSettings = true;
} else {
this.showDesk = true;
}
2018-10-23 12:42:36 +00:00
this.showSetupWizard = false;
this.showDatabaseSelector = false;
});
2018-10-23 12:42:36 +00:00
},
methods: {
connectToDBFile(filePath) {
frappe.events.trigger('DatabaseSelector:file-selected', filePath);
},
reloadMainWindowOnSettingsClose() {
if (this.showSettings) {
frappe.events.trigger('reload-main-window');
}
2018-10-23 12:42:36 +00:00
}
2018-06-01 12:35:51 +00:00
}
};
2018-06-01 12:35:51 +00:00
</script>