Skip to content

Commit 26978eb

Browse files
Shanon LeeShanon Lee
authored andcommitted
OpenProjectComponent finished, functional
1 parent b9c39de commit 26978eb

File tree

3 files changed

+70
-3
lines changed

3 files changed

+70
-3
lines changed

src-electron/electron-main.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@ ipcMain.handle('saveProject', async (event, arg) => {
5050
return result;
5151
})
5252

53+
// Handle dialogs for OpenProjectComponent
54+
ipcMain.handle('openProject', async (event, arg) => {
55+
const result = await dialog.showOpenDialog(arg);
56+
return result;
57+
})
58+
59+
5360
// ************** Slack OAuth functions **********************
5461
// Sends request to Slack for User's information,
5562
// then sends user information back to renderer process
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<!--
2+
Description:
3+
Displays Open Project Button
4+
Functionality includes: opening saved json file and storing data in state
5+
-->
6+
7+
<template>
8+
<q-btn class="export-btn" color="secondary" label="Open Project" @click="openProjectJSON"/>
9+
</template>
10+
11+
<script>
12+
// import fs from 'fs-extra'
13+
// const { remote } = require('electron')
14+
import { mapActions } from 'vuex';
15+
const Mousetrap = require('mousetrap');
16+
const { fs, ipcRenderer } = window;
17+
18+
export default {
19+
name: 'OpenProjectComponent',
20+
methods: {
21+
...mapActions(['openProject']),
22+
// opens project
23+
openJSONFile (data) {
24+
if (data === undefined) return
25+
const jsonFile = JSON.parse(fs.readFileSync(data[0], 'utf8'))
26+
// console.log('json file', jsonFile)
27+
this.openProject(jsonFile)
28+
},
29+
showOpenJSONDialog() {
30+
ipcRenderer.invoke('openProject', {
31+
properties: ['openFile'],
32+
filters: [{
33+
name: 'JSON Files',
34+
extensions: ['json']
35+
}]
36+
})
37+
.then(res => this.openJSONFile(res.filePaths))
38+
.catch(err => console.log(err))
39+
},
40+
41+
openProjectJSON () {
42+
this.showOpenJSONDialog();
43+
}
44+
},
45+
// on components creation these key presses will trigger open project
46+
created () {
47+
Mousetrap.bind(['command+o', 'ctrl+o'], () => {
48+
this.openProjectJSON()
49+
})
50+
}
51+
}
52+
53+
</script>
54+
55+
<style scoped>
56+
.mr-sm {
57+
margin-right: 0.2rem;
58+
}
59+
</style>
60+

src/layouts/MyLayout.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Description:
3939
></i>
4040
<i v-else class="fa fa-forward" id="unavailable" aria-hidden="true"></i>
4141

42-
<!-- <OpenProjectComponent /> -->
42+
<OpenProjectComponent />
4343
<SaveProjectComponent />
4444
<ExportProjectComponent />
4545
<!-- </div> -->
@@ -107,7 +107,7 @@ Description:
107107
import Dashboard from "../components/dashboard_items/Dashboard.vue";
108108
import ExportProjectComponent from "../components/file_system_interface/ExportProject.vue";
109109
import SaveProjectComponent from "../components/file_system_interface/SaveProjectComponent.vue";
110-
// import OpenProjectComponent from "../c omponents/file_system_interface/OpenProjectComponent.vue";
110+
import OpenProjectComponent from "../components/file_system_interface/OpenProjectComponent.vue";
111111
// import UploadImage from "../components/home_sidebar_items/UploadImage.vue";
112112
import SlackLoginWindow from "../components/slack_login/SlackLoginWindow.vue";
113113
// import RouteDisplay from "../components/home_sidebar_items/RouteDisplay.vue";
@@ -131,7 +131,7 @@ export default {
131131
Dashboard,
132132
ExportProjectComponent,
133133
SaveProjectComponent,
134-
// OpenProjectComponent,
134+
OpenProjectComponent,
135135
// UploadImage,
136136
SlackLoginWindow,
137137
// ComponentTab,

0 commit comments

Comments
 (0)