2018-06-01 12:35:51 +00:00
|
|
|
<template>
|
2019-12-16 11:34:22 +00:00
|
|
|
<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)"
|
2019-12-16 11:34:22 +00:00
|
|
|
@close="reloadMainWindowOnSettingsClose"
|
|
|
|
/>
|
2019-10-03 13:46:12 +00:00
|
|
|
<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" />
|
2019-12-11 09:05:46 +00:00
|
|
|
<portal-target name="popovers" multiple></portal-target>
|
2018-06-01 12:35:51 +00:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2019-10-03 13:46:12 +00:00
|
|
|
import './styles/index.css';
|
2019-12-12 17:40:34 +00:00
|
|
|
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';
|
2019-12-16 11:34:22 +00:00
|
|
|
import WindowsTitleBar from '@/components/WindowsTitleBar';
|
2019-10-13 12:03:01 +00:00
|
|
|
import { remote } from 'electron';
|
2018-06-01 12:35:51 +00:00
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'App',
|
2018-06-11 09:46:25 +00:00
|
|
|
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
|
2019-08-20 08:57:27 +00:00
|
|
|
};
|
2018-06-11 09:46:25 +00:00
|
|
|
},
|
2019-10-13 12:03:01 +00:00
|
|
|
watch: {
|
|
|
|
showDatabaseSelector(newValue) {
|
|
|
|
if (newValue) {
|
2019-12-26 18:06:45 +00:00
|
|
|
let win = remote.getCurrentWindow();
|
|
|
|
win.setSize(600, 600);
|
|
|
|
win.setResizable(false);
|
2019-10-13 12:03:01 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
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-13 12:03:01 +00:00
|
|
|
}
|
|
|
|
},
|
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
|
|
|
}
|
|
|
|
},
|
2019-10-13 12:03:01 +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-13 12:03:01 +00:00
|
|
|
}
|
2019-10-19 14:26:13 +00:00
|
|
|
}
|
2019-10-13 12:03:01 +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,
|
2019-12-16 11:34:22 +00:00
|
|
|
Settings,
|
|
|
|
WindowsTitleBar
|
2018-06-11 09:46:25 +00:00
|
|
|
},
|
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;
|
2019-12-27 06:37:39 +00:00
|
|
|
this.checkForUpdates();
|
2019-10-24 10:39:57 +00:00
|
|
|
}
|
2018-10-23 12:42:36 +00:00
|
|
|
this.showSetupWizard = false;
|
|
|
|
this.showDatabaseSelector = false;
|
2019-08-20 08:57:27 +00:00
|
|
|
});
|
2018-10-23 12:42:36 +00:00
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
connectToDBFile(filePath) {
|
|
|
|
frappe.events.trigger('DatabaseSelector:file-selected', filePath);
|
2019-12-16 11:34:22 +00:00
|
|
|
},
|
|
|
|
reloadMainWindowOnSettingsClose() {
|
|
|
|
if (this.showSettings) {
|
|
|
|
frappe.events.trigger('reload-main-window');
|
|
|
|
}
|
2019-12-27 06:37:39 +00:00
|
|
|
},
|
|
|
|
checkForUpdates() {
|
|
|
|
frappe.events.trigger('check-for-updates');
|
2018-10-23 12:42:36 +00:00
|
|
|
}
|
2018-06-01 12:35:51 +00:00
|
|
|
}
|
2019-08-20 08:57:27 +00:00
|
|
|
};
|
2018-06-01 12:35:51 +00:00
|
|
|
</script>
|