cloud_off
@@ -21,7 +21,7 @@
@@ -37,15 +59,33 @@ export default {
position: relative;
padding-top: 1.4rem;
- .workspace-explorebar-title{
+ .workspace-explorebar-header{
top: 0;
left: 0;
right: 0;
padding: .3rem;
position: absolute;
+ display: flex;
+ justify-content: space-between;
font-size: .6rem;
font-weight: 700;
text-transform: uppercase;
+
+ .workspace-explorebar-title{
+ width: 80%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .workspace-explorebar-tools > i{
+ opacity: .6;
+ transition: opacity .2s;;
+
+ &:hover{
+ opacity: 1;
+ }
+ }
}
}
diff --git a/src/renderer/components/DatabaseWorkspace.vue b/src/renderer/components/DatabaseWorkspace.vue
index ecd4bd78..592ac88f 100644
--- a/src/renderer/components/DatabaseWorkspace.vue
+++ b/src/renderer/components/DatabaseWorkspace.vue
@@ -2,7 +2,7 @@
-
{{ connection }}
+
{{ JSON.stringify(connection, null, 3) }}
@@ -32,6 +32,7 @@ export default {
})
},
async created () {
+ this.addWorkspace(this.connection.uid);
const isInitiated = await Connection.checkConnection(this.connection.uid);
if (isInitiated) {
try {
@@ -51,6 +52,7 @@ export default {
methods: {
...mapActions({
addNotification: 'notifications/addNotification',
+ addWorkspace: 'workspaces/addWorkspace',
addConnected: 'workspaces/addConnected',
removeConnected: 'workspaces/removeConnected'
})
diff --git a/src/renderer/ipc-api/Connection.js b/src/renderer/ipc-api/Connection.js
index 7867fef4..2a1ccdf1 100644
--- a/src/renderer/ipc-api/Connection.js
+++ b/src/renderer/ipc-api/Connection.js
@@ -14,6 +14,10 @@ export default class {
return ipcRenderer.invoke('connect', params);
}
+ static disconnect (uid) {
+ return ipcRenderer.invoke('disconnect', uid);
+ }
+
// TODO: refresh
// TODO: disconnect
}
diff --git a/src/renderer/store/modules/workspaces.store.js b/src/renderer/store/modules/workspaces.store.js
index 9b1ba70c..cfa9f7bb 100644
--- a/src/renderer/store/modules/workspaces.store.js
+++ b/src/renderer/store/modules/workspaces.store.js
@@ -1,5 +1,5 @@
'use strict';
-// import { uidGen } from 'common/libs/utilities';
+import Connection from '@/ipc-api/Connection';
export default {
namespaced: true,
@@ -7,11 +7,11 @@ export default {
state: {
workspaces: [],
connected_workspaces: [],
- workspace_selected: null
+ selected_workspace: null
},
getters: {
getSelected: state => {
- if (state.workspace_selected) return state.workspace_selected;
+ if (state.selected_workspace) return state.selected_workspace;
if (state.workspaces.length) return state.workspaces[0].uid;
return null;
},
@@ -20,13 +20,16 @@ export default {
},
mutations: {
SELECT_WORKSPACE (state, uid) {
- state.workspace_selected = uid;
+ state.selected_workspace = uid;
},
ADD_CONNECTED (state, uid) {
state.connected_workspaces.push(uid);
},
REMOVE_CONNECTED (state, uid) {
- state.connected_workspaces = state.connected_workspaces.filter(item => item.uid !== uid);
+ state.connected_workspaces = state.connected_workspaces.filter(value => value !== uid);
+ },
+ ADD_WORKSPACE (state, workspace) {
+ state.workspaces.push(workspace);
}
},
actions: {
@@ -36,8 +39,16 @@ export default {
addConnected ({ commit }, uid) {
commit('ADD_CONNECTED', uid);
},
- removeConnected ({ commit }, uid) {
+ async removeConnected ({ commit }, uid) {
+ Connection.disconnect(uid);
commit('REMOVE_CONNECTED', uid);
+ },
+ addWorkspace ({ commit }, uid) {
+ const workspace = {
+ uid,
+ tabs: []
+ };
+ commit('ADD_WORKSPACE', workspace);
}
}
};